Direwolf CPU utilization = 100% #direwolf


Dan Keizer
 

I've updated my image to hold back the bad kernel and i've ensure my apps are up to date.
I noticed that since then, the direwolf process is consuming an entire core 100%.
It never used to do that and I've not seen that with other non-udrc uses with direwolf on my other Pi's.
Curious if anyone has noticed this before or if there is a known issue/config I haven't found yet.
I checked my direwolf configuration and nothing out of the ordinary.  one channel currently on ax25 vhf. (basic config here):
ADEVICE plughw:CARD=udrc,DEV=0 plughw:CARD=udrc,DEV=0
ACHANNELS 1
CHANNEL 0
MYCALL VE4DRK-10
MODEM 1200
PTT GPIO 12
AGWPORT 8000
KISSPORT 8001

(hoping to go to split channel if i can figure out this cpu issue).
I noticed a rather old posting by WB02SZ:
Dire Wolf uses many threads for the various concurrent activities. Each audio input device has its own thread which reads data as quickly as the source can provide it. In this case, the null device provides zero bytes at an unlimited rate and one CPU core is completely consumed
SO, to check this theory, I added back channel 2 into my direwolf config and stopped/restarted direwolf -- sure enough, the high cpu load went away and it's back down to approx 20% to 30% or so on one core  -- which is normal.

So, with me trying to take direwolf out of using both channels and allocate one to HF with pulseaudio ... is this expected behaviour from direwolf? and are others seeing similar results? or am i missing some other configuration to get direwolf to stop trying to read null streams and becoming cpu bound.

73, Dan ve4drk


Basil Gunn
 

Dan,

You may have a pulseaudio config problem?
What frequency is your VHF radio set to?
APRS 2M frequency? How busy is it?

Please post the output of script cpu_util.sh

cpu_util.sh is a new script to try and solve your problem so refresh
your local n7nix repository:

cd
cd n7nix
git pull
cd config
./bin_refresh.sh

cpu_util.sh



Dan Keizer <ve4drk@gmail.com> writes:

I've updated my image to hold back the bad kernel and i've ensure my apps are up to date.
I noticed that since then, the direwolf process is consuming an entire core 100%.
It never used to do that and I've not seen that with other non-udrc uses with direwolf on my other Pi's.
Curious if anyone has noticed this before or if there is a known issue/config I haven't found yet.
I checked my direwolf configuration and nothing out of the ordinary. one channel currently on ax25 vhf. (basic config here):
ADEVICE plughw:CARD=udrc,DEV=0 plughw:CARD=udrc,DEV=0
ACHANNELS 1
CHANNEL 0
MYCALL VE4DRK-10
MODEM 1200
PTT GPIO 12
AGWPORT 8000
KISSPORT 8001

(hoping to go to split channel if i can figure out this cpu issue).
I noticed a rather old posting by WB02SZ:

Dire Wolf uses many threads for the various concurrent activities. Each
audio input device has its own thread which reads data as quickly as the
source can provide it. In this case, the null device provides zero bytes
at an unlimited rate and one CPU core is completely consumed
SO, to check this theory, I added back channel 2 into my direwolf config and stopped/restarted direwolf -- sure enough, the high cpu load went away and it's back down to approx 20% to 30% or so on one core -- which is normal.

So, with me trying to take direwolf out of using both channels and allocate one to HF with pulseaudio ... is this expected behaviour from direwolf? and are others seeing similar results? or am i missing some other configuration to get direwolf to stop trying to read null streams and becoming cpu bound.

73, Dan ve4drk



Dan Keizer
 

Hey Basil - thanks for that info.

The local 2m 145.01 frequency is being used as a test to another RMS gateway. It's extremely quiet. Currently two stations that only use it for RMS gateway message testing.
I did add the second channel back into this config.
Attaching the output of the new script where the second channel is attached with direwolf: (pretty much stock config). (below that is the one channel config)

