I've been bothered by this for months, and finally nailed it, so I thought I'd share. The (wired) ethernet connection was intolerably slow (100 Mbit connection with ~100-200 kbps throughput), but only in some circumstances. In particular, it made installing my distro unbearable - I had a huge pipe and it took something like 6 hours to download a minimal Fedora 10 distro.
I finally put together a solid test case and discovered that the throughput actually goes UP when the processor is loaded - at 100% load, the throughput is exactly what I'd expect from a 100 Mb link. It turns out that the buffer in the Realtek ethernet chip is really small. With no load (say, filling up a video buffer), the processor would go to sleep (ACPI state C3), and it would take so long to wake back up that the buffer would fill up and packets would the lost. When the lost packets didn't get ACKed, the sending TCP stack would scale back the transmission rate. However, if the CPU was loaded (say, playing back that video), then it would be awake enough to handle the interrupt in a timely fashion and the throughput was fine. The fix is to keep the processor from going all the way into C3 sleep; rather, we want the kernel's idle loop just to spin on an HLT instruction so that it wakes back up faster. This is accomplished by adding "idle=halt" to the kernel boot line, either in boot_linux.sh (if you're using atv-boot=manual in com.apple.Boot.plist), or else in your grub.conf file (if you're using a real bootloader.) A related issue can be caused by the CPU's clock frequency being scaled back by the cpufreq governor - it's "ondemand" in most current distros. Changing it to "performance" ( cat performance > /sys/ devices/system/cpu/cpu0/cpufreq) on system startup alleviates this problem, too. Thanks to sdavilla for an awesome project - now that this problem's been nailed, my ATV is a kick-ass MythTV frontend. Brian --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/atv-bootloader?hl=en -~----------~----~----~----~------~----~------~--~---
