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

Reply via email to