pi@draws:~ $ cpu_util.sh
== pi version
 Pi 3 Model B, Rev 1.2, Mfg by Embest with WiFi

== direwolf version
Found direwolf version: 1.6 : Dire Wolf version 1.6

== pulseaudio version
pulseaudio 12.2

== pulseaudio status
● pulseaudio.service - Sound Service
   Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; disabled; vendor preset: enabled)
   Active: active (running) since Tue 2021-03-30 07:29:12 CDT; 4h 15min ago
 Main PID: 1267 (pulseaudio)
   CGroup: /user.slice/user-1000.slice/user@.../pulseaudio.service
           └─1267 /usr/bin/pulseaudio --daemonize=no

Mar 30 07:29:11 draws.ve4drk systemd[1031]: Starting Sound Service...
Mar 30 07:29:12 draws.ve4drk systemd[1031]: Started Sound Service.

== cpu utilization (ps)
root      1623 27.1  0.9 140368  9104 ?        Ssl  07:53  62:37 /usr/bin/direwolf -t 0 -c /etc/direwolf.conf -p
root       316  0.6  0.0      0     0 ?        S    07:29   1:34 [sc16is7xx]
gpsd       609  0.4  0.3  22636  3176 ?        S<sl 07:29   1:08 /usr/sbin/gpsd -n /dev/ttySC0 /dev/pps0
root      2179  0.1  0.0      0     0 ?        I    11:44   0:00 [kworker/0:1-events]
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

Installing sysstat package
Preconfiguring packages ...
Selecting previously unselected package sysstat.
(Reading database ... 123981 files and directories currently installed.)
Preparing to unpack .../sysstat_12.0.3-2_armhf.deb ...
Unpacking sysstat (12.0.3-2) ...
Setting up sysstat (12.0.3-2) ...

Creating config file /etc/default/sysstat with new version
update-alternatives: using /usr/bin/sar.sysstat to provide /usr/bin/sar (sar) in auto mode
Created symlink /etc/systemd/system/multi-user.target.wants/sysstat.service → /lib/systemd/system/sysstat.service.
Processing triggers for man-db (2.8.5-2) ...
Processing triggers for systemd (241-7~deb10u6+rpi1) ...

== ALL cpu utilizations (mpstat)
Linux 5.4.79-v7+ (draws.ve4drk)         2021-03-30      _armv7l_        (4 CPU)

11:44:55 AM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
11:44:55 AM  all    6.33    0.00    3.02    0.09    0.00    0.03    0.00    0.00    0.00   90.53
11:44:55 AM    0    3.62    0.00    1.05    0.15    0.00    0.10    0.00    0.00    0.00   95.09
11:44:55 AM    1    3.26    0.00    2.37    0.10    0.00    0.00    0.00    0.00    0.00   94.27
11:44:55 AM    2    2.86    0.00    6.87    0.07    0.00    0.00    0.00    0.00    0.00   90.20
11:44:55 AM    3   15.59    0.00    1.78    0.06    0.00    0.01    0.00    0.00    0.00   82.56

== Direwolf config
ADEVICE plughw:CARD=udrc,DEV=0 plughw:CARD=udrc,DEV=0
ACHANNELS 2
CHANNEL 0
MYCALL VE4DRK-10
MODEM 1200
PTT GPIO 12
CHANNEL 1
PTT GPIO 23
MODEM 300 1600:1800 7@30 /4
MYCALL VE4DRK-2
AGWPORT 8000
KISSPORT 8001

IGSERVER 50.65.148.226

