Hi,

I am using ARM realview cortex a9 board with qemu-0.14.0
It uses lan9118 network interface. I am connecting to the outside network by
creating a bridge on my host's eth0 interface.
I am facing some network glitch while transferring a large file. If I
transfer a small file between my guest and host of size around 20-30 MB, the
transfer is smooth with transfer speed comparable to the host machine. But
if I try transferring a large file, of around 200 MB, the transfer of around
30-40 MB is smooth, after that the network stalls for a few seconds, around
15-20 seconds, then resumes with the file transfer.
I dig into the code a bit, in hw/lan9118.c .  In this lan9118_writel() is
called for pushing packets into the tx_fifo for transferring the file.If the
'offset' is between 0x20 and 0x40, tx_fifo_push() is getting called. In this
case, the file transfer is smooth. The reason for stalling of network
is that is the offset is outside this range and tx_fifo_push() is not
getting called. While the network is stalled, the offset in lan9118_writel()
function is 0x58 and 0x5c to be precise.
What is the reason of network getting stalled for these offset values? What
is the significance of these offset for lan9118 interface?

Thanks,
Sid

Reply via email to