[Eisfair] [E1] Netzwerkdatendurchsatz zu gering

Thomas Bork tom at eisfair.org
Do Okt 13 21:02:16 CEST 2016


Am 13.10.2016 um 15:12 schrieb Sascha Pohl:

> Als Netzwerkkarte nutze ich die Onboard-Karte des Mainboards.
> Es handelt sich um ein Gigabyte GA-EP45-UD3, dort ist ein Realtek 8111C
> verbaut.
> Eisfair lädt dafür den Treiber r8168.

Aus dem Changelog zum eiskernel 2.22.0:

- r8168 8.041.00 -> 8.042.00
   - zusätzlicher Patch, damit sich der Treiber wieder wie Version
     8.037.00 verhält, bei dem use_dac als Option existierte und
     per Default nicht gesetzt war

Wir hatten mit dem Treiber r8168 immer wieder Schwierigkeiten mit 
bestimmten Revisionen - so stellte sich das zumindest erst mal dar. Nach 
dem o.g. Patch sind die nun zum Glück verschwunden.

Möglicherweise führt dieser Patch nun bei Dir zu einem Problem. Du 
kannst ersatzweise mal den r8169 versuchen.

Alternativ kannst Du dem Treiber die Option use_dac=1 mitgeben. Das muss 
bei aktueller base in

MODULE_x_ACTION='option'               # action to apply to this module

passieren.

Das ist der von mir verwendete Patch:

testeis 2.7.3svn2016-05-21 # diff -Nurp 
/usr/src/linux-3.2.79-eisfair-1/drivers/net/ethernet/realtek/r8168/r8168_n.c 
/usr/src/r8168-8.042.00/src/r8168_n.c
--- 
/usr/src/linux-3.2.79-eisfair-1/drivers/net/ethernet/realtek/r8168/r8168_n.c 
        2016-05-25 23:46:16.995995761 +0200
+++ /usr/src/r8168-8.042.00/src/r8168_n.c       2016-05-26 
14:02:34.387996376 +0200
@@ -301,6 +301,7 @@ MODULE_DEVICE_TABLE(pci, rtl8168_pci_tbl

  static int rx_copybreak = 0;
  static int timer_count = 0x2600;
+static int use_dac;

  static struct {
          u32 msg_enable;
@@ -356,6 +357,9 @@ MODULE_PARM_DESC(eee_enable, "Enable Ene
  module_param(hwoptimize, ulong, 0);
  MODULE_PARM_DESC(hwoptimize, "Enable HW optimization function.");

+module_param(use_dac, int, 0);
+MODULE_PARM_DESC(use_dac, "Enable PCI DAC. Unsafe on 32 bit PCI slot.");
+
  #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0)
  module_param_named(debug, debug.msg_enable, int, 0);
  MODULE_PARM_DESC(debug, "Debug verbosity level (0=none, ..., 16=all)");
@@ -22425,7 +22429,7 @@ rtl8168_init_board(struct pci_dev *pdev,
          }

          if ((sizeof(dma_addr_t) > 4) &&
-            !pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) {
+            !pci_set_dma_mask(pdev, DMA_BIT_MASK(64)) && use_dac) {
                  dev->features |= NETIF_F_HIGHDMA;
          } else {
                  rc = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));


-- 
der tom
[eisfair-team]


Mehr Informationen über die Mailingliste Eisfair