Bug 738389

Summary: Patch needed to allow MTU >1500 on vif prior to connecting to bridge [rhel-5.7.z]
Product: Red Hat Enterprise Linux 5 Reporter: RHEL Program Management <pm-rhel>
Component: kernel-xenAssignee: Phillip Lougher <plougher>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: high Docs Contact:
Priority: high    
Version: 5.6CC: dhoward, drjones, jzheng, leiwang, lersek, mkelly, ndevos, pasik, pbonzini, plyons, pm-eus, qguan, qwan, xen-maint, xiaohm, yuzhang
Target Milestone: rcKeywords: ZStream
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: kernel-2.6.18-274.5.1.el5 Doc Type: Bug Fix
Doc Text:
Prior to this update, MTU was constrained to 1500 unless Scatter/Gather I/O (SG) was supported by the NIC; in the case of netback, this would mean unless SG was supported by the front-end. Because the hotplugging scripts ran before features have been negotiated with the front-end, at that point SG would still be disabled, breaking anything using larger MTUs, (for example, cluster communication using that NIC). This update inverts the behavior and assumes SG to be present until negotiations prove otherwise (in such a case, MTU is automatically reduced).
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-10-20 17:31:40 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 697021, 746600    
Bug Blocks:    

Description RHEL Program Management 2011-09-14 17:16:44 UTC
This bug has been copied from bug #697021 and has been proposed
to be backported to 5.7 z-stream (EUS).

Comment 7 Phillip Lougher 2011-09-17 01:42:58 UTC
in kernel-2.6.18-274.5.1.el5

linux-2.6-virt-xen-allow-arbitrary-mtu-size-until-frontend-connected.patch

Comment 10 Paolo Bonzini 2011-10-14 14:59:07 UTC
This causes a regression with Windows guests, bug 746225.

Comment 11 errata-xmlrpc 2011-10-20 17:31:40 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHSA-2011-1386.html

Comment 12 Martin Prpič 2011-10-27 09:20:59 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
Prior to this update, MTU was constrained to 1500 unless Scatter/Gather I/O (SG) was supported by the NIC; in the case of netback, this would mean unless SG was supported by the front-end. Because the hotplugging scripts ran before features have been negotiated with the front-end, at that point SG would still be disabled, breaking anything using larger MTUs, (for example, cluster communication using that NIC). This update inverts the behavior and assumes SG to be present until negotiations prove otherwise (in such a case, MTU is automatically reduced).

Comment 13 Tom 2012-02-21 14:32:23 UTC
Can you please share the detail of 746225? I am seeing following patch in kernel-2.6.18-274.12.1 and it fixes one of Windows guests issue we were facing. We want to confirm whether the problem we were facing is same as the problem described in 746225. Also, without this patch, what else could be affected?

diff -Naurp linux-2.6.18.4/drivers/xen/netback/interface.c linux-2.6.18-redhat/drivers/xen/netback/interface.c
--- linux-2.6.18.4/drivers/xen/netback/interface.c      2012-02-20 19:22:37.000000000 -0700
+++ linux-2.6.18-redhat/drivers/xen/netback/interface.c 2012-02-20 19:22:59.000000000 -0700
@@ -93,8 +93,9 @@ static int netbk_change_mtu(struct net_d
void netif_set_features(netif_t *netif)
{
        struct net_device *dev = netif->dev;
-       int features = dev->features;
+       int features;

+       features = dev->features & ~(NETIF_F_SG|NETIF_F_TSO|NETIF_F_IP_CSUM);
        if (netif->can_sg)
                features |= NETIF_F_SG;
        if (netif->gso)