IGLOGIN VE4DRK 17320
FILTER IG 0 t/m
IGTXLIMIT 6 30
TTPOINT  B01  37^55.37N  81^7.86W
TTPOINT  B7495088  42.605237  -71.34456
TTPOINT  B934  42.605237  -71.34456
TTPOINT B901  42.661279  -71.364452
TTPOINT B902  42.660411  -71.364419
TTPOINT B903  42.659046  -71.364452
TTPOINT B904  42.657578  -71.364602
TTVECTOR  B5bbbddd  37^55.37N  81^7.86W  0.01  mi
TTGRID   Byyyxxx    37^50.00N  81^00.00W  37^59.99N  81^09.99W
TTUTM  B6xxxyyy  19T  10  300000  4720000
TTCORRAL   37^55.50N  81^7.00W  0^0.02N
TTMACRO  xx1yy  B9xx*AB166*AA2B4C5B3B0A1yy
TTMACRO  xx2yy  B9xx*AB170*AA3C4C7C3B0A2yy
TTMACRO  xxyyy  B9xx*AB180*AA3A6C4A0Ayyy
TTMACRO  z  Cz

---------------------------------------------------------------------------------------------------------------------------------

Changed the config to be one port for direwolf and rebooted.
Here's the output of the script with only ONE port defined for direwolf:

pi@draws:~ $ cpu_util.sh
== pi version
 Pi 3 Model B, Rev 1.2, Mfg by Embest with WiFi

== direwolf version
Found direwolf version: 1.6 : Dire Wolf version 1.6

== pulseaudio version
pulseaudio 12.2

== pulseaudio status
● pulseaudio.service - Sound Service
   Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; disabled; vendor preset: enabled)
   Active: active (running) since Tue 2021-03-30 11:50:23 CDT; 3min 3s ago
 Main PID: 1287 (pulseaudio)
   CGroup: /user.slice/user-1000.slice/user@.../pulseaudio.service
           └─1287 /usr/bin/pulseaudio --daemonize=no

Mar 30 11:50:21 draws.ve4drk systemd[1078]: Starting Sound Service...
Mar 30 11:50:23 draws.ve4drk systemd[1078]: Started Sound Service.

== cpu utilization (ps)
root       542 98.6  0.8 128864  8040 ?        Ssl  11:50   3:09 /usr/bin/direwolf -t 0 -c /etc/direwolf.conf -p
root         1  1.7  0.8  33776  8160 ?        Ss   11:50   0:03 /sbin/init splash
pi        1365  1.6  0.3   8488  3632 pts/3    Ss   11:53   0:00 -bash
pi        1212  0.9  2.9  46324 27916 ?        S    11:50   0:01 /usr/bin/python3 /usr/share/system-config-printer/applet.py
pi        1183  0.9  2.1  72756 20796 ?        Sl   11:50   0:01 pcmanfm --desktop --profile LXDE-pi

== ALL cpu utilizations (mpstat)
Linux 5.4.79-v7+ (draws.ve4drk)         2021-03-30      _armv7l_        (4 CPU)

11:53:26 AM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
11:53:26 AM  all    5.45    0.00   23.63    5.05    0.00    0.22    0.00    0.00    0.00   65.65
11:53:26 AM    0    6.77    0.00   33.12    4.91    0.00    0.75    0.00    0.00    0.00   54.44
11:53:26 AM    1    6.07    0.00   23.70    5.57    0.00    0.07    0.00    0.00    0.00   64.60
11:53:26 AM    2    5.27    0.00   31.91    3.84    0.00    0.02    0.00    0.00    0.00   58.95
11:53:26 AM    3    3.69    0.00    5.88    5.88    0.00    0.03    0.00    0.00    0.00   84.53

== Direwolf config
ADEVICE plughw:CARD=udrc,DEV=0 plughw:CARD=udrc,DEV=0
ACHANNELS 1
CHANNEL 0
MYCALL VE4DRK-10
MODEM 1200
PTT GPIO 12
AGWPORT 8000
KISSPORT 8001

IGSERVER 50.65.148.226

