[Japanese|English]

PC Hardware

If you use a PC only for PPPoE router, almost all hardware with Pentium class CPU should work fine. Even a fast 486 might do as well. My system configuration is, hence, overkilling.

Hardware Configuration

Component Product Specification Comments
CPU AMD K6-2 333MHz (FSB 66MHz × 5) The motherboard requires 333MHz clock, even though it is a 350MHz chip, but it's still enough fast for the purpose. I'm wondering whether I can stop CPU fan if I set the clock slower...
Memory EDO 72pin SIMM 128MB (32MB × 4) 128MB is far too much.
Disk drive Fujitsu MPG 3204AT IDE 20GB UDMA100 Running only in DMA/33 mode because of the motherboard's support. It is extremely silent, probably because it has fluid dynamic bearing (FDB) motor.
Motherboard ASUS SP97-V SiS5598, Baby-AT It has on-board UMA VGA, which caused a problem. (See below.)
Ethernet card MELCO BUFALO LGY-PCI-TXC SiS900 SiS900 is a less famous, but fairly a good chip. It's cheap as RealTek's, and it has a solid buffer management as Intel's. BUFALO made a low profile PCI board with it. The box equips two.
Case Junk Slim-line Desktop
Power supply (unknown) AT 250W Just an ordinary AT power supply is not so appropriate for the 24-hours running router; ATX power supply with power-saving mode should be better.
Floppy drive MITSUMI 3.5" 2 modes We sometimes need floppy boot.
Miscellaneous No sound card, no mouse, no keyboard, no display

Trouble specific to this configuration

SP97-V motherboard is based on SiS5598 chipset, which has a built-in UMA (Unified Memory Architecture) based VGA. That is, part of the main memory is used as the frame buffer. This UMA Video function contended the bus-master DMA of SiS900.

I experienced a serious performance degradation when I tested the above SiS5598 and SiS900 combination. That is, when I used FTP to send data to the above machine, and the network is running with 100Mbps, the throughput went down around 100kbps. The degradation didn't occur when data was sent from the machine, or when the network run with 10Mbps. (The throughput was around 7Mbps when the network run with 10Mbps.) Setting the media to fixed 100baseTX didn't improve the performance, nor setting meaiaopt to full-duplex neither.

After some experiments, I found that, when the problem occurred, the SiS900 chip reported an "RX FIFO Overrun" error condition frequently. (Once per two or three successful frame receive.) SiS driver reinitializes itself when this condition is met. I considered as follows.

When receiving a frame, SiS900 operates as a PCI bus master to copy the frame to the receive buffer on the main memory. To do so, the chip must request and wait for a grant of the direct memory access (DMA.) Even when the chip is waiting, more data will come from the network. Those data are kept in an on-chip memory called RX FIFO temporarily. This function is described in SiS900 datasheet.

On the other hand, SiS5598 has UMA Video circuitry, so it must periodically access the frame buffer portion of the main memory. If the chip failed accessing, the video signal stops, so it seems to have the highest priority on bus arbitration. (The priority issue is ambiguous in 5598 datasheet.)

Now, let's assume that the memory access by SiS900 and SiS5598 occurred at the same moment. SiS5598 will give priority to its own video access, so the SiS900 will wait for a longer time than usual before DMA is started. When waiting, the received data will be stored in RX FIFO. However, RX FIFO is only 2KB long, so after 160#181;s at 100Mbps, the buffer became full. I guessed that the frequent RX FIFO overrun is caused this way; DMAs to store received frames were interrupted by UMA video frequently.

To make sure, I plugged a VGA card on the motherboard, disabling the on-board VGA. The problem disappeared as I expected. However, the machine is in a slim-line case without PCI raiser, so with a full height VGA card, I couldn't close the cover of the case... Hence, instead of using another VGA card, I just setup a screen saver (apm_saver with blanktime=60, so that the video refresh stops almost always.

A similar problem might occur on a combination of other chipset with UMA video and other PCI bus master 100Mbps network card, and similar workaround may be effective.