In case anyone stumbles upon this thread looking for a solution, there has been success here reverting a particular kernel patch to sis900.c that occured between linux versions 3.11 and 3.12.
The machine tested has been a Gericom Webboy (laptop from year ~2000), it was connected to a tplink router. Systems with kernel versions 2.6.21.7, 2.6.27.27, 3.8.2 and 3.11 had acceptable network performance, while a regression was observed after booting 4.4.0 vanilla. With this version the net- work adapter delivered a mere 100 kb/s, while in the megabyte range with aforementioned versions. Backtracking the issue down to kernel 3.12.6 reliably exhibited the same degradation for each kernel tested - flooding dmesg log with the log patterns described earlier in this bug thread. Visiting the kernel changelogs between versions 3.11 and 3.12.6 the following candidate patch could be identified as a possible cause: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/drivers/net/ethernet/sis/sis900.c?h=v3.12&id=78f1ccc4f82cd7bbb65b0e938ed0dfd81e902fe0 The patch title is sis900: don't restart auto-negotiation each time after link resume. .. applied to linux mainline on 2013-08-20 Once this patch is reverted and 3.12.6 kernel recompiled, the sis900 network card's performance was restored. This observation has then been confirmed and reproduced by reverse applying the patch to kernel 4.4.0. This patch may or may not be the cause for other setups employing sis900 as a network chip, but has been reproducibly identified as cause for performance degradation for the issue above. The mii-tool workaround described earlier has worked as well, i.e. without patching the sis900.c driver, setting 10baseT-FD only for auto-negotiation events. (100baseTx-HD showed no improvement). 10baseT-FD limits the network card's speed to about one mbyte/s, which is inferior to proper patching of sis900 kernel driver. Regards, Jim