Hello, I''m using ASUS P5WD2-E Premium mother board. It has two Marvell Yukon II gigabit Ethernet and sky2 device driver is used for them. When domU receives lots of lots of packets (about 10Kb each), dom0 crashes. Unfortunately, my machine doesn''t have serial port, I can''t capture all the oops messages. Following is backtrace of the oops messages. When domU receives lots of packets from other physical machine, kernel panic occurs. Backtrace br_handle_frame br_nf_pre_routing_finish br_nf_pre_routing nf_iterate nf_hook_slow br_handle_frame netif_receive_skb sky2_poll net_rx_action __do_softirq irq_exit do_IRQ evtchn_do_upcall hypervisor_callback xen_idle cpu_idle rest_init start_kernel 0xc010006f Is it bug of Xen or sky2 device? Thanks in advance. -- Jae-Wan Jang jwjang@camars.kaist.ac.kr +82-42-869-3559 http://camars.kaist.ac.kr/~jwjang _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
> I''m using ASUS P5WD2-E Premium mother board. > It has two Marvell Yukon II gigabit Ethernet and sky2 device driver is > used for them. > > When domU receives lots of lots of packets (about 10Kb each), > dom0 crashes. > Unfortunately, my machine doesn''t have serial port, I can''t captureall> the oops messages. > Following is backtrace of the oops messages.What xen version? Are you talking about 10KB UDP datagrams fragemented into 1500byte Ethernet frames? Have you any iptables or ebtables rules? Ian> When domU receives lots of packets from other physical machine, kernel > panic occurs. > > Backtrace > > br_handle_frame > br_nf_pre_routing_finish > br_nf_pre_routing > nf_iterate > nf_hook_slow > br_handle_frame > netif_receive_skb > sky2_poll > net_rx_action > __do_softirq > irq_exit > do_IRQ > evtchn_do_upcall > hypervisor_callback > xen_idle > cpu_idle > rest_init > start_kernel > 0xc010006f > > Is it bug of Xen or sky2 device? > > Thanks in advance. > > -- > > Jae-Wan Jang > jwjang@camars.kaist.ac.kr > +82-42-869-3559 > http://camars.kaist.ac.kr/~jwjang > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
We had determined this to be a problem in the bridge netfilter code, in that it can''t deal with skb-s that have no headroom set up (for alignment purposes), as the sky2 driver appears to do. I''m attaching the patch we use to address this in SLE10. Jan>>> Jae-Wan Jang <jwjang@camars.kaist.ac.kr> 18.08.06 09:50 >>>Hello, I''m using ASUS P5WD2-E Premium mother board. It has two Marvell Yukon II gigabit Ethernet and sky2 device driver is used for them. When domU receives lots of lots of packets (about 10Kb each), dom0 crashes. Unfortunately, my machine doesn''t have serial port, I can''t capture all the oops messages. Following is backtrace of the oops messages. When domU receives lots of packets from other physical machine, kernel panic occurs. Backtrace br_handle_frame br_nf_pre_routing_finish br_nf_pre_routing nf_iterate nf_hook_slow br_handle_frame netif_receive_skb sky2_poll net_rx_action __do_softirq irq_exit do_IRQ evtchn_do_upcall hypervisor_callback xen_idle cpu_idle rest_init start_kernel 0xc010006f Is it bug of Xen or sky2 device? Thanks in advance. -- Jae-Wan Jang jwjang@camars.kaist.ac.kr +82-42-869-3559 http://camars.kaist.ac.kr/~jwjang _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
> Is it bug of Xen or sky2 device?Most likely bridging code, try the patch below (reminds /me that I wanted to forward that one to the networking folks ...) cheers, Gerd -- Gerd Hoffmann <kraxel@suse.de> http://www.suse.de/~kraxel/julika-dora.jpeg _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Jae-Wan Jang <jwjang@camars.kaist.ac.kr> writes: Hi,> I''m using ASUS P5WD2-E Premium mother board. > It has two Marvell Yukon II gigabit Ethernet and sky2 device driver is > used for them. > > When domU receives lots of lots of packets (about 10Kb each), > dom0 crashes. > Unfortunately, my machine doesn''t have serial port, I can''t capture all > the oops messages. > Following is backtrace of the oops messages.May I assume this is only when you are using it in gigabit mode? This same bug is mentioned here: http://www.scl.ameslab.gov/Projects/mini-xen/index.html I have a MacBook with the Marvell Yukon II and I am using it as 100MBit only. It works perfectly for me, although I tried hard to reproduce this specific bug. -- Marco _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Thank you, Gerd Hoffmann. Your patch works very well. I can use both two NICs without problems. Jae-Wan Jang jwjang@camars.kaist.ac.kr +82-42-869-3559 http://camars.kaist.ac.kr/~jwjang Gerd Hoffmann 쓴 글: Is it bug of Xen or sky2 device? Most likely bridging code, try the patch below (reminds /me that I wanted to forward that one to the networking folks ...) cheers, Gerd Subject: nf_bridge: ethernet header is 14 not 16 bytes From: jbeulich@novell.com Acked-by: kraxel@suse.de References: 150410 The bridge netfilter code saves two more bytes that it should. In most cases it doesn''t hurt because many drivers use NET_IP_ALIGN to make the IP header aligned, so there are two extra bytes head room available. Some drivers don''t do that though (sky2 for example), so copying accesses data outside the skbuff data allocation. On xen kernels this can kill the machine with a page fault due to the way how skbuffs are allocated and the memory is managed. --- include/linux/netfilter_bridge.h | 2 +- net/bridge/br_netfilter.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) --- linux-2.6.17.orig/include/linux/netfilter_bridge.h +++ linux-2.6.17/include/linux/netfilter_bridge.h @@ -57,7 +57,7 @@ void nf_bridge_maybe_copy_header(struct memcpy(skb->data - 18, skb->nf_bridge->data, 18); skb_push(skb, 4); } else - memcpy(skb->data - 16, skb->nf_bridge->data, 16); + memcpy(skb->data - 14, skb->nf_bridge->data, 14); } } --- linux-2.6.17.orig/net/bridge/br_netfilter.c +++ linux-2.6.17/net/bridge/br_netfilter.c @@ -124,7 +124,7 @@ static inline struct nf_bridge_info *nf_ static inline void nf_bridge_save_header(struct sk_buff *skb) { - int header_size = 16; + int header_size = 14; if (skb->protocol == htons(ETH_P_8021Q)) header_size = 18; _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --===============0644195803=Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --===============0644195803==--
Jan De Landtsheer
2006-Aug-18 15:59 UTC
Re: [Xen-devel] Xen bug or sky2 device driver bug?
Bug exists in linux-vanilla too... sky2 driver is crap (or the NIC itself for that matter). On Fri, 2006-08-18 at 10:16 +0200, Gerd Hoffmann wrote:> > Is it bug of Xen or sky2 device? > > Most likely bridging code, try the patch below (reminds /me that I > wanted to forward that one to the networking folks ...) > > cheers, > Gerd > > plain text document attachment (nf_bridge-header-size) > Subject: nf_bridge: ethernet header is 14 not 16 bytes > From: jbeulich@novell.com > Acked-by: kraxel@suse.de > References: 150410 > > The bridge netfilter code saves two more bytes that it should. > In most cases it doesn''t hurt because many drivers use NET_IP_ALIGN > to make the IP header aligned, so there are two extra bytes head room > available. > > Some drivers don''t do that though (sky2 for example), so copying > accesses data outside the skbuff data allocation. On xen kernels > this can kill the machine with a page fault due to the way how > skbuffs are allocated and the memory is managed. > > --- > include/linux/netfilter_bridge.h | 2 +- > net/bridge/br_netfilter.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > --- linux-2.6.17.orig/include/linux/netfilter_bridge.h > +++ linux-2.6.17/include/linux/netfilter_bridge.h > @@ -57,7 +57,7 @@ void nf_bridge_maybe_copy_header(struct > memcpy(skb->data - 18, skb->nf_bridge->data, 18); > skb_push(skb, 4); > } else > - memcpy(skb->data - 16, skb->nf_bridge->data, 16); > + memcpy(skb->data - 14, skb->nf_bridge->data, 14); > } > } > > --- linux-2.6.17.orig/net/bridge/br_netfilter.c > +++ linux-2.6.17/net/bridge/br_netfilter.c > @@ -124,7 +124,7 @@ static inline struct nf_bridge_info *nf_ > > static inline void nf_bridge_save_header(struct sk_buff *skb) > { > - int header_size = 16; > + int header_size = 14; > > if (skb->protocol == htons(ETH_P_8021Q)) > header_size = 18; > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Stephen Hemminger
2006-Aug-18 23:09 UTC
Re: [Xen-devel] Xen bug or sky2 device driver bug?
On Fri, 18 Aug 2006 17:59:23 +0200 Jan De Landtsheer <Jan@qlayer.com> wrote:> Bug exists in linux-vanilla too... sky2 driver is crap (or the NIC > itself for that matter). >The driver is new, and Xen is following several kernel versions behind. So you are seeing the worst end of the dog. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Stephen Hemminger
2006-Aug-18 23:10 UTC
Re: [Xen-devel] Xen bug or sky2 device driver bug?
On Fri, 18 Aug 2006 16:50:18 +0900 Jae-Wan Jang <jwjang@camars.kaist.ac.kr> wrote:> Hello, > > I''m using ASUS P5WD2-E Premium mother board. > It has two Marvell Yukon II gigabit Ethernet and sky2 device driver is > used for them. > > When domU receives lots of lots of packets (about 10Kb each), > dom0 crashes. > Unfortunately, my machine doesn''t have serial port, I can''t capture all > the oops messages. > Following is backtrace of the oops messages. > > When domU receives lots of packets from other physical machine, kernel > panic occurs. > > Backtrace > > br_handle_frame > br_nf_pre_routing_finish > br_nf_pre_routing > nf_iterate > nf_hook_slow > br_handle_frame > netif_receive_skb > sky2_poll > net_rx_action > __do_softirq > irq_exit > do_IRQ > evtchn_do_upcall > hypervisor_callback > xen_idle > cpu_idle > rest_init > start_kernel > 0xc010006f > > Is it bug of Xen or sky2 device? > > Thanks in advance. >Did you ever think or reading the MAINTAINERS file and sending a bug report? _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel