I was obsessed by the following issue for weeks :-), and could you please help me get rid of it? Many thanks!!!
Recentlly I used the standard Suse10sp2 as HVM guest(domU), and installed the para-virtualization network card driver(xen-vnif.ko) within it. But when I test the performance on domU by continuously sending/receiving large amount of packages I found that the writing(sending) speed can up to 100MB/s, while the reading(receiving) speed only 50MB/s, not sure why.
I know that the para-virtualization network driver used two I/O ring buffers, one for transmitting and the other for receiving, and I think the rx_buffer may be the issue, but not sure.
Two more questions:
1. Does the front_end driver use polling or event notification for discovering the data arrival?
2. Does the back_end driver use transferring or copying for putting the data to the grant pages of front_end?
Do you guys think the above methods used by the network driver is the root cause? And how can we decide to use which method (polling vs. notification, transferring vs. copying) in the specified situation for high throughput?
Could you please give me some suggestions for locating this issue and resolving it? Thanks in advance!!!