IGLOGIN VE4DRK 17320
FILTER IG 0 t/m
IGTXLIMIT 6 30
TTPOINT  B01  37^55.37N  81^7.86W
TTPOINT  B7495088  42.605237  -71.34456
TTPOINT  B934  42.605237  -71.34456
TTPOINT B901  42.661279  -71.364452
TTPOINT B902  42.660411  -71.364419
TTPOINT B903  42.659046  -71.364452
TTPOINT B904  42.657578  -71.364602
TTVECTOR  B5bbbddd  37^55.37N  81^7.86W  0.01  mi
TTGRID   Byyyxxx    37^50.00N  81^00.00W  37^59.99N  81^09.99W
TTUTM  B6xxxyyy  19T  10  300000  4720000
TTCORRAL   37^55.50N  81^7.00W  0^0.02N
TTMACRO  xx1yy  B9xx*AB166*AA2B4C5B3B0A1yy
TTMACRO  xx2yy  B9xx*AB170*AA3C4C7C3B0A2yy
TTMACRO  xxyyy  B9xx*AB180*AA3A6C4A0Ayyy
TTMACRO  z  Cz

this config with one port for direwolf has sustained 100% one core usage.

Dan.


On Tue, Mar 30, 2021 at 11:28 AM Basil Gunn <basil@...> wrote:

Dan,

You may have a pulseaudio config problem?
What frequency is your VHF radio set to?
APRS 2M frequency? How busy is it?

Please post the output of script cpu_util.sh

cpu_util.sh is a new script to try and solve your problem so refresh
your local n7nix repository:

cd
cd n7nix
git pull
cd config
./bin_refresh.sh

cpu_util.sh



Dan Keizer <ve4drk@...> writes:

> I've updated my image to hold back the bad kernel and i've ensure my apps are up to date.
> I noticed that since then, the direwolf process is consuming an entire core 100%.
> It never used to do that and I've not seen that with other non-udrc uses with direwolf on my other Pi's.
> Curious if anyone has noticed this before or if there is a known issue/config I haven't found yet.
> I checked my direwolf configuration and nothing out of the ordinary. one channel currently on ax25 vhf. (basic config here):
> ADEVICE plughw:CARD=udrc,DEV=0 plughw:CARD=udrc,DEV=0
> ACHANNELS 1
> CHANNEL 0
> MYCALL VE4DRK-10
> MODEM 1200
> PTT GPIO 12
> AGWPORT 8000
> KISSPORT 8001
>
> (hoping to go to split channel if i can figure out this cpu issue).
> I noticed a rather old posting by WB02SZ:
>>
>> Dire Wolf uses many threads for the various concurrent activities. Each
>> audio input device has its own thread which reads data as quickly as the
>> source can provide it. In this case, the null device provides zero bytes
>> at an unlimited rate and one CPU core is completely consumed
>
> SO, to check this theory, I added back channel 2 into my direwolf config and stopped/restarted direwolf -- sure enough, the high cpu load went away and it's back down to approx 20% to 30% or so on one core -- which is normal.
>
> So, with me trying to take direwolf out of using both channels and allocate one to HF with pulseaudio ... is this expected behaviour from direwolf? and are others seeing similar results? or am i missing some other configuration to get direwolf to stop trying to read null streams and becoming cpu bound.
>
> 73, Dan ve4drk
>
>
>






Basil Gunn
 

I have to run out & do some other stuff for the rest of the day but this
is what I think.

You have a pulseaudio/direwolf configuration problem. Pulseaudio
recently switched their systemd service files from "system" to "user" and
that I believe is the problem.

Also when you switch to one channel direwolf (split channel) config you must
use the pulseaudio virtual device names ie.

Change:
ADEVICE plughw:CARD=udrc,DEV=0 plughw:CARD=udrc,DEV=0
to
ADEVICE draws-capture-left draws-playback-left

Go to directory n7nix/splitchan and run the following script. I have
some pretty thin notes there (sorry).

./split_ctrl.sh status

Also try this experiment: With your one interface direwolf config switch
off all pulseaudio system files then run 'cpu_util.sh' to get a utilization
number.

