>On Sunday, April 12, 2009 Charles-François Natali wrote: > >Hi, > >I'm sorry to bother you, but I'm having a weird problem with e1000 >NIC, and I think you might be able to help me figure out what's >happening - I saw you submitted a patch for a problem dealing with >socket buffer a few years ago to the e1000 driver. >So here's the story : >at work, we have around 300 computers equiped with NICs using e1000 driver. >From time to time, we see processes stuck in sendto() when sending >multicast trafic on an interface _that has its link down_. >First analysis showed that the processes are stuck because their send >buffer is full. I tried to read te kernel code, and came to the >conclusion that the only place where the process can possibly be stuck >is in sock_wait_for_wmem. >But why ? Since the socket is created after the interface has lost its >link, the driver has called netif_stop_queue, so, when the device tx >queue gets full, the packets should be dropped, and the process >shouldn't sleep. >The only explanation I see is that the socket send buffer gets full >before the device txqueue : if there is for example only one process >sending on this interface, the device txqueue will never get full and >drop packets, so the process it will remain stuck in >sock_wait_for_wmem forever. > >Thank you for reading that far, hopping you wight have an idea of >what's going on. > >Cheers, > >Charles
(adding e1000-devel mailing list) What kernel version and e1000 driver version are you using? Cheers, Jeff ------------------------------------------------------------------------------ Stay on top of everything new and different, both inside and around Java (TM) technology - register by April 22, and save $200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco. 300 plus technical and hands-on sessions. Register today. Use priority code J9JMT32. http://p.sf.net/sfu/p _______________________________________________ E1000-devel mailing list E1000-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel