Merge branch 'master' of git.qubes-os.org:/var/lib/qubes/git/marmarek/kernel
This commit is contained in:
commit
69f1baf94d
@ -13,7 +13,7 @@
|
||||
%global cpu_arch x86_64
|
||||
%define cpu_arch_flavor %cpu_arch/%build_flavor
|
||||
|
||||
%define kernelrelease %version-%rel.%cpu_arch
|
||||
%define kernelrelease %(echo %{version} | sed 's/3\\.[0-9]\\+$/\\0.0/')-%rel.%cpu_arch
|
||||
%define my_builddir %_builddir/%{name}-%{version}
|
||||
|
||||
%define build_src_dir %my_builddir/linux-%version
|
||||
@ -225,6 +225,7 @@ rm -f %buildroot/lib/modules/%kernelrelease/build/scripts/*/*.o
|
||||
|
||||
cp -a scripts/* %buildroot/lib/modules/%kernelrelease/build/scripts/
|
||||
cp -a include/* %buildroot/lib/modules/%kernelrelease/build/include
|
||||
cp -a --parents arch/x86/include/generated %buildroot/lib/modules/%kernelrelease/build/
|
||||
|
||||
# Make sure the Makefile and version.h have a matching timestamp so that
|
||||
# external modules can be built
|
||||
|
@ -0,0 +1,60 @@
|
||||
Subject: [Xen-devel] [PATCH] xen/netback: calculate correctly the SKB slots.
|
||||
Date: Mon, 21 May 2012 13:36:33 -0400
|
||||
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
|
||||
To: xen-devel@lists.xensource.com, ian.campbell@citrix.com,
|
||||
netdev@vger.kernel.org, davem@davemloft.net, linux-kernel@vger.kernel.org
|
||||
CC: Adnan Misherfi <adnan.misherfi@oracle.com>, Konrad Rzeszutek Wilk
|
||||
<konrad.wilk@oracle.com>
|
||||
|
||||
From: Adnan Misherfi <adnan.misherfi@oracle.com>
|
||||
|
||||
A programming error cause the calculation of receive SKB slots to be
|
||||
wrong, which caused the RX ring to be erroneously declared full,
|
||||
and the receive queue to be stopped. The problem shows up when two
|
||||
guest running on the same server tries to communicates using large
|
||||
MTUs. Each guest is connected to a bridge with VLAN over bond
|
||||
interface, so traffic from one guest leaves the server on one bridge
|
||||
and comes back to the second guest on the second bridge. This can be
|
||||
reproduces using ping, and one guest as follow:
|
||||
|
||||
- Create active-back bond (bond0)
|
||||
- Set up VLAN 5 on bond0 (bond0.5)
|
||||
- Create a bridge (br1)
|
||||
- Add bond0.5 to a bridge (br1)
|
||||
- Start a guest and connect it to br1
|
||||
- Set MTU of 9000 across the link
|
||||
|
||||
Ping the guest from an external host using packet sizes of 3991, and
|
||||
4054; ping -s 3991 -c 128 "Guest-IP-Address"
|
||||
|
||||
At the beginning ping works fine, but after a while ping packets do
|
||||
not reach the guest because the RX ring becomes full, and the queue
|
||||
get stopped. Once the problem accrued, the only way to get out of it
|
||||
is to reboot the guest, or use xm network-detach/network-attach.
|
||||
|
||||
ping works for packets sizes 3990,3992, and many other sizes including
|
||||
4000,5000,9000, and 1500 ..etc. MTU size of 3991,4054 are the sizes
|
||||
that quickly reproduce this problem.
|
||||
|
||||
Signed-off-by: Adnan Misherfi <adnan.misherfi@oracle.com>
|
||||
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
|
||||
---
|
||||
drivers/net/xen-netback/netback.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/xen-netback/netback.c
|
||||
b/drivers/net/xen-netback/netback.c
|
||||
index 957cf9d..e382e5b 100644
|
||||
--- a/drivers/net/xen-netback/netback.c
|
||||
+++ b/drivers/net/xen-netback/netback.c
|
||||
@@ -212,7 +212,7 @@ unsigned int xenvif_count_skb_slots(struct xenvif *vif, struct sk_buff *skb)
|
||||
int i, copy_off;
|
||||
|
||||
count = DIV_ROUND_UP(
|
||||
- offset_in_page(skb->data)+skb_headlen(skb), PAGE_SIZE);
|
||||
+ offset_in_page(skb->data + skb_headlen(skb)), PAGE_SIZE);
|
||||
|
||||
copy_off = skb_headlen(skb) % PAGE_SIZE;
|
||||
|
||||
--
|
||||
1.7.7.5
|
@ -10,3 +10,4 @@ patches.xen/pvops-0009-xen-enlighten-Expose-MWAIT-and-MWAIT_LEAF-if-hypervi.patc
|
||||
patches.xen/pvops-0010-CPUFREQ-xen-governor-for-Xen-hypervisor-frequency-sc.patch
|
||||
patches.xen/pvops-0011-x86-PCI-Expand-the-x86_msi_ops-to-have-a-restore-MSI.patch
|
||||
patches.xen/pvops-enable-netfront-in-dom0.patch
|
||||
patches.xen/pvops-netback-calculate-correctly-the-SKB-slots.patch
|
||||
|
Loading…
Reference in New Issue
Block a user