| To: | netdev <netdev@xxxxxxxxxxx> |
|---|---|
| Subject: | Re: [RFC] netif_rx: receive path optimization |
| From: | Rick Jones <rick.jones2@xxxxxx> |
| Date: | Thu, 31 Mar 2005 16:07:54 -0800 |
| In-reply-to: | <1112312206.1096.25.camel@jzny.localdomain> |
| References: | <20050330132815.605c17d0@dxpl.pdx.osdl.net> <20050331120410.7effa94d@dxpl.pdx.osdl.net> <1112303431.1073.67.camel@jzny.localdomain> <424C6A98.1070509@hp.com> <1112305084.1073.94.camel@jzny.localdomain> <424C7CDC.8050801@hp.com> <1112312206.1096.25.camel@jzny.localdomain> |
| Sender: | netdev-bounce@xxxxxxxxxxx |
| User-agent: | Mozilla/5.0 (X11; U; HP-UX 9000/785; en-US; rv:1.6) Gecko/20040304 |
Note Linux is quiet resilient to reordering compared to other OSes (as you may know) but avoiding this is a better approach - hence my suggestion to use NAPI when you want to do serious TCP. Ah, I wasn't clear - would someone doing serious TCP want to have the interrupts of a NIC go to a specific CPU. Dont think we can do that unfortunately: We are screwed by the APIC architecture on x86. More expensive than if one were lucky enough to have the interrupt on the "right" CPU in the first place, but as the CPU count goes-up, the chances of that go down. The main idea behind TOPS and prior to that IPS was to spread-out the processing of packets across as many CPUs as we could, as "correctly" as we could. Lots of small packets meant/means that a NIC could saturate its interrupt CPU before the NIC was saturated. You don't necessarily see that on say single-instance netperf TCP_STREAM (or basic FTP) testing, but certainly can on aggregate netperf TCP_RR testing. IPS, being driven by the packet header info, was good enough for simple benchmarking, but once you had more than one connection per process/thread that wasn't going to cut it, and even with one connection per process telling the process where it should run wasn't terribly easy :) It wasn't _that_ much more expensive than the queueing already happening - IPS was when HP-UX networking was BSDish and it was done when things were being queued to the netisr queue(s). TOPS lets the process (I suppose the scheduler really) decide where some of the processing for the packet will happen - the part after the handoff. rick |
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: RFC: Redirect-Device, Ben Greear |
|---|---|
| Next by Date: | Re: [RFC] netif_rx: receive path optimization, Stephen Hemminger |
| Previous by Thread: | Re: [RFC] netif_rx: receive path optimization, jamal |
| Next by Thread: | Re: [RFC] netif_rx: receive path optimization, jamal |
| Indexes: | [Date] [Thread] [Top] [All Lists] |