I think that a packet need some micro seconds instead of milliseconds... If this statement is correct a kernel can handle 100.000 packet a seconds with ease --- "Shourya P. Bhattacharya" <sbhattacharya@xxxxxxxxx> wrote: > On Tue, 30 Nov 2004 11:17:03 -0800 (PST), Alaios > <alaios@xxxxxxxxx> wrote: > > Hi.... Today a really strange problem appeared in > my > > mind... > > > > Lets take the following example.. > > We have ethernet packets of 1250 bytes/packet... > > (i use the 1250 number because i make the > calculation > > simpler) > > > > We have 1250*8bits=10.000 bits.. > > My pc has an 100Mbit ethernet card this means > > 100.000.000 bits per second... So our ethernet > card > > must transmit data in 100.000.000/10.000= 10.000 > > packets per second... > That is not a problem. Some earlier measurements > have shown that a > P-II based PC can handle around 60K packets per > seconds. In your > calculation you have taken the size of each packets > as 1250 Bytes but > the real problem would come from a large number of > tinygrams. Too many > interrupts would be generated and even if the CPU is > powerful enough > to handle them, it will result in a lot of CPU time > wastage in the > interrupt handler. > > > > > I am trying to figure out how a kernel can > tolerate > > with so much traffic... I think/suppose that a > packet > > needs some ms for being handled (i wiil check it > > later).. If this is true how a kernel can send so > much > > packets when there is not enough time? 1000ms == 1 > > sec. > Up till kernel 2.4.20 every arriving packet > generated an interrupt > which obviously is a problem if there are too many > incoming packets. > From kernel 2.4.20 onwards a new mechanism called > NAPI was > implemented. In this new strategy the network > interface instead of > interrupting the CPU for each packet received, it > registers itself on > the device poll list and its interrupts are > disabled. The CPU goes > through the poll list and finds the NIC with > unfinished work. It then > processes all the queued packets or till a maximum > quota for the > device whichever is less. If the NIC queue becomes > empty, it's > interrupts are enabled else it is put back on the > poll list. > > Hope this helps. I am a kernel newbie and just > sharing my knowledge. I > would be glad if someone finds and points out any > inaccuracy in the > explanation. > > Shourya > > > > > PS: I know that the 100Mbit is only a theory based > > speed and you can not achieve such a number... But > > stil l my question has not been answered... > > Thx a lot... > > I hope that your answers will satisfy eveyone :) > > Have a nice day > > > > __________________________________ > > Do you Yahoo!? > > All your favorites on one personal page â?? Try My > Yahoo! > > http://my.yahoo.com > > > > -- > > Kernelnewbies: Help each other learn about the > Linux kernel. > > Archive: > http://mail.nl.linux.org/kernelnewbies/ > > FAQ: http://kernelnewbies.org/faq/ > > > > > > -- > Kernelnewbies: Help each other learn about the Linux > kernel. > Archive: > http://mail.nl.linux.org/kernelnewbies/ > FAQ: http://kernelnewbies.org/faq/ > > __________________________________ Do you Yahoo!? Yahoo! Mail - Find what you need with new enhanced search. http://info.mail.yahoo.com/mail_250 -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/