Re: sendto syscall is slow

Martin Devera (devik@cdi.cz)
Tue, 16 Oct 2001 18:15:22 +0200 (CEST)


> Do you have the same profile for sendto when Rx/Tx isn't short
> connected ?

I have not. I have only one computer and one 100Mbit eth card
at home. But I've got the same results when I used loopback
driver.
But without loopback wires it goes like this:
41.03 4.34 4.34 478200 0.01 0.01 sendto
29.52 7.46 3.12 481389 0.01 0.01 poll
14.70 9.02 1.55 478200 0.00 0.00 setsockopt

> You may consider polling for Tx/Rx completion in the Tx path at the
> driver level. If your cpu isn't too much powered it will make
> a difference.

Are you speaking about rewriting nic driver ? Like try to drain
waiting packet from nic's memory while enqueuing new one ?

IMHO the bottleneck will be probably in send syscall (probably
syscall overhead).
I'm thinking about hack which will allow me to send() large
buffer and kernel code will break it into smaller ones and
device_queue_xmit them at once.

devik

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