|
From: | Fabrice Bellard |
Subject: | [Qemu-devel] Re: [PATCH] Snapshot block device support |
Date: | Mon, 07 Jul 2003 14:51:56 +0200 |
User-agent: | Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9) Gecko/20020408 |
Rusty Russell wrote:
In message <address@hidden> you write:Even with only one CPU, it helps my debugging to be able to test CONFIG_SMP=y...I realize that SMP simulation can be interesting. I could at least learn how it works as I never looked at it. The simplest solution would be to use CONFIG_QEMU to change the FIXADDR_TOP address in fixmap.h (I am going to test that). I have looked at APIC and IOAPIC simulation in bochs and it does not seem so complicated. My real problem is how to simulate several CPUs at the same time. A solution is to use a single process and to schedule by hand. It is costly because the address space must be switched between each CPU. Another solution is to use separate processes, but it complicates the hardware simulation. Any ideas ?I'd be happy for the moment with a single CPU, as long as an CONFIG_SMP=y kernel booted.
It should work now, provided you add one patch in the kernel (it is mentionned now in the documentation).
If you still have problems, you can remove the spin locks in exec.h:327.
I don't want to discourge you though! If you were going to actually simulate multiple CPUS, ideal would be one thread per cpu (which takes advantage of an SMP host). Switching simply doesn't exercise the race conditions as much as an SMP host does. I remember TDB bugs where tdbtorture (multiprocess stress test) passed fine on UP, but blew up every time on SMP.
I am going to think about it. There are currently complicated locking issues in QEMU: even in user mode simulation, clone() support is totally broken.
Fabrice.
[Prev in Thread] | Current Thread | [Next in Thread] |