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]

Reply via email to