Низкая скорость сетевой карты в linux

Низкая скорость сетевой карты в linux. У меня ноутбук toshiba Satellite L30-114 встроенная сетевая карта Realtek 8139too. в windows она работает отлично. А вот в Linux (Debian, AltLinux, Archlinux) плохо. В начале при высокой сетевой активности она отваливалась (спасала только перезагрузка). Много по инету лазил нашел несколько вариантов:это и переключение ее в другой режим из WINDOWS, и выключение ноута (типа она запоминает настройки от windows) и т.д. Ничего не помогало выдавало сообщение в dmesg “NETDEV WATCHDOG: eth0 (8139too): transmit queue 0 timed out”. Решил купить pcmca ethernet card dfe-690txd (другие в продаже не нашел) с ней те же проблемы, оказывается она работает на том же чипсете. Стал лазить дальше и нашел решение: Добавил к загрузке ядра опцию acpi=force irqpoll и это помогло, карта перестала отваливаться. Появилась другая проблема скорость передачи по ЛВС в районе 200кб/с, вернее она в начале нормальная пара сек, а потом падает и уже держится в районе 200кб/с. Дальше уже больше не поднимается даже при следующем копирование, после перезагрузки все восстанавливается. Хотел бы использовать этот ноут как NAS. Подскажите пожалуйста куда копать в этом вопросе?
Дополнение #1
Пробывал копировать и по cifs и sftp. dmesg ничего не показывает при падении скорости.
Дополнение #2
ввожу sudo ethtool -K eth0 tso off gso off rxhash off пишет: Cannot set device tcp segmentation offload settings: Operation not supported

spci -D | grep Ethernet выводит:
0000:09:02.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
0000:0a:00.0 Ethernet controller: D-Link System Inc DFE-690TXD CardBus PC Card (rev 10)
Поверхностный гуглеж дал несколько ссылок: раз, два, три.
1. Попробуй различные комбинации опций связанных с apic, acpi и irqpoll, в первую очередь - с acpi=off.
2. Настройки биоса, попробуй сбросить настройки в дефолт / задать прерывание для сетевухи вручую.
3. Обновление этого самого биоса.
4. Для этой карты есть 2 разных ядерных модуля: 8139too, 8139cp, попробуй оба. (второй - для ревизии С+) (“modprobe -r 8139too && modprobe 8139cp” или наоборот)
5. Параметры модуля 8139too: use_io, debug. Включить второй, поиграться с первым.

Отсортировано в порядке вероятности, что поможет.
Спасибо AdUser.
По 2 и 3 пункту. В биосе нет настройки сетевой карты.
по 4 пункту 8139cp не цепляет карту
по 5 пункту 8139too: use_io, debug никак не вляет.
по 1 пункту: делал acpi=off вся система тормозит и скорость передачи тормозная (так же делал acpi=noapic,nolapic но pcmci card отваливается) , оставил так - как сделал раннее acpi=force irqpoll при этом карта не вылетает, но падает скорость.
Мне кажется, там дело в ядре (где то прочитал “теряется прерывание - дело не в модуле”.)
какие опции при загрузке ядра можно по переключать (acpi=force irqpoll помогло но частично)? и знать бы что эти опции означают, то вслепую их тыкать не камильфо
aplexey
Спасибо AdUser.
По 2 и 3 пункту. В биосе нет настройки сетевой карты.
по 4 пункту 8139cp не цепляет карту
по 5 пункту 8139too: use_io, debug никак не вляет.
по 1 пункту: делал acpi=off вся система тормозит и скорость передачи тормозная (так же делал acpi=noapic,nolapic но pcmci card отваливается) , оставил так - как сделал раннее acpi=force irqpoll при этом карта не вылетает, но падает скорость.
Мне кажется, там дело в ядре (где то прочитал “теряется прерывание - дело не в модуле”.)
какие опции при загрузке ядра можно по переключать (acpi=force irqpoll помогло но частично)? и знать бы что эти опции означают, то вслепую их тыкать не камильфо
Вот достаточно хорошая дока по этим опциям. Здесь народ решает аналогичную проблему, посмотри, может что и окажется полезным.
По идее, тебе нужно попробовать повесить твою сетевуху на отдельное прерывание и посмотреть, что произойдет. Рекомендуется - на 10 или 11е, теоретически - можно на любое незанятое.
Посмотреть используемые: “cat /proc/interrupts”.
dmesg ничего полезного так и не кажет?

