On 4/10/2016 3:36 PM, Charles Steinkuehler wrote:
> On 4/10/2016 3:17 PM, Charles Steinkuehler wrote:
>> On 4/10/2016 11:13 AM, Charles Steinkuehler wrote:
>>> I am experimenting with getting Machinekit running on Debian Jessie,
>>> and have run into an issue with loading capes.
>>>
>>> After I manually load a cape:
>>>
>>> $ SLOTS=/sys/devices/bone_capemgr.*/slots
>>> $ sudo -A su -c "echo cape-bebopr-brdg:R2 > $SLOTS"
>>>
>>> ...CPU usage maxes out and I have eight systemd-udevd tasks running
>>> that are each taking a good chunk of the CPU.  These typically go away
>>> after apx. 17 seconds of CPU time (each), or about 2-1/2 minutes, but
>>> I'm wondering what in the world is going on.
>>>
>>> Is this a known issue?  Any ideas how to tell what the systemd-udevd
>>> processes are doing?
>>>
>>> The kernel is 3.8.13-xenomai-r78, which works fine under Wheezy.
>>
>> I get the same results with a "stock" Debian Jessie image (
>>
>> debian@beaglebone:~$ cat /etc/dogtag
>> BeagleBoard.org Debian Image 2016-03-27
>>
>> ...using the 3.8.13-bone79 kernel.  The 4.1.18-ti-r55 kernel provide
>> with the Jessie image has a cape manager (although the slots file is
>> in a different location), but trying to load the cape-bebopr-brdg:R2
>> cape fails.
>>
>> Any hints as to how to debug would be very welcome!

OK, this doesn't appear to be a PRU issue, it's a fundamental problem
with udev.  The systemd-udevd process that are chewing up CPU cycles
are endlessly trying to create a symlink due to the contents of
/etc/udev/rules.d/uio.rules, which contains:

SUBSYSTEM=="uio", SYMLINK+="uio/%s{device/of_node/uio-alias}"
SUBSYSTEM=="uio", GROUP="users", MODE="0660"

When you strace one of the 'stuck' systemd-udevd processes, you get an
endless (until the process is killed) repeating stream of:

> mkdir("/dev", 0755)                     = -1 EEXIST (File exists)
> symlink("../uio1", "/dev/uio/")         = -1 ENOENT (No such file or 
> directory)
> stat64("/dev/uio", 0xbeffb430)          = -1 ENOENT (No such file or 
> directory)
> mkdir("/dev", 0755)                     = -1 EEXIST (File exists)
> symlink("../uio1", "/dev/uio/")         = -1 ENOENT (No such file or 
> directory)
> stat64("/dev/uio", 0xbeffb430)          = -1 ENOENT (No such file or 
> directory)
> ...

The symlink fails because there is no /dev/uio directory, which the
systemd-udevd process seems to think is supposed to exist.

Any uio and/or udev gurus know what's going on?

-- 
Charles Steinkuehler
char...@steinkuehler.net

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/57196F87.3060309%40steinkuehler.net.
For more options, visit https://groups.google.com/d/optout.

Reply via email to