Thread (6 messages) read the whole thread 6 messages, 3 authors, 2003-10-04

Re: [RFC] [PATCH 1/3] netpoll api

From: jamal <hidden>
Date: 2003-10-04 20:02:09

On Fri, 2003-10-03 at 15:11, Matt Mackall wrote:
quoted
Nice.
Is the ethernet card in a case like this almost dedicated for this
kind of work?
No, I've had good results with it as the only interface to the
machine. As netpoll traffic is fairly infrequent, performance seems
little affected.
Ok, I suppose if you are running some serious server you wont be
debugging either. Did i understand correctly that no netpoll trafic
translates to a device being removed from the poll list? i.e only when
theres traffic to send for example would the controller be invoked? 
quoted
Is disable_irq() in the controller safe for shared irqs? Or maybe this
is critical enough that you dont care?
I'm not aware of any issues there. I understand Red Hat has banged on
this piece pretty heavily recently for their AS kernel. 
Lets say you have a vga card and ethernet sharing the same irq and doing
a lot of debugging ... would disabling that shared irq kill the display
for example? 
quoted
Its a little wasteful to call the controller when there are is no work
to be done; we have found in NAPI that any extra PCI transactions cost.
(some IBM people doing benchmarking have complained about specweb not
looking good where NAPI will have one extra PCI transaction per packet.
You do it twice the rate NAPI would do it at low speeds).
Again, the answer maybe who cares, this is critical work.
Just to be sure you read this right, the poll method (NAPI) is
different from poll_controller (netpoll). The name is unfortunate, but
it's what Ingo had in his early 2.4 netconsole patches. I could
s/poll_controller/netpoll/ perhaps.
Actually the name is proper since polling is involved. I can see the
confusion with NAPI - so from that angle changing it to something
more descriptive of its function rather than how it achieves it would
help.
The NAPI method only gets called when we've frozen the system (kgdb or
netdump) and we're the only ones checking for rx work. The netpoll
method gets called in that case and when something like netconsole is
sending out printks (eg low bandwidth or high priority).
netpoll calls the interupt handler which typically involved substantial
PCI reads (and maybe writes). Calling such routines when theres no state
change in the PCI registers is what i refered to as a waste. This is a
non-issue under normal conditions since an interupt signals a state
change. 
It wouldnt matter if it is event driven (i.e for a brief period of time
when netconsole has traffic to send thats what you do). It also wouldnt
matter if you are using the box as dev. environment etc. 

cheers,
jamal
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help