Tom Chen wrote:
The receive side is limiting the performance. Even with one netperf
session, on the receiving side, one CPU is at 0% idle and the other is
at 50% idle. Looking at the profiler output, most of the time is spent
elsewhere, not in the driver. See the output:
[snip]
I don't know what is done by all these "copy" routines. They seem to
take 56% of the time. We did a similar test with Intel card and reveals
that intel card just spends 14% of the time copying. We are wondering why?
Is this because our driver has some alignment issues in the receive
path? we do not place the IP-header on a 4-byte boundary, due to
hardware limitations. What the overhead on sparc will be if the driver
sends packets with IP header on 2-byte boundary to upper layers?
The lack of IP alignment will certainly force some copying. It also
looks (from the presence of kmem_cache_alloc/free_debug that you may be
running a debug kernel - is that the case? There is little point in
tuning a driver for performance on a debug kernel.
Paul
_______________________________________________
driver-discuss mailing list
driver-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/driver-discuss