On Mon, Jan 09, 2006 at 09:02:22AM +0100, Uwe Schindler wrote:
> 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
> 
> 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 */

No, it's "...FORCE"!

> 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?

No, idea, but as it obviously works on the common architectures, you
need to track that on the failing box, I don't have such a system to
try.

Good luck,
Kay


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to