To switch off all pulseaudio system files
sudo su
systemctl --system stop pulseaudio
systemctl --user stop pulseaudio

This only stops pulseaudio until the next reboot.
To stop pulse audio between reboots you must also disable them.

systemctl --system disable pulseaudio
systemctl --user disable pulseaudio

I couldn't get direwolf to recognize pulseaudio interface names when using
'user' service files. My scripts only set up 'system' service files.

Will respond later on today.

Dan Keizer <ve4drk@gmail.com> writes:

Hey Basil - thanks for that info.

The local 2m 145.01 frequency is being used as a test to another RMS
gateway. It's extremely quiet. Currently two stations that only use it for
RMS gateway message testing.
I did add the second channel back into this config.
Attaching the output of the new script where the second channel is attached
with direwolf: (pretty much stock config). (below that is the one channel
config)

pi@draws:~ $ cpu_util.sh
== pi version
Pi 3 Model B, Rev 1.2, Mfg by Embest with WiFi

== direwolf version
Found direwolf version: 1.6 : Dire Wolf version 1.6

== pulseaudio version
pulseaudio 12.2

== pulseaudio status
● pulseaudio.service - Sound Service
Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; disabled;
vendor preset: enabled)
Active: active (running) since Tue 2021-03-30 07:29:12 CDT; 4h 15min ago
Main PID: 1267 (pulseaudio)
CGroup: /user.slice/user-1000.slice/user@1000.service/pulseaudio.service
└─1267 /usr/bin/pulseaudio --daemonize=no

Mar 30 07:29:11 draws.ve4drk systemd[1031]: Starting Sound Service...
Mar 30 07:29:12 draws.ve4drk systemd[1031]: Started Sound Service.

== cpu utilization (ps)
root 1623 27.1 0.9 140368 9104 ? Ssl 07:53 62:37
/usr/bin/direwolf -t 0 -c /etc/direwolf.conf -p
root 316 0.6 0.0 0 0 ? S 07:29 1:34 [sc16is7xx]
gpsd 609 0.4 0.3 22636 3176 ? S<sl 07:29 1:08
/usr/sbin/gpsd -n /dev/ttySC0 /dev/pps0
root 2179 0.1 0.0 0 0 ? I 11:44 0:00
[kworker/0:1-events]
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

Installing sysstat package
Preconfiguring packages ...
Selecting previously unselected package sysstat.
(Reading database ... 123981 files and directories currently installed.)
Preparing to unpack .../sysstat_12.0.3-2_armhf.deb ...
Unpacking sysstat (12.0.3-2) ...
Setting up sysstat (12.0.3-2) ...

Creating config file /etc/default/sysstat with new version
update-alternatives: using /usr/bin/sar.sysstat to provide /usr/bin/sar
(sar) in auto mode
Created symlink /etc/systemd/system/multi-user.target.wants/sysstat.service
→ /lib/systemd/system/sysstat.service.
Processing triggers for man-db (2.8.5-2) ...
Processing triggers for systemd (241-7~deb10u6+rpi1) ...

== ALL cpu utilizations (mpstat)
Linux 5.4.79-v7+ (draws.ve4drk) 2021-03-30 _armv7l_ (4
CPU)

11:44:55 AM CPU %usr %nice %sys %iowait %irq %soft %steal
%guest %gnice %idle
11:44:55 AM all 6.33 0.00 3.02 0.09 0.00 0.03 0.00
0.00 0.00 90.53
11:44:55 AM 0 3.62 0.00 1.05 0.15 0.00 0.10 0.00
0.00 0.00 95.09
11:44:55 AM 1 3.26 0.00 2.37 0.10 0.00 0.00 0.00
0.00 0.00 94.27
11:44:55 AM 2 2.86 0.00 6.87 0.07 0.00 0.00 0.00
0.00 0.00 90.20
11:44:55 AM 3 15.59 0.00 1.78 0.06 0.00 0.01 0.00
0.00 0.00 82.56

