Subject: Re: xen 3.1 problem (Re: xen 3.1.0 is there)
To: Kazushi Marukawa <jam@pobox.com>
From: Manuel Bouyer <bouyer@antioche.eu.org>
List: port-xen
Date: 06/27/2007 12:53:20
--SLDf9lqlvOQaIe6s
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Wed, Jun 27, 2007 at 07:31:54PM +0900, Kazushi Marukawa wrote:
>    > Does it still happens with yesterday's commit which did fix a race in
>    > cpu_idle() ? I can't see how this commit could fix the KASSERT issue, but
>    > who knows ...
> 
> Yes, it happens, unfortunately.  I needed to apply my
> locore.S patch to run WinXP on hvm with Xen 3.0.4.  I forgot
> to try with Xen 3.1.0.  I'm not going to reboot my machine
> to try it again for now.  If you want to see the result with
> Xen 3.1.0, please let me know.  I can try.

I don't think it's needed for now. There's definitively a bug in NetBSD
current, Xen 3.0.4 or 3.1.0 doesn't change this fact :)

> 
>    > > However, the related issue, slow hvm is not solved yet.
>    > > When I use WinXP with recent kernel, I feel it is much
>    > > slower than 4.99.18.  I feel something like below.
>    > > e.g. 4.99.21 Xen3.1.0 took 30 sec to open empty start menu.
>    > 
>    > again, maybe yesterday commits fixed it ... please try !
> 
> BTW, this works great.  Now WinXP on hvm runs as normal with
> both Xen 3.0.4 and 3.1.0 after applying locore.S patch.
> Many thanks.  I changed my environment to the 4.99.21.  ;-)

OK, that's a good point. I spotted several places in assembly code
where interrupts could be deffered, I'm working on it. hopefully this
will improve performances a bit.

> 
> 
> However, I'm having several new minor problems with this
> latest kernel.  They are all minor, but I want to let them
> know in public.  Maybe some of them are problems for only my
> environment.  hehe.  Please let me know how others feel.
> 
> Here is a list of them.
> 
> 1. the latest NetBSD DomU runs slower than before and Dom0.
> 2. the latest NetBSD DomU ask me the root partition when it
>    boots.
> 3. the WinXP on the latest NetBSD Dom0 doesn't show better
>    network performance for me.
> 
> Let me explain more details.
> 
> 1st problem: I'm not sure when this started but the latest
>   NetBSD DomU runs slower.  Here is a simple benchmark
>   result.  The benchmark is to run mkid several times under
>   20070624's sys directory and pick one generally good time
>   from results.
> 
> src date			dom0 time	domu time
> 0518 on Xen3.0.4		10.614		9.757
> 0624 w/ patch on Xen3.0.4	10.650		16.938  <- slow
> 0624 w/ patch on Xen3.1.0	10.625		9.638
> 0627 w/ patch on Xen3.0.4	10.640		17.283  <- slow
> 0627 w/ patch on Xen3.1.0	10.524		16.817  <- slow
> 
> I was thinking this is caused since the recent kernel is
> optimized for Xen3.1.0, but 0627 kernel runs slower on both.

There's not "optimisations" for 3.1.0. The only change was a bug fixe
in an ioctl call, which has been there since day 0 of dom0 support
but didn't cause problems before (I suspect because before 3.1.0 this
interface was always used with a one-element list only. the bug shows up
when there's more than one page in the list).

> 
> 2nd problem: DomU ask me what is the boot device.  I
>   answered xbd0 is root, dump is xbd0b, file system is lfs,
>   and init path is /sbin/init.  It works fine after that,
>   but I need to let NetBSD DomU knows them each time.

I think I know what's the problem. Please try the attached patch

> 
> 3rd problem: This is not a real problem.  I just saw the
>   throughput of WinXP on NetBSD Dom0 and Xen3.1.0 is similar
>   to the WinXP on NetBSD Dom0 and Xen4.0.3.  Just wondering
>   how much throughput others are having now.  Mine shows
>   4 times slower than standalone WinXP.

You should try switching to the pcnet emulated network device. This one
gives better results for me on 2003 server (about 3MB/s).

-- 
Manuel Bouyer, LIP6, Universite Paris VI.           Manuel.Bouyer@lip6.fr
     NetBSD: 26 ans d'experience feront toujours la difference
--

--SLDf9lqlvOQaIe6s
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=diff

Index: xen_machdep.c
===================================================================
RCS file: /cvsroot/src/sys/arch/xen/i386/xen_machdep.c,v
retrieving revision 1.17
retrieving revision 1.16
diff -u -r1.17 -r1.16
--- xen_machdep.c	18 Jun 2007 18:56:23 -0000	1.17
+++ xen_machdep.c	22 Jan 2006 20:15:51 -0000	1.16
@@ -1,4 +1,4 @@
-/*	$NetBSD: xen_machdep.c,v 1.17 2007/06/18 18:56:23 bouyer Exp $	*/
+/*	$NetBSD: xen_machdep.c,v 1.16 2006/01/22 20:15:51 bouyer Exp $	*/
 
 /*
  * Copyright (c) 2006 Manuel Bouyer.
@@ -63,7 +63,7 @@
 
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: xen_machdep.c,v 1.17 2007/06/18 18:56:23 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: xen_machdep.c,v 1.16 2006/01/22 20:15:51 bouyer Exp $");
 
 #include "opt_xen.h"
 
@@ -187,8 +187,7 @@
 
 		switch (what) {
 		case XEN_PARSE_BOOTDEV:
-			if (strncasecmp(opt, "bootdev=", 8) == 0 ||
-			    strncasecmp(opt, "root=", 5) == 0)
+			if (strncasecmp(opt, "bootdev=", 8) == 0)
 				strncpy(xcp->xcp_bootdev, opt + 8,
 				    sizeof(xcp->xcp_bootdev));
 			break;

--SLDf9lqlvOQaIe6s--