[Winpcap-users] Re: SMP support not working?

Gianluca Varenni gianluca.varenni at cacetech.com
Thu Mar 1 20:15:23 GMT 2007

  ----- Original Message ----- 
  From: Noam Dev 
  To: winpcap-users at winpcap.org 
  Sent: Thursday, March 01, 2007 9:46 AM
  Subject: [Winpcap-users] Re: SMP support not working?

  From process explorer, the CPU Usage stats look like this :
  10-13% Interrupts
  10-13% DPCs (Deferred procedure calls i believe)

  The windump processes themselves take close to no cpu...

This is what I was expecting. The network card receives the interrupts on a single CPU, hence the DPC scheduled by the ISR (interrupt service routine) that basically calls the WinPcap driver runs on the same CPU.

Which network card are you using?

Have a nice day

   ----- Original Message -----
  From: "Gianluca Varenni" <gianluca.varenni at cacetech.com>
  Subject: Re: [Winpcap-users] SMP support not working? 
  To: <winpcap-users at winpcap.org>
  Message-ID: <0d1401c75ae6$29f50590$1a4da8c0 at NELSON2>
  Content-Type: text/plain; charset="iso-8859-1" 

   ----- Original Message -----
   From: Noam Dev
   To: winpcap-users
   Sent: Tuesday, February 27, 2007 1:55 PM
   Subject: [Winpcap-users] SMP support not working?


   I am running winpcap 3.1 (haven't moved to 4.0 yet) on a windows 2003 server.
   The server has 4 processors. When i run multiple instances of windump (just one network card),
   they all run on the first processor. I can see that because when i load test 
   and run many instances of windump, the cpu usage stats of the computer rise to
   25%, with the first cpu being almost fully-used all of the time and the rest being idle.

   I see that winpcap should have SMP support. Am I doing anything wrong? 

  Uhm, I think there is a bit of confusion here as to what SMP support means. If you have 4 CPUs and 4 instances of windump, it's up to the OS scheduler to decide where each process will run, and this changes from time to time. Moreover WinPcap is a user level library (some DLLs) and a driver ( npf.sys). The user level libraries "run" on the CPU the process calling them is running on. For the driver it's a bit more complicated, but the idea is somewhat similar. At the end of the story the driver is a set of functions that the OS calls to delivers packets to user level. Again it's the OS that usually decides which CPU the various driver functions will run on (this is an OVERSIMPLIFICATION, driver devs please don't yell at me). 

  You are saying that one CPU is almost 100% loaded and the other ones idle. What is the CPU load of each of the instances of windump.exe that are running?

  Hope it helps


  Winpcap-users mailing list
  Winpcap-users at winpcap.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.winpcap.org/pipermail/winpcap-users/attachments/20070301/5883a75e/attachment.htm

More information about the Winpcap-users mailing list