51 messages in com.xensource.lists.xen-develRE: [Xen-devel] segfault in VM
FromSent OnAttachments
Derek Glidden18 Jul 2004 22:22 
James Harper18 Jul 2004 22:50 
Keir Fraser19 Jul 2004 00:26 
Chris Andrews19 Jul 2004 01:28 
Keir Fraser19 Jul 2004 01:56 
Chris Andrews19 Jul 2004 02:01 
Wm19 Jul 2004 05:48 
Keir Fraser19 Jul 2004 06:22 
Derek Glidden19 Jul 2004 11:51 
Derek Glidden19 Jul 2004 11:56 
Derek Glidden19 Jul 2004 11:58 
Derek Glidden19 Jul 2004 12:05 
Chris Andrews19 Jul 2004 12:34 
Derek Glidden19 Jul 2004 16:06 
James Harper19 Jul 2004 17:00 
James Harper19 Jul 2004 17:04 
Derek Glidden19 Jul 2004 18:01 
James Harper19 Jul 2004 18:04 
Keir Fraser19 Jul 2004 23:56 
Keir Fraser20 Jul 2004 00:59 
James Harper20 Jul 2004 03:41 
Keir Fraser20 Jul 2004 03:52 
Christian Limpach20 Jul 2004 06:38 
Derek Glidden20 Jul 2004 08:51 
Chris Andrews20 Jul 2004 11:09 
James Harper20 Jul 2004 18:14 
Christian Limpach21 Jul 2004 03:12 
Keir Fraser21 Jul 2004 06:30 
James Harper21 Jul 2004 06:47 
Keir Fraser21 Jul 2004 07:17 
Derek Glidden21 Jul 2004 16:39 
Derek Glidden21 Jul 2004 18:47 
Keir Fraser21 Jul 2004 18:54 
James Harper21 Jul 2004 18:56 
Keir Fraser21 Jul 2004 19:03 
Derek Glidden21 Jul 2004 19:39 
James Harper21 Jul 2004 19:47 
Keir Fraser21 Jul 2004 19:56 
James Harper21 Jul 2004 20:49 
James Harper21 Jul 2004 21:35 
Derek Glidden21 Jul 2004 22:28 
Keir Fraser22 Jul 2004 04:22 
Keir Fraser22 Jul 2004 04:54 
James Harper22 Jul 2004 05:53 
Keir Fraser22 Jul 2004 06:08 
Derek Glidden22 Jul 2004 08:31 
Derek Glidden22 Jul 2004 08:38 
Keir Fraser22 Jul 2004 10:47 
James Harper22 Jul 2004 18:03 
Keir Fraser22 Jul 2004 18:11 
James Harper22 Jul 2004 21:49 
Subject:RE: [Xen-devel] segfault in VM
From:James Harper (Jam@bendigoit.com.au)
Date:07/21/2004 08:49:31 PM
List:com.xensource.lists.xen-devel

Okay, I have made the following change in dom0:

To disable the transmit path for guest OSes: Edit net_tx_action in arch/xen/drivers/netif/backend/main.c. After the call to netif_schedule_work(), add: make_tx_response(netif, txreq.id, NETIF_RSP_OKAY); netif_put(netif); continue;

compiled and rebooted with the new kernel. booted dom1, removed vif1.0 from the
bridge, gave it it's own ip address, added a static arp entry and pinged away. I
could see the packet counters for dom0 and dom1 climbing rapiding indicating
that dom0 was sending packets, dom1 was receiving packets, but that a packet
sent by dom1 was unable to reach dom0 again. I got the same sort of crashes
after about 10 minutes.

I'm now testing the other half.

James

From: Keir Fraser Sent: Thu 22/07/2004 12:56 PM To: James Harper Cc: Keir Fraser; xen-@lists.sourceforge.net Subject: Re: [Xen-devel] segfault in VM

As a first test I have just disabled networking via nics=0 in the config, and
running this script in dom1: #!/bin/sh while [ 1 = 1 ] do dd if=/dev/sda1 of=/dev/null bs=1024 count=128K & dd if=/dev/sda1 of=/dev/null bs=1024 skip=256K count=256K done

it tells me 'ioctl 801c6d02 not supported by XL blkif' but that doesn't seem to
matter. Anyway, there are no crashes so far so i'm thinking at this stage that
the block interface stuff is probably fine and I should now concentrate on the
network. Disabling the block stuff will be a huge hassle at this stage so i'll
have to let it go for the moment.

It does seem more likely that the network backend driver is to blame -- it's considerably more complicated than the blkdev driver.

I think i need a crash course in how all this hangs together before I can
understand what i'm testing... My understanding is as follows:

packets sent to dom0.vif1.0 appear at dom1.eth0. packets sent to dom1.eth0 appear at dom0.vif1.0.

Yes, it's basically a point-to-point link. The transmit side on each interface is directly linked to the receive side on the other.

and that's about it. Are they symmetrical? Is the transmit code for dom0.vif1.0
the same as the transmit code for dom1.eth0? Ditto for receive?

No. dom1.eth0 is implemented by the frontend driver arch/xen/drivers/netif/frontend/main.c dom0.vif* is implemented by arch/xen/drivers/netif/backend/main.c

So they look symmetric to users, but the implementation is not symmetric.

-- Keir