lo,
I got a rtl 8139 network device, but some how when i recieve a lot of packets, the device has an Recieve overflow error.
Now i have been reading the manuel of Realtek 8139, and i found that the internal buffer recieve is only 2KB, so that would mean that it could only buffer about 20 small packets before the device would overflow.
Normally the device would send data to the RAM, into its RAM buffer which is 32KB in size, also the buffer which my OS-driver reads out. But when i got a lot of hdd reading which is also going on at the same moment in time, it could be that he cant start empting the buffer into the RAM since, only 1 device can read or write to the ram at 1 moment in time.
So could this be the reason why the device would overflow or would there be some other reason why it could happen and how could i fix this?
Problem occours, when i am reading a file from the hdd (SATA) and transfering that over to an other pc, using FTP protocol. speed is about (3.5 MB p/s), the error occours about every 500 MB's of data transferd.
The hardware in my machine is: P5B Asus mainboard, SATA, PCI-RTL8139, other device's arent really in usage.
Regards
PyroMathic
Some additional info: all my pci device are set as bus-master.
RTL8139 network device
-
- Member
- Posts: 33
- Joined: Wed Apr 26, 2006 11:00 pm
Sorry for the late reply.
Problem is solved, i hope this is the last problem i have whit that piece of hardware..
Now i set the device in such a way that it starts sending data to the buffer once the first 1/16 of a packet is available and that it can be busmaster as long as it wishes to be (before this, it was set to Max 1KB per transfer, and that it had to wait until the whole packet was received before starting a bus transfer.
Regards
PyroMathic
PS: I mostly write down once i solved problem how i did this, or at least i try to describe it. Is this useful?
Problem is solved, i hope this is the last problem i have whit that piece of hardware..
Well according to the manual there is a fast 2KB receive and send buffer, so both are 2KB. And a Receive overflow occurs when all resources have been exhausted (so there is no more place to put the incoming data).Dex wrote:That sounds too regular a number to be right, also i thought it waited for a read, after 2k, and maybe discarded them ?.
Now i set the device in such a way that it starts sending data to the buffer once the first 1/16 of a packet is available and that it can be busmaster as long as it wishes to be (before this, it was set to Max 1KB per transfer, and that it had to wait until the whole packet was received before starting a bus transfer.
Regards
PyroMathic
PS: I mostly write down once i solved problem how i did this, or at least i try to describe it. Is this useful?