[openib-general] How about ib_send_page() ?

Jeff Carr jcarr at linuxmachines.com
Wed May 18 13:38:48 PDT 2005


Grant Grundler wrote:

> Wellll..Looks like I'm wrong. Previous email on this thread
> suggested it's possible by people who know alot more about
> it than I do. But I'm still concerned it's going to affect
> latency.

Maybe that's one reason why NAPI was made a compile time option? Anyway, 
it might be just as easy to implement IB netdev->poll() also as a 
compile time option.

>>Isn't that what the midas touch of netdev->poll() really is? e1000 has:
>>quit_polling:   netif_rx_complete(netdev);
>>                e1000_irq_enable(adapter);
> 
> 
> I'm more familiar with tg3 driver. The disadvantage to NAPI in the
> tg3 implementation is it *alays* disables interrupts on the card before
> calling netif_rx_schedule(). Then it lets the OS decide when to
> actually process those packets *already* received in a safer
> context....then once tg3 decides it's done all the work
> it re-eables the interrupts. Just like e1000 does above.
> 
> There are some workloads where the PCI bus utilization is "suboptimal"
> because the enable/disable of interrupts interfers with the DMA flows
> and costs excessive overhead.

Maybe. I'm not a PCI expert and have only used a PCI bus analyzer a few 
times. I don't understand how disabling the interrupts would interfere 
with DMA or add overhead. That condition strikes me as being chip 
dependent. So, perhaps the tg3 does that, but an IB HCA would be 
different. (?)

Jeff



More information about the general mailing list