On 03/10/10 10:48 AM, Mahesh wrote:
Hi all,

  I need some help in debugging the gldv3 driver performance issue on sparc. 
The driver has single Tx queue and 4 Rx queues and performs at almost the line 
rate(10G) on Sun intel boxes but the same driver performs very badly on sparc. 
The code is identical for sparc and intel except swapping involved since the 
hardware is little endian . Any idea how to debug this issue ??
The machine i tried to bench mark is T5440  and i have tried setting 
ip_soft_rings_count = 16 on T5440 but result is same .

What is "badly"?

Note that T5440 hardware uses individual cores which are probably quite a bit slower than an x86 core. Additionally, there could be resource contention (caches, etc.) due to different Niagra architecture here.

Note also that I've been told that "bcopy" performs a bit slower on Niagra than on other SPARC or x86 architectures -- are you using bcopy to copy packet data, or are you using direct DMA? (Also, unless you take care, DMA setup and teardown on SPARC systems -- which use an IOMMU -- is quite expensive. In order to get good performance with direct DMA you really have to use loan up or something like it. Its tricky to get this right.)

Some other questions: what size MTU are you using? Are you sure that you're hitting each of your 4 RX rings basically "equally" by using different streams and making sure that traffic from a single stream stays on the same h/w ring?

Is there a significant difference between TX and RX performance?

    - Garrett




Thanks
Mahesh

_______________________________________________
opensolaris-code mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code

Reply via email to