== Direwolf config
ADEVICE plughw:CARD=udrc,DEV=0 plughw:CARD=udrc,DEV=0
ACHANNELS 2
CHANNEL 0
MYCALL VE4DRK-10
MODEM 1200
PTT GPIO 12
CHANNEL 1
PTT GPIO 23
MODEM 300 1600:1800 7@30 /4
MYCALL VE4DRK-2
AGWPORT 8000
KISSPORT 8001

IGSERVER 50.65.148.226

IGLOGIN VE4DRK 17320
FILTER IG 0 t/m
IGTXLIMIT 6 30
TTPOINT B01 37^55.37N 81^7.86W
TTPOINT B7495088 42.605237 -71.34456
TTPOINT B934 42.605237 -71.34456
TTPOINT B901 42.661279 -71.364452
TTPOINT B902 42.660411 -71.364419
TTPOINT B903 42.659046 -71.364452
TTPOINT B904 42.657578 -71.364602
TTVECTOR B5bbbddd 37^55.37N 81^7.86W 0.01 mi
TTGRID Byyyxxx 37^50.00N 81^00.00W 37^59.99N 81^09.99W
TTUTM B6xxxyyy 19T 10 300000 4720000
TTCORRAL 37^55.50N 81^7.00W 0^0.02N
TTMACRO xx1yy B9xx*AB166*AA2B4C5B3B0A1yy
TTMACRO xx2yy B9xx*AB170*AA3C4C7C3B0A2yy
TTMACRO xxyyy B9xx*AB180*AA3A6C4A0Ayyy
TTMACRO z Cz

---------------------------------------------------------------------------------------------------------------------------------

Changed the config to be one port for direwolf and rebooted.
Here's the output of the script with only ONE port defined for direwolf:

pi@draws:~ $ cpu_util.sh
== pi version
Pi 3 Model B, Rev 1.2, Mfg by Embest with WiFi

== direwolf version
Found direwolf version: 1.6 : Dire Wolf version 1.6

== pulseaudio version
pulseaudio 12.2

== pulseaudio status
● pulseaudio.service - Sound Service
Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; disabled;
vendor preset: enabled)
Active: active (running) since Tue 2021-03-30 11:50:23 CDT; 3min 3s ago
Main PID: 1287 (pulseaudio)
CGroup: /user.slice/user-1000.slice/user@1000.service/pulseaudio.service
└─1287 /usr/bin/pulseaudio --daemonize=no

Mar 30 11:50:21 draws.ve4drk systemd[1078]: Starting Sound Service...
Mar 30 11:50:23 draws.ve4drk systemd[1078]: Started Sound Service.

== cpu utilization (ps)
root 542 98.6 0.8 128864 8040 ? Ssl 11:50 3:09
/usr/bin/direwolf -t 0 -c /etc/direwolf.conf -p
root 1 1.7 0.8 33776 8160 ? Ss 11:50 0:03 /sbin/init
splash
pi 1365 1.6 0.3 8488 3632 pts/3 Ss 11:53 0:00 -bash
pi 1212 0.9 2.9 46324 27916 ? S 11:50 0:01
/usr/bin/python3 /usr/share/system-config-printer/applet.py
pi 1183 0.9 2.1 72756 20796 ? Sl 11:50 0:01 pcmanfm
--desktop --profile LXDE-pi

== ALL cpu utilizations (mpstat)
Linux 5.4.79-v7+ (draws.ve4drk) 2021-03-30 _armv7l_ (4
CPU)

11:53:26 AM CPU %usr %nice %sys %iowait %irq %soft %steal
%guest %gnice %idle
11:53:26 AM all 5.45 0.00 23.63 5.05 0.00 0.22 0.00
0.00 0.00 65.65
11:53:26 AM 0 6.77 0.00 33.12 4.91 0.00 0.75 0.00
0.00 0.00 54.44
11:53:26 AM 1 6.07 0.00 23.70 5.57 0.00 0.07 0.00
0.00 0.00 64.60
11:53:26 AM 2 5.27 0.00 31.91 3.84 0.00 0.02 0.00
0.00 0.00 58.95
11:53:26 AM 3 3.69 0.00 5.88 5.88 0.00 0.03 0.00
0.00 0.00 84.53

