VirtualBox

Changes between Initial Version and Version 2 of Ticket #7059


Ignore:
Timestamp:
Jul 21, 2010 8:27:50 AM (14 years ago)
Author:
Frank Mehnert
Comment:

I've attached a patch for vboxnetflt which should solve this problem for Linux hosts. Make sure you shut down all VMs. Then apply this patch to your vboxnetflt directory in /usr/src/vboxnetflt-* and recompile the host kernel modules with

/etc/init.d/vboxdrv setup

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #7059 – Description

    initial v2  
    11The Issue manifests itself as the following:
    2 - Slow networking performance in the guest with I/O intensive network operations.
    3 - Slow network performance in the guest with certain network protocols and operations.
    4 - Excessively large amounts of TCP re-transmissions
    5 - Constant out of order TCP packet deliveries
    6 - Excessive TCP segmentation
    7 - Excessive TCP recv window overflows
    8 - Adapter resets
     2 * Slow networking performance in the guest with I/O intensive network operations.
     3 * Slow network performance in the guest with certain network protocols and operations.
     4 * Excessively large amounts of TCP re-transmissions
     5 * Constant out of order TCP packet deliveries
     6 * Excessive TCP segmentation
     7 * Excessive TCP recv window overflows
     8 * Adapter resets
    99
    10 The cause seems to be some improper interaction with VirtualBox bridging and the Generic Receive Offloading (GRO) feature which is now defaulted “on” in the igb driver. This only occurs on systems with the 82575 or 825756 ethernet controller and does not occur on other ethernet controllers or on Intel ethernet controllers using the e1000e or e1000 driver.
     10The cause seems to be some improper interaction with !VirtualBox bridging and the Generic Receive Offloading (GRO) feature which is now defaulted “on” in the igb driver. This only occurs on systems with the 82575 or 825756 ethernet controller and does not occur on other ethernet controllers or on Intel ethernet controllers using the e1000e or e1000 driver.
    1111
    1212Data Points:
    13 - The issue can be reproduced with Linux or OpenSolaris as the host OS with the common thread being the igb driver.
    14 - I cannot reproduce this issue with Windows 7 x64, Windows Server 2003 R2 x64, or Windows Server 2008 R2 x64 as a host OS.
    15 - The version of the Intel igb driver is out of date on some distros (EG: opensuse 11.2 = 1.3.16-k2 and centos was a 2.x version of the driver)
    16 - I have compiled and installed the latest version of the "igb" driver from intel on tested out of date distros, (2.2.9)
    17 - With the new driver however the issue is still there
    18 - Changing the networking from bridged to NAT on the guest makes this problem go away compeletely.
    19 - Guest network adapter type did not matter (EG: intel, virtio)]
    20 - Occurs under all guest OS (EG: windows, linux, opensolaris)
     13 * The issue can be reproduced with Linux or !OpenSolaris as the host OS with the common thread being the igb driver.
     14 * I cannot reproduce this issue with Windows 7 x64, Windows Server 2003 R2 x64, or Windows Server 2008 R2 x64 as a host OS.
     15 * The version of the Intel igb driver is out of date on some distros (EG: opensuse 11.2 = 1.3.16-k2 and centos was a 2.x version of the driver)
     16 * I have compiled and installed the latest version of the "igb" driver from intel on tested out of date distros, (2.2.9)
     17 * With the new driver however the issue is still there
     18 * Changing the networking from bridged to NAT on the guest makes this problem go away compeletely.
     19 * Guest network adapter type did not matter (EG: intel, virtio)]
     20 * Occurs under all guest OS (EG: Windows, Linux, !OpenSolaris)
    2121
    2222The easiest way I have found thus far to reproduce this issue:
    23 Load a system that has and 82575 or 82576 ethernet controller with Linux (any linux works choose your distro) or OpenSolaris b134.
     23Load a system that has and 82575 or 82576 ethernet controller with Linux (any linux works choose your distro) or !OpenSolaris b134.
    2424Load VBox and install a guest (Guest OS does not matter)
    2525Bridge the guest to an interface EG: eth0, igb0
     
    3030The workaround for this at the moment is to disable GRO on the host. This can be done via ethtool by issuing the following: "ethtool –K gro off"
    3131
    32 I opened a bug with the Intel igb driver on this (https://sourceforge.net/tracker/index.php?func=detail&aid=3020285&group_id=42302&atid=447449) however it appears that this may be a bug in the VirtualBox bridging implementation and the handling of LRO/GRO.
     32I opened a bug with the Intel igb driver on this (see [https://sourceforge.net/tracker/index.php?func=detail&aid=3020285&group_id=42302&atid=447449 here]) however it appears that this may be a bug in the !VirtualBox bridging implementation and the handling of LRO/GRO.
    3333 
    3434Below are some links to changes made to the upstream bridging code in linux for LRO/GRO. Essentially the bridge disables LRO/GRO on any device that hands it a coalesced packet.

© 2023 Oracle
ContactPrivacy policyTerms of Use