lkml.org 
[lkml]   [1999]   [Jun]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectImproving raw network performance [was Apache performance etc.]
Dean Gaudet wrote:
> I think I mentioned this a long time ago... at high speeds, various NT
> network drivers switch from interrupt-driven to polling. The interrupts
> just kill you after some point... and it's pointless to take them all,
> when you could just take a clock interrupt and go fetch packets.

Could this be made generic for all network drivers?

I'm thinking:

1. Interrupt comes in
2. Kernel disables interrupt
3. Driver fetches/sends data.
4. Driver loops back to 3 if there's more data
(many drivers do this already).
5. Driver returns.

... timer driven delay ...

6. Kernel reenables interrupt.
7. If interrupt pending, go to 2.

The current situtation is very similar -- the only difference being that
currently there is no delay between 5 and 6. Based on user-space
polling work done by someone else here, I suspect introducing a delay
when under load, using the timer interrupt (sped up to 1-10kHz) would
significantly improve overall throughput.

(It costs latency and possibly loses packets if you get sudden loading,
which is why we'd only want to do it under load).

> Another thing to think about -- is ways to have CPU/network card affinity.
> You don't want to be playing L1/2 cache ping-pong on the RAM you use to
> load the packets off the card. You hopefully want to use the packets in
> the CPU that you first read them on. The way we're restructuring apache
> will let us plug in whatever extra syscall goop is needed to help
> this.

One would hope this could be done by magic in the kernel ;-)

-- Jamie

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:52    [W:0.050 / U:0.324 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site