== Direwolf config
ADEVICE plughw:CARD=udrc,DEV=0 plughw:CARD=udrc,DEV=0
ACHANNELS 1
CHANNEL 0
MYCALL VE4DRK-10
MODEM 1200
PTT GPIO 12
AGWPORT 8000
KISSPORT 8001

IGSERVER 50.65.148.226

IGLOGIN VE4DRK 17320
FILTER IG 0 t/m
IGTXLIMIT 6 30
TTPOINT B01 37^55.37N 81^7.86W
TTPOINT B7495088 42.605237 -71.34456
TTPOINT B934 42.605237 -71.34456
TTPOINT B901 42.661279 -71.364452
TTPOINT B902 42.660411 -71.364419
TTPOINT B903 42.659046 -71.364452
TTPOINT B904 42.657578 -71.364602
TTVECTOR B5bbbddd 37^55.37N 81^7.86W 0.01 mi
TTGRID Byyyxxx 37^50.00N 81^00.00W 37^59.99N 81^09.99W
TTUTM B6xxxyyy 19T 10 300000 4720000
TTCORRAL 37^55.50N 81^7.00W 0^0.02N
TTMACRO xx1yy B9xx*AB166*AA2B4C5B3B0A1yy
TTMACRO xx2yy B9xx*AB170*AA3C4C7C3B0A2yy
TTMACRO xxyyy B9xx*AB180*AA3A6C4A0Ayyy
TTMACRO z Cz

this config with one port for direwolf has sustained 100% one core usage.

Dan.


On Tue, Mar 30, 2021 at 11:28 AM Basil Gunn <basil@pacabunga.com> wrote:


Dan,

You may have a pulseaudio config problem?
What frequency is your VHF radio set to?
APRS 2M frequency? How busy is it?

Please post the output of script cpu_util.sh

cpu_util.sh is a new script to try and solve your problem so refresh
your local n7nix repository:

cd
cd n7nix
git pull
cd config
./bin_refresh.sh

cpu_util.sh



Dan Keizer <ve4drk@gmail.com> writes:

I've updated my image to hold back the bad kernel and i've ensure my
apps are up to date.
I noticed that since then, the direwolf process is consuming an entire
core 100%.
It never used to do that and I've not seen that with other non-udrc uses
with direwolf on my other Pi's.
Curious if anyone has noticed this before or if there is a known
issue/config I haven't found yet.
I checked my direwolf configuration and nothing out of the ordinary. one
channel currently on ax25 vhf. (basic config here):
ADEVICE plughw:CARD=udrc,DEV=0 plughw:CARD=udrc,DEV=0
ACHANNELS 1
CHANNEL 0
MYCALL VE4DRK-10
MODEM 1200
PTT GPIO 12
AGWPORT 8000
KISSPORT 8001

(hoping to go to split channel if i can figure out this cpu issue).
I noticed a rather old posting by WB02SZ:

Dire Wolf uses many threads for the various concurrent activities. Each
audio input device has its own thread which reads data as quickly as the
source can provide it. In this case, the null device provides zero bytes
at an unlimited rate and one CPU core is completely consumed
SO, to check this theory, I added back channel 2 into my direwolf config
and stopped/restarted direwolf -- sure enough, the high cpu load went away
and it's back down to approx 20% to 30% or so on one core -- which is
normal.

So, with me trying to take direwolf out of using both channels and
allocate one to HF with pulseaudio ... is this expected behaviour from
direwolf? and are others seeing similar results? or am i missing some other
configuration to get direwolf to stop trying to read null streams and
becoming cpu bound.

73, Dan ve4drk