[Click] polling patch for e1000-7.3.20

Nicholas Weaver nweaver at ICSI.Berkeley.EDU
Fri Jan 19 14:10:59 EST 2007


Thanks for everyone's help.

I was able to install a modified click kernel (2.6.16.22), apply the
click patches, and install click in kernel mode.

I then downloaded the Intel e1000 drivers from sourceforge, applied
the patch from the mailing list, and installed them.  (The cards
report through lspci as "Intel Corporation 82571EB Gigabit Ethernet
Controller (rev 06)" which are dual port PRO/1000 (e1000) PCI-express
GigE NICs).

However, something weird is happening with this setup.


Using the nonpoling mode, a simple bridge:

External <--> eth3 <---> eth2 <---> Switch <---> Monitor

seems to work fine:

FromDevice(eth2, PROMISC true) -> Counter -> Print("eth2") 
        -> Queue -> ToDevice(eth3);
FromDevice(eth3, PROMISC true) -> Counter -> Print("eth3") 
        -> Queue -> ToDevice(eth2);

The interesting thing is what happens when I change to PollDevice:

Each ethernet is able to receive packets but ToDevice no longer sends
the packets.

EG, this configuration:
PollDevice(eth2, PROMISC true) -> Counter -> Print("eth2") 
        -> Queue -> ToDevice(eth3);
PollDevice(eth3, PROMISC true) -> Counter -> Print("eth3") 
        -> Queue -> ToDevice(eth2);

shows no packets from the external world to the monitor (or the other
way for that matter), but:

FromDevice(eth2, PROMISC true) -> Counter -> Print("eth2") 
        -> Queue -> ToDevice(eth3);
PollDevice(eth3, PROMISC true) -> Counter -> Print("eth3") 
        -> Queue -> ToDevice(eth2);

shows packets from the external world to the monitor.



Also, packets are getting from the Queue to ToDevice even in the case
where I did the following:

PollDevice(eth2, PROMISC true) -> Counter -> Print("eth2") 
        -> Queue -> ToDevice(eth3);
PollDevice(eth3, PROMISC true) -> Counter -> Print("eth3 in") 
        -> Queue -> Print("eth3 ot") -> ToDevice(eth2);

Its just they aren't getting from ToDevice to the wire when the
corresponding source is a PollDevice not a FromDevice.


Suggestions?

Also, what performance do people generally see with kernel mode
nonpolling vs polling?

Thanks for everoyne's time.

-- 
Nicholas C. Weaver                               nweaver at icsi.berkeley.edu
     This message has been ROT-13 encrypted twice for higher security.


More information about the click mailing list