P.S. Вспоминая историю с материнками одного известного производителя, возможно поможет «acpi_os_name=“Microsoft Windows”»?
Перепробовал все опции ядра связанные с APIC и ACPI - ничего не помогло кроме irqpoll. По косвенным признакам решил, что надо копать в сторону жесткого диска, точнее контролера sata. Можно ли как то переключать в archlinux режимы achi pata ide, так как BIOS нет такой опции переключения?
Что это все таки значит и куда копать?
------------[ cut here ]------------
WARNING: at net/sched/sch_generic.c:258 dev_watchdog+0x213/0x220()
Hardware name: Satellite L30                    
NETDEV WATCHDOG: eth1 (8139too): transmit queue 0 timed out
Modules linked in: md5 hmac nls_utf8 cifs fscache ipt_REDIRECT iptable_nat nf_nat ipt_REJECT nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack xt_tcpudp iptable_filter ip_tables x_tables ext3 jbd snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss snd_hda_codec_realtek snd_hda_intel snd_hda_codec pcmcia snd_hwdep radeon ttm drm_kms_helper drm joydev snd_pcm snd_timer i2c_algo_bit shpchp sparse_keymap yenta_socket 8139cp video snd soundcore ati_agp 8139too pcmcia_rsrc ohci_hcd ehci_hcd mii processor agpgart output pcmcia_core thermal button snd_page_alloc rfkill usbcore ac sg pcspkr evdev serio_raw pci_hotplug battery i2c_piix4 psmouse i2c_core fuse ext4 mbcache jbd2 crc16 sd_mod sr_mod cdrom pata_atiixp sata_sil pata_acpi libata scsi_mod
Pid: 0, comm: swapper Not tainted 2.6.37-ARCH #1
Call Trace:
 [<c1044ead>] warn_slowpath_common+0x6d/0xa0
 [<c1294083>] ? dev_watchdog+0x213/0x220
 [<c1294083>] ? dev_watchdog+0x213/0x220
 [<c1044f5e>] warn_slowpath_fmt+0x2e/0x30
 [<c1294083>] dev_watchdog+0x213/0x220
 [<c105b875>] ? insert_work+0x65/0x80
 [<c105ca6c>] ? __queue_work+0xdc/0x2e0
 [<c10528e5>] run_timer_softirq+0x105/0x320
 [<c1293e70>] ? dev_watchdog+0x0/0x220
 [<c104b75c>] __do_softirq+0x8c/0x1c0
 [<c104b6d0>] ? __do_softirq+0x0/0x1c0
 <IRQ>  [<c104b96d>] ? irq_exit+0x6d/0x70
 [<c1005b8d>] ? do_IRQ+0x4d/0xc0
 [<c1003eb0>] ? common_interrupt+0x30/0x38
 [<c106007b>] ? add_sysfs_param.clone.3+0x11b/0x1d0
 [<cec1eeed>] ? acpi_idle_enter_bm+0x24e/0x289 [processor]
 [<c1262d57>] ? cpuidle_idle_call+0x67/0x130
 [<c100228a>] ? cpu_idle+0x9a/0x130
 [<c130214d>] ? rest_init+0x7d/0x80
 [<c144f81f>] ? start_kernel+0x353/0x35a
 [<c144f216>] ? unknown_bootoption+0x0/0x19f
 [<c144f0dc>] ? i386_start_kernel+0xdc/0xe4
---[ end trace d296495b5986c59b ]---
 
может быть проблема в этом, что это значит?
unknown_bootoption+0x0/0x19f
Для тестирования скорости прежде, чем использовать cifs или ssh (или ещё какой протоколо), лучше, на мой взгляд, посмотреть саму сеть с помощью iperf. Что касается конкретно cifs, то там всё весело:

https://bbs.archlinux.org/viewtopic.php?id=115788
симптомы те же, сначала скорость iperf показывал down 59.5 mbits/sec up 15.2 mbits/sec, после копирования фильмов по сети, что то случается (скорость копирования резко падает) и iperf показывает down 9.05 mbits/sec up 2.37 mbits/sec. Т.е скорость падает в 6 раз, и уже больше не поднимается, пока перезагрузку не сделаешь.
 
Зарегистрироваться или войдите чтобы оставить сообщение.