From 7e06aa13c17293eeb651d24610f3d99478a62dc5 Mon Sep 17 00:00:00 2001 From: Christian Helmuth Date: Thu, 20 Apr 2023 15:41:31 +0200 Subject: [PATCH] vbox6: disable GSO in e1000 model Commit "vbox: avoid uncaught nic Empty_ack_queue exception" introduced a performance regression due to packet retransmission because of faulty GSO segment handling. As fixing the GSO handling is fairly complex, we disable GSO until a fix was developed. Issue #4820 Issue #4821 --- repos/ports/ports/virtualbox6.hash | 2 +- repos/ports/src/virtualbox6/patches/network.patch | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/repos/ports/ports/virtualbox6.hash b/repos/ports/ports/virtualbox6.hash index 9fe7342901..5f92a93bf2 100644 --- a/repos/ports/ports/virtualbox6.hash +++ b/repos/ports/ports/virtualbox6.hash @@ -1 +1 @@ -b59f4f8ca00b96a40a93f736676f5b4e830cbd01 +7206beec5f83e36d8ed850537ae730d862e790d5 diff --git a/repos/ports/src/virtualbox6/patches/network.patch b/repos/ports/src/virtualbox6/patches/network.patch index a5890855f9..928d747542 100644 --- a/repos/ports/src/virtualbox6/patches/network.patch +++ b/repos/ports/src/virtualbox6/patches/network.patch @@ -2,7 +2,16 @@ network.patch --- a/src/virtualbox6/src/VBox/Devices/Network/DevE1000.cpp +++ b/src/virtualbox6/src/VBox/Devices/Network/DevE1000.cpp -@@ -7992,6 +7992,33 @@ static DECLCALLBACK(int) e1kR3Construct(PPDMDEVINS pDevIns, int iInstance, PCFGM +@@ -8001,7 +8001,7 @@ + return PDMDEV_SET_ERROR(pDevIns, rc, + N_("Configuration error: Failed to get the value of 'EthernetCRC'")); + +- rc = pHlp->pfnCFGMQueryBoolDef(pCfg, "GSOEnabled", &pThis->fGSOEnabled, true); ++ rc = pHlp->pfnCFGMQueryBoolDef(pCfg, "GSOEnabled", &pThis->fGSOEnabled, false); + if (RT_FAILURE(rc)) + return PDMDEV_SET_ERROR(pDevIns, rc, + N_("Configuration error: Failed to get the value of 'GSOEnabled'")); +@@ -8046,6 +8046,33 @@ pDevIns->fR0Enabled ? "enabled" : "disabled", pDevIns->fRCEnabled ? "enabled" : "disabled")); @@ -36,7 +45,7 @@ network.patch /* * Initialize sub-components and register everything with the VMM. */ -@@ -8131,27 +8158,6 @@ static DECLCALLBACK(int) e1kR3Construct(PPDMDEVINS pDevIns, int iInstance, PCFGM +@@ -8185,27 +8212,6 @@ return PDMDEV_SET_ERROR(pDevIns, rc, N_("Failed to attach the status LUN")); pThisCC->pLedsConnector = PDMIBASE_QUERY_INTERFACE(pBase, PDMILEDCONNECTORS);