At 02:00 09.01.2006, Kay Sievers wrote:
On Sun, Jan 08, 2006 at 07:21:35PM +0100, Marco d'Itri wrote:
> Any comments?
> Subject: Bug#346543: udev netlink problems with kernel 2.6.15 on alpha
> To: [EMAIL PROTECTED]
> From: Uwe Schindler <[EMAIL PROTECTED]>
>
> I installed linux-image-2.6.15-1 (2.6.15-2) from Norbert on my alpha
> machine. After rebooting I got some strange effects:
>
> udevd[pid]: error receiving netlink events: no buffer space
> available
> I think you should open a bug report directly at udev and tell them
> to set the receive buffer size directly in the udev code so that it
> does not depend on /proc/variables set before. It could also be an
> error in the kernel, but on Norberts machine it works. I do not know...
udevd sets the buffer size to 16Mb since some time, without fiddling
around with the global sysctrls:
http://kernel.org/git/?p=linux/hotplug/udev.git;a=blob;hb=HEAD;f=udevd.c#l781
If that's not working, it's probably a kernel bug on your architecture.
Works fine for me, here is a big buffer filled up with a stopped udevd:
$ cat /proc/net/netlink
sk Eth Pid Groups Rmem Wmem Dump Locks
dfd86000 0 0 00000000 0 0 00000000 2
f7779800 0 3259 00000011 0 0 00000000 2
dfe3f200 9 0 00000000 0 0 00000000 2
dfc27200 10 0 00000000 0 0 00000000 2
f1885200 15 6396 ffffffff 2789309 0 00000000 2
dffbce00 15 0 00000000 0 0 00000000 2
dfe3fe00 16 0 00000000 0 0 00000000 2
Kay
Hm interesting. In your code I see, that you only set the actual
buffer size (not the maximum):
setsockopt(uevent_netlink_sock, SOL_SOCKET, SO_RCVBUFFORCE,
&buffersize, sizeof(buffersize)); /* == 16*1024*1024 */
I had the same problem. When leaving out in my udev-fix script the
setting of that MAX value BEFORE the actual value via /proc it does
not work. I could check both values (MAX and CURRENT) before setting
them on boot time with a "cat" command to printout in the script as
soon as I reboot.
As I know from the "maximum file descriptors" thing that userspace
programs can only set the current value, not the maximum value for
the whole system. On Linux this maximum value can only be set by
/proc and in Solaris in the kernel configuration file.
Could it be that on alpha the maximum value is too small initially?
Uwe
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]