LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: [lvs-users] LVS and Broadcom bug

To: Julian Anastasov <ja@xxxxxx>
Subject: Re: [lvs-users] LVS and Broadcom bug
Cc: lvs-users@xxxxxxxxxxxxxxxxxxxxxx, Aleksey Chudov <aleksey@xxxxx>
From: Simon Horman <horms@xxxxxxxxxxxx>
Date: Mon, 30 Nov 2009 18:03:13 +1100
On Sat, Nov 21, 2009 at 02:41:49AM +0200, Julian Anastasov wrote:
> 
>       Hello,
> 
> On Fri, 20 Nov 2009, Aleksey Chudov wrote:
> 
> > Hello!
> > 
> > I have HP ProLiant BL460c G6 servers with Broadcom Corporation NetXtreme II
> > BCM57711E 10-Gigabit PCIe controller. After enabling Virtual Server in
> > kernel and placing server to the test environment with just 10Mbit/s traffic
> > I see a lot of error messages in logs.
> > 
> > I try different kernel versions 2.6.27.39, 2.6.31.2, 2.6.31.6 but every time
> > I see the same error:
> > 
> > With 2.6.31.x kernel:
> > 
> > Nov 19 23:35:30 bsrvm8-1 kernel: ------------[ cut here ]------------
> > Nov 19 23:35:30 bsrvm8-1 kernel: WARNING: at net/core/dev.c:1563
> > skb_gso_segment+0x10f/0x260()
> > Nov 19 23:35:30 bsrvm8-1 kernel: Hardware name: ProLiant BL460c G6
> > Nov 19 23:35:30 bsrvm8-1 kernel: bnx2x: caps=(0x198829, 0x0) len=719
> > data_len=119 ip_summed=1Pid: 0, comm: swapper Tainted: G        W
> 
>       caps 0x198829 has 0x8000 (NETIF_F_LRO). It seems LRO is
> not disabled for your devices, may be it should happen when
> you enable the IP forwarding for the concerned devices. It
> seems you didn't enabled IP forwarding. Can you confirm it?
> Also, may be LRO can be disabled with ethtool.
> 
>       The problem exists because IPVS does not
> disable LRO, it must be done under RTNL and IPVS never runs
> in this context. And LRO is not supported for forwarding:
> 
> http://marc.info/?l=linux-netdev&m=121389887114416&w=2
> 
>       IPVS does not call ip_forward for DR method, that
> is why you do not need forwarding and the LRO warning
> does not occur before hitting the GSO code. ip_forward
> just drops LRO packets:
> 
>         if (skb_warn_if_lro(skb))
>                 goto drop;

Hi Julian,

do you have any thoughts on how the code might be improved
to handle this case a bit better?

Perhaps something along the lines of the
code for LRO in ip_forward?


_______________________________________________
Please read the documentation before posting - it's available at:
http://www.linuxvirtualserver.org/

LinuxVirtualServer.org mailing list - lvs-users@xxxxxxxxxxxxxxxxxxxxxx
Send requests to lvs-users-request@xxxxxxxxxxxxxxxxxxxxxx
or go to http://lists.graemef.net/mailman/listinfo/lvs-users

<Prev in Thread] Current Thread [Next in Thread>