[PATCH] Convert .flat files to 32-bit elf format

2010-12-05 Thread Avi Kivity
Recent qemus no longer load 64-bit elf kernels.  Fix by converting
to 32-bit elf.

Signed-off-by: Avi Kivity a...@redhat.com
---
 config-x86-common.mak |   39 +--
 1 files changed, 21 insertions(+), 18 deletions(-)

diff --git a/config-x86-common.mak b/config-x86-common.mak
index b541c1c..c5508b3 100644
--- a/config-x86-common.mak
+++ b/config-x86-common.mak
@@ -20,9 +20,12 @@ CFLAGS += -m$(bits)
 libgcc := $(shell $(CC) -m$(bits) --print-libgcc-file-name)
 
 FLATLIBS = lib/libcflat.a $(libgcc)
-%.flat: %.o $(FLATLIBS) flat.lds
+%.elf: %.o $(FLATLIBS) flat.lds
$(CC) $(CFLAGS) -nostdlib -o $@ -Wl,-T,flat.lds $(filter %.o, $^) 
$(FLATLIBS)
 
+%.flat: %.elf
+   objcopy -O elf32-i386 $^ $@
+
 tests-common = $(TEST_DIR)/vmexit.flat $(TEST_DIR)/tsc.flat \
$(TEST_DIR)/smptest.flat  $(TEST_DIR)/port80.flat \
$(TEST_DIR)/realmode.flat $(TEST_DIR)/msr.flat \
@@ -35,47 +38,47 @@ test_cases: $(tests-common) $(tests)
 
 $(TEST_DIR)/%.o: CFLAGS += -std=gnu99 -ffreestanding -I lib -I lib/x86
 
-$(TEST_DIR)/access.flat: $(cstart.o) $(TEST_DIR)/access.o
+$(TEST_DIR)/access.elf: $(cstart.o) $(TEST_DIR)/access.o
 
-$(TEST_DIR)/hypercall.flat: $(cstart.o) $(TEST_DIR)/hypercall.o
+$(TEST_DIR)/hypercall.elf: $(cstart.o) $(TEST_DIR)/hypercall.o
 
-$(TEST_DIR)/sieve.flat: $(cstart.o) $(TEST_DIR)/sieve.o \
+$(TEST_DIR)/sieve.elf: $(cstart.o) $(TEST_DIR)/sieve.o \
$(TEST_DIR)/vm.o
 
-$(TEST_DIR)/vmexit.flat: $(cstart.o) $(TEST_DIR)/vmexit.o
+$(TEST_DIR)/vmexit.elf: $(cstart.o) $(TEST_DIR)/vmexit.o
 
-$(TEST_DIR)/smptest.flat: $(cstart.o) $(TEST_DIR)/smptest.o
+$(TEST_DIR)/smptest.elf: $(cstart.o) $(TEST_DIR)/smptest.o
 
-$(TEST_DIR)/emulator.flat: $(cstart.o) $(TEST_DIR)/emulator.o \
+$(TEST_DIR)/emulator.elf: $(cstart.o) $(TEST_DIR)/emulator.o \
   $(TEST_DIR)/vm.o $(TEST_DIR)/idt.o
 
-$(TEST_DIR)/port80.flat: $(cstart.o) $(TEST_DIR)/port80.o
+$(TEST_DIR)/port80.elf: $(cstart.o) $(TEST_DIR)/port80.o
 
-$(TEST_DIR)/tsc.flat: $(cstart.o) $(TEST_DIR)/tsc.o
+$(TEST_DIR)/tsc.elf: $(cstart.o) $(TEST_DIR)/tsc.o
 
-$(TEST_DIR)/apic.flat: $(cstart.o) $(TEST_DIR)/apic.o $(TEST_DIR)/vm.o
+$(TEST_DIR)/apic.elf: $(cstart.o) $(TEST_DIR)/apic.o $(TEST_DIR)/vm.o
 
-$(TEST_DIR)/realmode.flat: $(TEST_DIR)/realmode.o
+$(TEST_DIR)/realmode.elf: $(TEST_DIR)/realmode.o
$(CC) -m32 -nostdlib -o $@ -Wl,-T,$(TEST_DIR)/realmode.lds $^
 
 $(TEST_DIR)/realmode.o: bits = 32
 
-$(TEST_DIR)/msr.flat: $(cstart.o) $(TEST_DIR)/msr.o
+$(TEST_DIR)/msr.elf: $(cstart.o) $(TEST_DIR)/msr.o
 
-$(TEST_DIR)/idt_test.flat: $(cstart.o) $(TEST_DIR)/idt.o $(TEST_DIR)/idt_test.o
+$(TEST_DIR)/idt_test.elf: $(cstart.o) $(TEST_DIR)/idt.o $(TEST_DIR)/idt_test.o
 
-$(TEST_DIR)/xsave.flat: $(cstart.o) $(TEST_DIR)/idt.o $(TEST_DIR)/xsave.o
+$(TEST_DIR)/xsave.elf: $(cstart.o) $(TEST_DIR)/idt.o $(TEST_DIR)/xsave.o
 
-$(TEST_DIR)/rmap_chain.flat: $(cstart.o) $(TEST_DIR)/rmap_chain.o \
+$(TEST_DIR)/rmap_chain.elf: $(cstart.o) $(TEST_DIR)/rmap_chain.o \
 $(TEST_DIR)/vm.o
 
-$(TEST_DIR)/svm.flat: $(cstart.o) $(TEST_DIR)/vm.o
+$(TEST_DIR)/svm.elf: $(cstart.o) $(TEST_DIR)/vm.o
 
-$(TEST_DIR)/kvmclock_test.flat: $(cstart.o) $(TEST_DIR)/kvmclock.o \
+$(TEST_DIR)/kvmclock_test.elf: $(cstart.o) $(TEST_DIR)/kvmclock.o \
 $(TEST_DIR)/kvmclock_test.o
 
 arch_clean:
-   $(RM) $(TEST_DIR)/*.o $(TEST_DIR)/*.flat \
+   $(RM) $(TEST_DIR)/*.o $(TEST_DIR)/*.flat $(TEST_DIR)/*.elf \
$(TEST_DIR)/.*.d $(TEST_DIR)/lib/.*.d $(TEST_DIR)/lib/*.o
 
 -include $(TEST_DIR)/.*.d lib/.*.d lib/x86/.*.d
-- 
1.7.1

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Problems on qemu-kvm unittests

2010-12-05 Thread Avi Kivity

On 12/03/2010 12:03 PM, Avi Kivity wrote:

On 12/03/2010 12:59 AM, Lucas Meneghel Rodrigues wrote:
We are getting failures when executing apic.flat on our periodic 
upstream tests:


12/02 18:40:59 DEBUG|kvm_vm:0664| Running qemu command:
/usr/local/autotest/tests/kvm/qemu -name 'vm1' -monitor 
unix:'/tmp/monitor-humanmonitor1-20101202-184059-9EnX',server,nowait 
-serial unix:'/tmp/serial-20101202-184059-9EnX',server,nowait -m 512 
-smp 2 -kernel '/usr/local/autotest/tests/kvm/unittests/apic.flat' 
-vnc :0 -chardev 
file,id=testlog,path=/tmp/testlog-20101202-184059-9EnX -device 
testdev,chardev=testlog  -S -cpu qemu64,+x2apic
12/02 18:40:59 DEBUG|kvm_subpro:0700| (qemu) Cannot load x86-64 
image, give a 32bit one.
12/02 18:40:59 DEBUG|kvm_subpro:0700| (qemu) (Process terminated with 
status 1)


Relevant git commits:

12/02 18:20:16 INFO | kvm_utils:0407| Commit hash for 
git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm.git is 
9ee00410d82a7c5cab5ae347d97fbf8a95c55506 (tag v2.6.32-56688-g9ee0041)


12/02 18:39:11 INFO | kvm_utils:0407| Commit hash for 
git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git is 
53b6d3d5c2522e881c8d194f122de3114f6f76eb (tag kvm-88-6325-g53b6d3d)


12/02 18:39:16 INFO | kvm_utils:0407| Commit hash for 
git://git.kernel.org/pub/scm/virt/kvm/kvm-unit-tests.git is 
f2d2b7c74355523b90019427224577b6f0ff1b8a (no tag found)


Please advise!



Caused by qemu tightening up -kernel.  Easily fixed by using objcopy, 
I'll post a patch soon.




Now fixed, kvm-unit-tests.git should work with newer qemus.

--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/2] KVM: x86 emulator: add framework for instruction intercepts

2010-12-05 Thread Avi Kivity
When running in guest mode, certain instructions can be intercepted by
hardware.  This also holds for nested guests running on emulated
virtualization hardware, in particular instructions emulated by kvm
itself.

This patch adds a framework for intercepting instructions.  If an
instruction is marked for interception, and if we're running in guest
mode, a callback is called to check whether an intercept is needed or
not.  The callback is called at three points in time: immediately after
beginning execution, after checking privilge exceptions, and after checking
memory exception.  This suits the different interception points defined for
different instructions and for the various virtualization instruction sets.

In addition, a new X86EMUL_INTERCEPT is defined, which any callback or memory
access may define, allowing the more complicated intercepts to be implemented
in existing callbacks.

Signed-off-by: Avi Kivity a...@redhat.com
---
 arch/x86/include/asm/kvm_emulate.h |   20 
 arch/x86/kvm/emulate.c |   26 ++
 arch/x86/kvm/x86.c |9 +
 3 files changed, 55 insertions(+), 0 deletions(-)

diff --git a/arch/x86/include/asm/kvm_emulate.h 
b/arch/x86/include/asm/kvm_emulate.h
index bf70ece..df06265 100644
--- a/arch/x86/include/asm/kvm_emulate.h
+++ b/arch/x86/include/asm/kvm_emulate.h
@@ -14,6 +14,8 @@
 #include asm/desc_defs.h
 
 struct x86_emulate_ctxt;
+enum x86_intercept;
+enum x86_intercept_stage;
 
 struct x86_exception {
u8 vector;
@@ -62,6 +64,7 @@ struct x86_exception {
 #define X86EMUL_RETRY_INSTR 3 /* retry the instruction for some reason */
 #define X86EMUL_CMPXCHG_FAILED  4 /* cmpxchg did not see expected value */
 #define X86EMUL_IO_NEEDED   5 /* IO is needed to complete emulation */
+#define X86EMUL_INTERCEPTED 6 /* Intercepted by nested VMCB/VMCS */
 
 struct x86_emulate_ops {
/*
@@ -158,6 +161,9 @@ struct x86_emulate_ops {
int (*set_dr)(int dr, unsigned long value, struct kvm_vcpu *vcpu);
int (*set_msr)(struct kvm_vcpu *vcpu, u32 msr_index, u64 data);
int (*get_msr)(struct kvm_vcpu *vcpu, u32 msr_index, u64 *pdata);
+   int (*intercept)(struct x86_emulate_ctxt *ctxt,
+enum x86_intercept intercept,
+enum x86_intercept_stage stage);
 };
 
 /* Type, address-of, and value of an instruction's operand. */
@@ -197,6 +203,7 @@ struct read_cache {
 struct decode_cache {
u8 twobyte;
u8 b;
+   u8 intercept;
u8 lock_prefix;
u8 rep_prefix;
u8 op_bytes;
@@ -238,6 +245,7 @@ struct x86_emulate_ctxt {
/* interruptibility state, as a result of execution of STI or MOV SS */
int interruptibility;
 
+   bool guest_mode; /* guest running a nested guest */
bool perm_ok; /* do not check permissions if true */
 
bool have_exception;
@@ -258,6 +266,18 @@ struct x86_emulate_ctxt {
 #define X86EMUL_MODE_PROT32   4/* 32-bit protected mode. */
 #define X86EMUL_MODE_PROT64   8/* 64-bit (long) mode.*/
 
+enum x86_intercept_stage {
+   x86_icpt_pre_except,
+   x86_icpt_post_except,
+   x86_icpt_post_memaccess,
+};
+
+enum x86_intercept {
+   x86_intercept_none,
+
+   nr_x86_intercepts
+};
+
 /* Host execution mode. */
 #if defined(CONFIG_X86_32)
 #define X86EMUL_MODE_HOST X86EMUL_MODE_PROT32
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index 6366735..be6ebff 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -101,6 +101,7 @@
 
 struct opcode {
u32 flags;
+   u8 intercept;
union {
int (*execute)(struct x86_emulate_ctxt *ctxt);
struct opcode *group;
@@ -2319,10 +2320,13 @@ static int em_mov(struct x86_emulate_ctxt *ctxt)
 }
 
 #define D(_y) { .flags = (_y) }
+#define DI(_y, _i) { .flags = (_y), .intercept = x86_intercept_##_i }
 #define ND(0)
 #define G(_f, _g) { .flags = ((_f) | Group), .u.group = (_g) }
 #define GD(_f, _g) { .flags = ((_f) | Group | GroupDual), .u.gdual = (_g) }
 #define I(_f, _e) { .flags = (_f), .u.execute = (_e) }
+#define II(_f, _e, _i) \
+   { .flags = (_f), .u.execute = (_e), .intercept = x86_intercept_##_i }
 
 #define D2bv(_f)  D((_f) | ByteOp), D(_f)
 #define I2bv(_f, _e)  I((_f) | ByteOp, _e), I(_f, _e)
@@ -2733,6 +2737,7 @@ done_prefixes:
}
 
c-execute = opcode.u.execute;
+   c-intercept = opcode.intercept;
 
/* Unrecognised? */
if (c-d == 0 || (c-d  Undefined))
@@ -2964,12 +2969,26 @@ x86_emulate_insn(struct x86_emulate_ctxt *ctxt)
goto done;
}
 
+   if (unlikely(ctxt-guest_mode)  c-intercept) {
+   rc = ops-intercept(ctxt, c-intercept,
+   x86_icpt_pre_except);
+   if (rc != X86EMUL_CONTINUE)
+   goto done;
+   }
+
/* Privileged instruction can be 

buildbot failure in qemu-kvm on disable_kvm_x86_64_debian_5_0

2010-12-05 Thread qemu-kvm
The Buildbot has detected a new failure of disable_kvm_x86_64_debian_5_0 on 
qemu-kvm.
Full details are available at:
 
http://buildbot.b1-systems.de/qemu-kvm/builders/disable_kvm_x86_64_debian_5_0/builds/666

Buildbot URL: http://buildbot.b1-systems.de/qemu-kvm/

Buildslave for this Build: b1_qemu_kvm_1

Build Reason: 
Build Source Stamp: [branch next] HEAD
Blamelist: Aaro Koskinen aaro.koski...@iki.fi,Abhijith Das 
a...@redhat.com,Abhilash Kesavan a.kesa...@samsung.com,Ajay Kumar Gupta 
ajay.gu...@ti.com,Alan Stern st...@rowland.harvard.edu,Alberto Panizzo 
maramaopercheseimo...@gmail.com,Alex Deucher alexdeuc...@gmail.com,Alex Shi 
alex@intel.com,Alexey Dobriyan adobri...@gmail.com,Anand Gadiyar 
gadi...@ti.com,Anders Kaseorg ande...@ksplice.com,Andiry Xu 
andiry...@amd.com,Andreas Mohr a...@lisas.de,Andres Salomon 
dilin...@queued.net,Andrew Morton a...@linux-foundation.org,Andy Lutomirski 
l...@mit.edu,Andy Whitcroft a...@canonical.com,Anupam Chanda 
anup...@vmware.com,Arend van Spriel ar...@broadcom.com,Arnaldo Carvalho de 
Melo a...@redhat.com,Arnd Hannemann a...@arndnet.de,Arne Jansen 
sensi...@gmx.net,Artem Bityutskiy artem.bityuts...@nokia.com,Arun Bharadwaj 
a...@linux.vnet.ibm.com,Avi Kivity a...@redhat.com,Axel Lin 
axel@gmail.com,Baruch Siach bar...@tkos.co.il,Bastian B
 lank wa...@debian.org,Ben Hutchings b...@decadent.org.uk,Ben Skeggs 
bske...@redhat.com,Bengt Jonsson bengt.g.jons...@stericsson.com,Brandon 
Philips bran...@ifup.org,Breno Leitao br...@cafe.(none),Brian J. Tarricone 
br...@tarricone.org,Caglar Akyuz cag...@bilkon-kontrol.com.tr,Casey Leedom 
lee...@chelsio.com,Chien Tung chien.tin.t...@intel.com,Chris Mason 
chris.ma...@oracle.com,Chris Metcalf cmetc...@tilera.com,Chris 
Paulson-Ellis ch...@edesix.com,Chris Wilson 
ch...@chris-wilson.co.uk,Christian Lamparter chunk...@googlemail.com,Cyrill 
Gorcunov gorcu...@gmail.com,Daisuke Nishimura 
nishim...@mxp.nes.nec.co.jp,Dan Carpenter erro...@gmail.com,Dan Rosenberg 
drosenb...@vsecurity.com,Daniel Drake d...@laptop.org,Daniel Glöckner 
daniel...@gmx.net,Daniel Klaffenbach danielklaffenb...@gmail.com,Daniel T 
Chen crim...@ubuntu.com,Daniel Vetter daniel.vet...@ffwll.ch,Darius Augulis 
augulis.dar...@gmail.com,Darrick J. Wong djw...@us.ibm.com
 ,Dave Airlie airl...@redhat.com,Dave Chinner dchin...@redhat.com,David 
Daney dda...@caviumnetworks.com,David Henningsson 
david.hennings...@canonical.com,David Howells dhowe...@redhat.com,David S. 
Miller da...@davemloft.net,David Sterba dste...@suse.cz,Dean Nelson 
dnel...@redhat.com,Denis Kuplyakov dener@gmail.com,Dimitri Sivanich 
sivan...@sgi.com,Dimitris Papastamos 
d...@opensource.wolfsonmicro.com,Dmitry Artamonow mad_s...@inbox.ru,Dmitry 
Torokhov dmitry.torok...@gmail.com,Don Zickus dzic...@redhat.com,Eli Cohen 
e...@dev.mellanox.co.il,Eric Benard e...@eukrea.com,Eric Bénard 
e...@eukrea.com,Eric Dumazet eric.duma...@gmail.com,Felix Fietkau 
n...@openwrt.org,Feng Tang feng.t...@intel.com,Filip Aben 
f.a...@option.com,Florian Fainelli flor...@openwrt.org,Francisco Jerez 
curroje...@riseup.net,Frederic Weisbecker fweis...@gmail.com,Gerrit Renker 
ger...@erg.abdn.ac.uk,Giuseppe CAVALLARO peppe.cavall...@st.com,Giuseppe 
Cavallaro 
 peppe.cavall...@st.com,Greg Kroah-Hartman gre...@suse.de,Greg Thelen 
gthe...@google.com,Guennadi Liakhovetski g.liakhovet...@gmx.de,Guenter 
Roeck guenter.ro...@ericsson.com,Hans J. Koch h...@hansjkoch.de,Heiko 
Carstens heiko.carst...@de.ibm.com,Hema Kalliguddi hem...@ti.com,Henrik 
Rydberg rydb...@euromail.se,Herton Ronaldo Krzesinski 
her...@mandriva.com.br,Huang Weiyi weiyi.hu...@gmail.com,Ian Campbell 
ian.campb...@citrix.com,Ian Kent ra...@themaw.net,Ingo Molnar 
mi...@elte.hu,Jacob Pan jacob.jun@linux.intel.com,Jacques Viviers 
jacques.vivi...@gmail.com,James Jones jajo...@nvidia.com,Jan Beulich 
jbeul...@novell.com,Jan Beulich jbeul...@novell.com,Jan Glauber 
j...@linux.vnet.ibm.com,Janusz Krzysztofik jkrzy...@tis.icnet.pl,Jarkko 
Nikula jhnik...@gmail.com,Jason Wessel jason.wes...@windriver.com,Jean 
Delvare kh...@linux-fr.org,Jean-Christophe PLAGNIOL-VILLARD 
plagn...@jcrosoft.com,Jeff Layton jlay...@redhat.com,Jens Axboe 
 jax...@fusionio.com,Jeremy Fitzhardinge 
jeremy.fitzhardi...@citrix.com,Jeremy Fitzhardinge jer...@goop.org,Jesper 
Juhl j...@chaosbits.net,Jesse Marroquin jesse.marroq...@maxim-ic.com,Jiri 
Slaby jsl...@suse.cz,Joe Perches j...@perches.com,Johannes Berg 
johannes.b...@intel.com,John Fastabend john.r.fastab...@intel.com,John 
Tapsell johnf...@gmail.com,Josef Bacik jo...@redhat.com,Josh Wu 
josh...@atmel.com,Julia Lawall ju...@diku.dk,Jussi Kivilinna 
jussi.kivili...@mbnet.fi,Justin Maggard jmaggar...@gmail.com,KAMEZAWA 
Hiroyuki kamezawa.hir...@jp.fujitsu.com,KOSAKI Motohiro 
kosaki.motoh...@jp.fujitsu.com,Kailang Yang kail...@realtek.com,Keith 
Packard kei...@keithp.com,Ken Kawasaki ken_kawas...@spring.nifty.jp,Ken 
Sumrall ksumr...@android.com,Kevin Hilman 
khil...@deeprootsystems.com,Kirill A. Shutemov 

buildbot failure in qemu-kvm on default_x86_64_debian_5_0

2010-12-05 Thread qemu-kvm
The Buildbot has detected a new failure of default_x86_64_debian_5_0 on 
qemu-kvm.
Full details are available at:
 
http://buildbot.b1-systems.de/qemu-kvm/builders/default_x86_64_debian_5_0/builds/676

Buildbot URL: http://buildbot.b1-systems.de/qemu-kvm/

Buildslave for this Build: b1_qemu_kvm_1

Build Reason: 
Build Source Stamp: [branch next] HEAD
Blamelist: Aaro Koskinen aaro.koski...@iki.fi,Abhijith Das 
a...@redhat.com,Abhilash Kesavan a.kesa...@samsung.com,Ajay Kumar Gupta 
ajay.gu...@ti.com,Alan Stern st...@rowland.harvard.edu,Alberto Panizzo 
maramaopercheseimo...@gmail.com,Alex Deucher alexdeuc...@gmail.com,Alex Shi 
alex@intel.com,Alexey Dobriyan adobri...@gmail.com,Anand Gadiyar 
gadi...@ti.com,Anders Kaseorg ande...@ksplice.com,Andiry Xu 
andiry...@amd.com,Andreas Mohr a...@lisas.de,Andres Salomon 
dilin...@queued.net,Andrew Morton a...@linux-foundation.org,Andy Lutomirski 
l...@mit.edu,Andy Whitcroft a...@canonical.com,Anupam Chanda 
anup...@vmware.com,Arend van Spriel ar...@broadcom.com,Arnaldo Carvalho de 
Melo a...@redhat.com,Arnd Hannemann a...@arndnet.de,Arne Jansen 
sensi...@gmx.net,Artem Bityutskiy artem.bityuts...@nokia.com,Arun Bharadwaj 
a...@linux.vnet.ibm.com,Avi Kivity a...@redhat.com,Axel Lin 
axel@gmail.com,Baruch Siach bar...@tkos.co.il,Bastian B
 lank wa...@debian.org,Ben Hutchings b...@decadent.org.uk,Ben Skeggs 
bske...@redhat.com,Bengt Jonsson bengt.g.jons...@stericsson.com,Brandon 
Philips bran...@ifup.org,Breno Leitao br...@cafe.(none),Brian J. Tarricone 
br...@tarricone.org,Caglar Akyuz cag...@bilkon-kontrol.com.tr,Casey Leedom 
lee...@chelsio.com,Chien Tung chien.tin.t...@intel.com,Chris Mason 
chris.ma...@oracle.com,Chris Metcalf cmetc...@tilera.com,Chris 
Paulson-Ellis ch...@edesix.com,Chris Wilson 
ch...@chris-wilson.co.uk,Christian Lamparter chunk...@googlemail.com,Cyrill 
Gorcunov gorcu...@gmail.com,Daisuke Nishimura 
nishim...@mxp.nes.nec.co.jp,Dan Carpenter erro...@gmail.com,Dan Rosenberg 
drosenb...@vsecurity.com,Daniel Drake d...@laptop.org,Daniel Glöckner 
daniel...@gmx.net,Daniel Klaffenbach danielklaffenb...@gmail.com,Daniel T 
Chen crim...@ubuntu.com,Daniel Vetter daniel.vet...@ffwll.ch,Darius Augulis 
augulis.dar...@gmail.com,Darrick J. Wong djw...@us.ibm.com
 ,Dave Airlie airl...@redhat.com,Dave Chinner dchin...@redhat.com,David 
Daney dda...@caviumnetworks.com,David Henningsson 
david.hennings...@canonical.com,David Howells dhowe...@redhat.com,David S. 
Miller da...@davemloft.net,David Sterba dste...@suse.cz,Dean Nelson 
dnel...@redhat.com,Denis Kuplyakov dener@gmail.com,Dimitri Sivanich 
sivan...@sgi.com,Dimitris Papastamos 
d...@opensource.wolfsonmicro.com,Dmitry Artamonow mad_s...@inbox.ru,Dmitry 
Torokhov dmitry.torok...@gmail.com,Don Zickus dzic...@redhat.com,Eli Cohen 
e...@dev.mellanox.co.il,Eric Benard e...@eukrea.com,Eric Bénard 
e...@eukrea.com,Eric Dumazet eric.duma...@gmail.com,Felix Fietkau 
n...@openwrt.org,Feng Tang feng.t...@intel.com,Filip Aben 
f.a...@option.com,Florian Fainelli flor...@openwrt.org,Francisco Jerez 
curroje...@riseup.net,Frederic Weisbecker fweis...@gmail.com,Gerrit Renker 
ger...@erg.abdn.ac.uk,Giuseppe CAVALLARO peppe.cavall...@st.com,Giuseppe 
Cavallaro 
 peppe.cavall...@st.com,Greg Kroah-Hartman gre...@suse.de,Greg Thelen 
gthe...@google.com,Guennadi Liakhovetski g.liakhovet...@gmx.de,Guenter 
Roeck guenter.ro...@ericsson.com,Hans J. Koch h...@hansjkoch.de,Heiko 
Carstens heiko.carst...@de.ibm.com,Hema Kalliguddi hem...@ti.com,Henrik 
Rydberg rydb...@euromail.se,Herton Ronaldo Krzesinski 
her...@mandriva.com.br,Huang Weiyi weiyi.hu...@gmail.com,Ian Campbell 
ian.campb...@citrix.com,Ian Kent ra...@themaw.net,Ingo Molnar 
mi...@elte.hu,Jacob Pan jacob.jun@linux.intel.com,Jacques Viviers 
jacques.vivi...@gmail.com,James Jones jajo...@nvidia.com,Jan Beulich 
jbeul...@novell.com,Jan Beulich jbeul...@novell.com,Jan Glauber 
j...@linux.vnet.ibm.com,Janusz Krzysztofik jkrzy...@tis.icnet.pl,Jarkko 
Nikula jhnik...@gmail.com,Jason Wessel jason.wes...@windriver.com,Jean 
Delvare kh...@linux-fr.org,Jean-Christophe PLAGNIOL-VILLARD 
plagn...@jcrosoft.com,Jeff Layton jlay...@redhat.com,Jens Axboe 
 jax...@fusionio.com,Jeremy Fitzhardinge 
jeremy.fitzhardi...@citrix.com,Jeremy Fitzhardinge jer...@goop.org,Jesper 
Juhl j...@chaosbits.net,Jesse Marroquin jesse.marroq...@maxim-ic.com,Jiri 
Slaby jsl...@suse.cz,Joe Perches j...@perches.com,Johannes Berg 
johannes.b...@intel.com,John Fastabend john.r.fastab...@intel.com,John 
Tapsell johnf...@gmail.com,Josef Bacik jo...@redhat.com,Josh Wu 
josh...@atmel.com,Julia Lawall ju...@diku.dk,Jussi Kivilinna 
jussi.kivili...@mbnet.fi,Justin Maggard jmaggar...@gmail.com,KAMEZAWA 
Hiroyuki kamezawa.hir...@jp.fujitsu.com,KOSAKI Motohiro 
kosaki.motoh...@jp.fujitsu.com,Kailang Yang kail...@realtek.com,Keith 
Packard kei...@keithp.com,Ken Kawasaki ken_kawas...@spring.nifty.jp,Ken 
Sumrall ksumr...@android.com,Kevin Hilman 
khil...@deeprootsystems.com,Kirill A. Shutemov 

buildbot failure in qemu-kvm on disable_kvm_i386_out_of_tree

2010-12-05 Thread qemu-kvm
The Buildbot has detected a new failure of disable_kvm_i386_out_of_tree on 
qemu-kvm.
Full details are available at:
 
http://buildbot.b1-systems.de/qemu-kvm/builders/disable_kvm_i386_out_of_tree/builds/615

Buildbot URL: http://buildbot.b1-systems.de/qemu-kvm/

Buildslave for this Build: b1_qemu_kvm_2

Build Reason: 
Build Source Stamp: [branch next] HEAD
Blamelist: Aaro Koskinen aaro.koski...@iki.fi,Abhijith Das 
a...@redhat.com,Abhilash Kesavan a.kesa...@samsung.com,Ajay Kumar Gupta 
ajay.gu...@ti.com,Alan Stern st...@rowland.harvard.edu,Alberto Panizzo 
maramaopercheseimo...@gmail.com,Alex Deucher alexdeuc...@gmail.com,Alex Shi 
alex@intel.com,Alexey Dobriyan adobri...@gmail.com,Anand Gadiyar 
gadi...@ti.com,Anders Kaseorg ande...@ksplice.com,Andiry Xu 
andiry...@amd.com,Andreas Mohr a...@lisas.de,Andres Salomon 
dilin...@queued.net,Andrew Morton a...@linux-foundation.org,Andy Lutomirski 
l...@mit.edu,Andy Whitcroft a...@canonical.com,Anupam Chanda 
anup...@vmware.com,Arend van Spriel ar...@broadcom.com,Arnaldo Carvalho de 
Melo a...@redhat.com,Arnd Hannemann a...@arndnet.de,Arne Jansen 
sensi...@gmx.net,Artem Bityutskiy artem.bityuts...@nokia.com,Arun Bharadwaj 
a...@linux.vnet.ibm.com,Avi Kivity a...@redhat.com,Axel Lin 
axel@gmail.com,Baruch Siach bar...@tkos.co.il,Bastian B
 lank wa...@debian.org,Ben Hutchings b...@decadent.org.uk,Ben Skeggs 
bske...@redhat.com,Bengt Jonsson bengt.g.jons...@stericsson.com,Brandon 
Philips bran...@ifup.org,Breno Leitao br...@cafe.(none),Brian J. Tarricone 
br...@tarricone.org,Caglar Akyuz cag...@bilkon-kontrol.com.tr,Casey Leedom 
lee...@chelsio.com,Chien Tung chien.tin.t...@intel.com,Chris Mason 
chris.ma...@oracle.com,Chris Metcalf cmetc...@tilera.com,Chris 
Paulson-Ellis ch...@edesix.com,Chris Wilson 
ch...@chris-wilson.co.uk,Christian Lamparter chunk...@googlemail.com,Cyrill 
Gorcunov gorcu...@gmail.com,Daisuke Nishimura 
nishim...@mxp.nes.nec.co.jp,Dan Carpenter erro...@gmail.com,Dan Rosenberg 
drosenb...@vsecurity.com,Daniel Drake d...@laptop.org,Daniel Glöckner 
daniel...@gmx.net,Daniel Klaffenbach danielklaffenb...@gmail.com,Daniel T 
Chen crim...@ubuntu.com,Daniel Vetter daniel.vet...@ffwll.ch,Darius Augulis 
augulis.dar...@gmail.com,Darrick J. Wong djw...@us.ibm.com
 ,Dave Airlie airl...@redhat.com,Dave Chinner dchin...@redhat.com,David 
Daney dda...@caviumnetworks.com,David Henningsson 
david.hennings...@canonical.com,David Howells dhowe...@redhat.com,David S. 
Miller da...@davemloft.net,David Sterba dste...@suse.cz,Dean Nelson 
dnel...@redhat.com,Denis Kuplyakov dener@gmail.com,Dimitri Sivanich 
sivan...@sgi.com,Dimitris Papastamos 
d...@opensource.wolfsonmicro.com,Dmitry Artamonow mad_s...@inbox.ru,Dmitry 
Torokhov dmitry.torok...@gmail.com,Don Zickus dzic...@redhat.com,Eli Cohen 
e...@dev.mellanox.co.il,Eric Benard e...@eukrea.com,Eric Bénard 
e...@eukrea.com,Eric Dumazet eric.duma...@gmail.com,Felix Fietkau 
n...@openwrt.org,Feng Tang feng.t...@intel.com,Filip Aben 
f.a...@option.com,Florian Fainelli flor...@openwrt.org,Francisco Jerez 
curroje...@riseup.net,Frederic Weisbecker fweis...@gmail.com,Gerrit Renker 
ger...@erg.abdn.ac.uk,Giuseppe CAVALLARO peppe.cavall...@st.com,Giuseppe 
Cavallaro 
 peppe.cavall...@st.com,Greg Kroah-Hartman gre...@suse.de,Greg Thelen 
gthe...@google.com,Guennadi Liakhovetski g.liakhovet...@gmx.de,Guenter 
Roeck guenter.ro...@ericsson.com,Hans J. Koch h...@hansjkoch.de,Heiko 
Carstens heiko.carst...@de.ibm.com,Hema Kalliguddi hem...@ti.com,Henrik 
Rydberg rydb...@euromail.se,Herton Ronaldo Krzesinski 
her...@mandriva.com.br,Huang Weiyi weiyi.hu...@gmail.com,Ian Campbell 
ian.campb...@citrix.com,Ian Kent ra...@themaw.net,Ingo Molnar 
mi...@elte.hu,Jacob Pan jacob.jun@linux.intel.com,Jacques Viviers 
jacques.vivi...@gmail.com,James Jones jajo...@nvidia.com,Jan Beulich 
jbeul...@novell.com,Jan Beulich jbeul...@novell.com,Jan Glauber 
j...@linux.vnet.ibm.com,Janusz Krzysztofik jkrzy...@tis.icnet.pl,Jarkko 
Nikula jhnik...@gmail.com,Jason Wessel jason.wes...@windriver.com,Jean 
Delvare kh...@linux-fr.org,Jean-Christophe PLAGNIOL-VILLARD 
plagn...@jcrosoft.com,Jeff Layton jlay...@redhat.com,Jens Axboe 
 jax...@fusionio.com,Jeremy Fitzhardinge 
jeremy.fitzhardi...@citrix.com,Jeremy Fitzhardinge jer...@goop.org,Jesper 
Juhl j...@chaosbits.net,Jesse Marroquin jesse.marroq...@maxim-ic.com,Jiri 
Slaby jsl...@suse.cz,Joe Perches j...@perches.com,Johannes Berg 
johannes.b...@intel.com,John Fastabend john.r.fastab...@intel.com,John 
Tapsell johnf...@gmail.com,Josef Bacik jo...@redhat.com,Josh Wu 
josh...@atmel.com,Julia Lawall ju...@diku.dk,Jussi Kivilinna 
jussi.kivili...@mbnet.fi,Justin Maggard jmaggar...@gmail.com,KAMEZAWA 
Hiroyuki kamezawa.hir...@jp.fujitsu.com,KOSAKI Motohiro 
kosaki.motoh...@jp.fujitsu.com,Kailang Yang kail...@realtek.com,Keith 
Packard kei...@keithp.com,Ken Kawasaki ken_kawas...@spring.nifty.jp,Ken 
Sumrall ksumr...@android.com,Kevin Hilman 
khil...@deeprootsystems.com,Kirill A. Shutemov 

buildbot failure in qemu-kvm on default_x86_64_out_of_tree

2010-12-05 Thread qemu-kvm
The Buildbot has detected a new failure of default_x86_64_out_of_tree on 
qemu-kvm.
Full details are available at:
 
http://buildbot.b1-systems.de/qemu-kvm/builders/default_x86_64_out_of_tree/builds/617

Buildbot URL: http://buildbot.b1-systems.de/qemu-kvm/

Buildslave for this Build: b1_qemu_kvm_1

Build Reason: 
Build Source Stamp: [branch next] HEAD
Blamelist: Aaro Koskinen aaro.koski...@iki.fi,Abhijith Das 
a...@redhat.com,Abhilash Kesavan a.kesa...@samsung.com,Ajay Kumar Gupta 
ajay.gu...@ti.com,Alan Stern st...@rowland.harvard.edu,Alberto Panizzo 
maramaopercheseimo...@gmail.com,Alex Deucher alexdeuc...@gmail.com,Alex Shi 
alex@intel.com,Alexey Dobriyan adobri...@gmail.com,Anand Gadiyar 
gadi...@ti.com,Anders Kaseorg ande...@ksplice.com,Andiry Xu 
andiry...@amd.com,Andreas Mohr a...@lisas.de,Andres Salomon 
dilin...@queued.net,Andrew Morton a...@linux-foundation.org,Andy Lutomirski 
l...@mit.edu,Andy Whitcroft a...@canonical.com,Anupam Chanda 
anup...@vmware.com,Arend van Spriel ar...@broadcom.com,Arnaldo Carvalho de 
Melo a...@redhat.com,Arnd Hannemann a...@arndnet.de,Arne Jansen 
sensi...@gmx.net,Artem Bityutskiy artem.bityuts...@nokia.com,Arun Bharadwaj 
a...@linux.vnet.ibm.com,Avi Kivity a...@redhat.com,Axel Lin 
axel@gmail.com,Baruch Siach bar...@tkos.co.il,Bastian B
 lank wa...@debian.org,Ben Hutchings b...@decadent.org.uk,Ben Skeggs 
bske...@redhat.com,Bengt Jonsson bengt.g.jons...@stericsson.com,Brandon 
Philips bran...@ifup.org,Breno Leitao br...@cafe.(none),Brian J. Tarricone 
br...@tarricone.org,Caglar Akyuz cag...@bilkon-kontrol.com.tr,Casey Leedom 
lee...@chelsio.com,Chien Tung chien.tin.t...@intel.com,Chris Mason 
chris.ma...@oracle.com,Chris Metcalf cmetc...@tilera.com,Chris 
Paulson-Ellis ch...@edesix.com,Chris Wilson 
ch...@chris-wilson.co.uk,Christian Lamparter chunk...@googlemail.com,Cyrill 
Gorcunov gorcu...@gmail.com,Daisuke Nishimura 
nishim...@mxp.nes.nec.co.jp,Dan Carpenter erro...@gmail.com,Dan Rosenberg 
drosenb...@vsecurity.com,Daniel Drake d...@laptop.org,Daniel Glöckner 
daniel...@gmx.net,Daniel Klaffenbach danielklaffenb...@gmail.com,Daniel T 
Chen crim...@ubuntu.com,Daniel Vetter daniel.vet...@ffwll.ch,Darius Augulis 
augulis.dar...@gmail.com,Darrick J. Wong djw...@us.ibm.com
 ,Dave Airlie airl...@redhat.com,Dave Chinner dchin...@redhat.com,David 
Daney dda...@caviumnetworks.com,David Henningsson 
david.hennings...@canonical.com,David Howells dhowe...@redhat.com,David S. 
Miller da...@davemloft.net,David Sterba dste...@suse.cz,Dean Nelson 
dnel...@redhat.com,Denis Kuplyakov dener@gmail.com,Dimitri Sivanich 
sivan...@sgi.com,Dimitris Papastamos 
d...@opensource.wolfsonmicro.com,Dmitry Artamonow mad_s...@inbox.ru,Dmitry 
Torokhov dmitry.torok...@gmail.com,Don Zickus dzic...@redhat.com,Eli Cohen 
e...@dev.mellanox.co.il,Eric Benard e...@eukrea.com,Eric Bénard 
e...@eukrea.com,Eric Dumazet eric.duma...@gmail.com,Felix Fietkau 
n...@openwrt.org,Feng Tang feng.t...@intel.com,Filip Aben 
f.a...@option.com,Florian Fainelli flor...@openwrt.org,Francisco Jerez 
curroje...@riseup.net,Frederic Weisbecker fweis...@gmail.com,Gerrit Renker 
ger...@erg.abdn.ac.uk,Giuseppe CAVALLARO peppe.cavall...@st.com,Giuseppe 
Cavallaro 
 peppe.cavall...@st.com,Greg Kroah-Hartman gre...@suse.de,Greg Thelen 
gthe...@google.com,Guennadi Liakhovetski g.liakhovet...@gmx.de,Guenter 
Roeck guenter.ro...@ericsson.com,Hans J. Koch h...@hansjkoch.de,Heiko 
Carstens heiko.carst...@de.ibm.com,Hema Kalliguddi hem...@ti.com,Henrik 
Rydberg rydb...@euromail.se,Herton Ronaldo Krzesinski 
her...@mandriva.com.br,Huang Weiyi weiyi.hu...@gmail.com,Ian Campbell 
ian.campb...@citrix.com,Ian Kent ra...@themaw.net,Ingo Molnar 
mi...@elte.hu,Jacob Pan jacob.jun@linux.intel.com,Jacques Viviers 
jacques.vivi...@gmail.com,James Jones jajo...@nvidia.com,Jan Beulich 
jbeul...@novell.com,Jan Beulich jbeul...@novell.com,Jan Glauber 
j...@linux.vnet.ibm.com,Janusz Krzysztofik jkrzy...@tis.icnet.pl,Jarkko 
Nikula jhnik...@gmail.com,Jason Wessel jason.wes...@windriver.com,Jean 
Delvare kh...@linux-fr.org,Jean-Christophe PLAGNIOL-VILLARD 
plagn...@jcrosoft.com,Jeff Layton jlay...@redhat.com,Jens Axboe 
 jax...@fusionio.com,Jeremy Fitzhardinge 
jeremy.fitzhardi...@citrix.com,Jeremy Fitzhardinge jer...@goop.org,Jesper 
Juhl j...@chaosbits.net,Jesse Marroquin jesse.marroq...@maxim-ic.com,Jiri 
Slaby jsl...@suse.cz,Joe Perches j...@perches.com,Johannes Berg 
johannes.b...@intel.com,John Fastabend john.r.fastab...@intel.com,John 
Tapsell johnf...@gmail.com,Josef Bacik jo...@redhat.com,Josh Wu 
josh...@atmel.com,Julia Lawall ju...@diku.dk,Jussi Kivilinna 
jussi.kivili...@mbnet.fi,Justin Maggard jmaggar...@gmail.com,KAMEZAWA 
Hiroyuki kamezawa.hir...@jp.fujitsu.com,KOSAKI Motohiro 
kosaki.motoh...@jp.fujitsu.com,Kailang Yang kail...@realtek.com,Keith 
Packard kei...@keithp.com,Ken Kawasaki ken_kawas...@spring.nifty.jp,Ken 
Sumrall ksumr...@android.com,Kevin Hilman 
khil...@deeprootsystems.com,Kirill A. Shutemov 

buildbot failure in qemu-kvm on default_i386_out_of_tree

2010-12-05 Thread qemu-kvm
The Buildbot has detected a new failure of default_i386_out_of_tree on qemu-kvm.
Full details are available at:
 
http://buildbot.b1-systems.de/qemu-kvm/builders/default_i386_out_of_tree/builds/615

Buildbot URL: http://buildbot.b1-systems.de/qemu-kvm/

Buildslave for this Build: b1_qemu_kvm_2

Build Reason: 
Build Source Stamp: [branch next] HEAD
Blamelist: Aaro Koskinen aaro.koski...@iki.fi,Abhijith Das 
a...@redhat.com,Abhilash Kesavan a.kesa...@samsung.com,Ajay Kumar Gupta 
ajay.gu...@ti.com,Alan Stern st...@rowland.harvard.edu,Alberto Panizzo 
maramaopercheseimo...@gmail.com,Alex Deucher alexdeuc...@gmail.com,Alex Shi 
alex@intel.com,Alexey Dobriyan adobri...@gmail.com,Anand Gadiyar 
gadi...@ti.com,Anders Kaseorg ande...@ksplice.com,Andiry Xu 
andiry...@amd.com,Andreas Mohr a...@lisas.de,Andres Salomon 
dilin...@queued.net,Andrew Morton a...@linux-foundation.org,Andy Lutomirski 
l...@mit.edu,Andy Whitcroft a...@canonical.com,Anupam Chanda 
anup...@vmware.com,Arend van Spriel ar...@broadcom.com,Arnaldo Carvalho de 
Melo a...@redhat.com,Arnd Hannemann a...@arndnet.de,Arne Jansen 
sensi...@gmx.net,Artem Bityutskiy artem.bityuts...@nokia.com,Arun Bharadwaj 
a...@linux.vnet.ibm.com,Avi Kivity a...@redhat.com,Axel Lin 
axel@gmail.com,Baruch Siach bar...@tkos.co.il,Bastian B
 lank wa...@debian.org,Ben Hutchings b...@decadent.org.uk,Ben Skeggs 
bske...@redhat.com,Bengt Jonsson bengt.g.jons...@stericsson.com,Brandon 
Philips bran...@ifup.org,Breno Leitao br...@cafe.(none),Brian J. Tarricone 
br...@tarricone.org,Caglar Akyuz cag...@bilkon-kontrol.com.tr,Casey Leedom 
lee...@chelsio.com,Chien Tung chien.tin.t...@intel.com,Chris Mason 
chris.ma...@oracle.com,Chris Metcalf cmetc...@tilera.com,Chris 
Paulson-Ellis ch...@edesix.com,Chris Wilson 
ch...@chris-wilson.co.uk,Christian Lamparter chunk...@googlemail.com,Cyrill 
Gorcunov gorcu...@gmail.com,Daisuke Nishimura 
nishim...@mxp.nes.nec.co.jp,Dan Carpenter erro...@gmail.com,Dan Rosenberg 
drosenb...@vsecurity.com,Daniel Drake d...@laptop.org,Daniel Glöckner 
daniel...@gmx.net,Daniel Klaffenbach danielklaffenb...@gmail.com,Daniel T 
Chen crim...@ubuntu.com,Daniel Vetter daniel.vet...@ffwll.ch,Darius Augulis 
augulis.dar...@gmail.com,Darrick J. Wong djw...@us.ibm.com
 ,Dave Airlie airl...@redhat.com,Dave Chinner dchin...@redhat.com,David 
Daney dda...@caviumnetworks.com,David Henningsson 
david.hennings...@canonical.com,David Howells dhowe...@redhat.com,David S. 
Miller da...@davemloft.net,David Sterba dste...@suse.cz,Dean Nelson 
dnel...@redhat.com,Denis Kuplyakov dener@gmail.com,Dimitri Sivanich 
sivan...@sgi.com,Dimitris Papastamos 
d...@opensource.wolfsonmicro.com,Dmitry Artamonow mad_s...@inbox.ru,Dmitry 
Torokhov dmitry.torok...@gmail.com,Don Zickus dzic...@redhat.com,Eli Cohen 
e...@dev.mellanox.co.il,Eric Benard e...@eukrea.com,Eric Bénard 
e...@eukrea.com,Eric Dumazet eric.duma...@gmail.com,Felix Fietkau 
n...@openwrt.org,Feng Tang feng.t...@intel.com,Filip Aben 
f.a...@option.com,Florian Fainelli flor...@openwrt.org,Francisco Jerez 
curroje...@riseup.net,Frederic Weisbecker fweis...@gmail.com,Gerrit Renker 
ger...@erg.abdn.ac.uk,Giuseppe CAVALLARO peppe.cavall...@st.com,Giuseppe 
Cavallaro 
 peppe.cavall...@st.com,Greg Kroah-Hartman gre...@suse.de,Greg Thelen 
gthe...@google.com,Guennadi Liakhovetski g.liakhovet...@gmx.de,Guenter 
Roeck guenter.ro...@ericsson.com,Hans J. Koch h...@hansjkoch.de,Heiko 
Carstens heiko.carst...@de.ibm.com,Hema Kalliguddi hem...@ti.com,Henrik 
Rydberg rydb...@euromail.se,Herton Ronaldo Krzesinski 
her...@mandriva.com.br,Huang Weiyi weiyi.hu...@gmail.com,Ian Campbell 
ian.campb...@citrix.com,Ian Kent ra...@themaw.net,Ingo Molnar 
mi...@elte.hu,Jacob Pan jacob.jun@linux.intel.com,Jacques Viviers 
jacques.vivi...@gmail.com,James Jones jajo...@nvidia.com,Jan Beulich 
jbeul...@novell.com,Jan Beulich jbeul...@novell.com,Jan Glauber 
j...@linux.vnet.ibm.com,Janusz Krzysztofik jkrzy...@tis.icnet.pl,Jarkko 
Nikula jhnik...@gmail.com,Jason Wessel jason.wes...@windriver.com,Jean 
Delvare kh...@linux-fr.org,Jean-Christophe PLAGNIOL-VILLARD 
plagn...@jcrosoft.com,Jeff Layton jlay...@redhat.com,Jens Axboe 
 jax...@fusionio.com,Jeremy Fitzhardinge 
jeremy.fitzhardi...@citrix.com,Jeremy Fitzhardinge jer...@goop.org,Jesper 
Juhl j...@chaosbits.net,Jesse Marroquin jesse.marroq...@maxim-ic.com,Jiri 
Slaby jsl...@suse.cz,Joe Perches j...@perches.com,Johannes Berg 
johannes.b...@intel.com,John Fastabend john.r.fastab...@intel.com,John 
Tapsell johnf...@gmail.com,Josef Bacik jo...@redhat.com,Josh Wu 
josh...@atmel.com,Julia Lawall ju...@diku.dk,Jussi Kivilinna 
jussi.kivili...@mbnet.fi,Justin Maggard jmaggar...@gmail.com,KAMEZAWA 
Hiroyuki kamezawa.hir...@jp.fujitsu.com,KOSAKI Motohiro 
kosaki.motoh...@jp.fujitsu.com,Kailang Yang kail...@realtek.com,Keith 
Packard kei...@keithp.com,Ken Kawasaki ken_kawas...@spring.nifty.jp,Ken 
Sumrall ksumr...@android.com,Kevin Hilman 
khil...@deeprootsystems.com,Kirill A. Shutemov 

Re: [PATCH 2/2] KVM: x86 emulator: add SVM intercepts

2010-12-05 Thread Avi Kivity

On 12/05/2010 12:18 PM, Avi Kivity wrote:

Add intercept codes for instructions defined by SVM as interceptable.



Note: this doesn't handle pause, aka 'rep nop', since we don't yet 
specialize decode based on rep prefixes.  When we get it (needed for 
sse) we can add the decode, till then it doesn't pause any security 
issue since pause has no side effects.


--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] Convert .flat files to 32-bit elf format

2010-12-05 Thread Alexander Graf

On 05.12.2010, at 09:15, Avi Kivity wrote:

 Recent qemus no longer load 64-bit elf kernels.  Fix by converting
 to 32-bit elf.
 
 Signed-off-by: Avi Kivity a...@redhat.com
 ---
 config-x86-common.mak |   39 +--
 1 files changed, 21 insertions(+), 18 deletions(-)
 
 diff --git a/config-x86-common.mak b/config-x86-common.mak
 index b541c1c..c5508b3 100644
 --- a/config-x86-common.mak
 +++ b/config-x86-common.mak
 @@ -20,9 +20,12 @@ CFLAGS += -m$(bits)
 libgcc := $(shell $(CC) -m$(bits) --print-libgcc-file-name)
 
 FLATLIBS = lib/libcflat.a $(libgcc)
 -%.flat: %.o $(FLATLIBS) flat.lds
 +%.elf: %.o $(FLATLIBS) flat.lds
   $(CC) $(CFLAGS) -nostdlib -o $@ -Wl,-T,flat.lds $(filter %.o, $^) 
 $(FLATLIBS)
 
 +%.flat: %.elf
 + objcopy -O elf32-i386 $^ $@

Not sure it's that great to call 32bit elf binaries .flat. I'd rather expect 
a flat file when reading that file extension ;). Mind to just call it .elf32?

Alternatively, you could also use real flat files and shove a multiboot header 
into the binary.


Alex

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] Convert .flat files to 32-bit elf format

2010-12-05 Thread Avi Kivity

On 12/05/2010 02:05 PM, Alexander Graf wrote:


  diff --git a/config-x86-common.mak b/config-x86-common.mak
  index b541c1c..c5508b3 100644
  --- a/config-x86-common.mak
  +++ b/config-x86-common.mak
  @@ -20,9 +20,12 @@ CFLAGS += -m$(bits)
  libgcc := $(shell $(CC) -m$(bits) --print-libgcc-file-name)

  FLATLIBS = lib/libcflat.a $(libgcc)
  -%.flat: %.o $(FLATLIBS) flat.lds
  +%.elf: %.o $(FLATLIBS) flat.lds
$(CC) $(CFLAGS) -nostdlib -o $@ -Wl,-T,flat.lds $(filter %.o, $^) 
$(FLATLIBS)

  +%.flat: %.elf
  + objcopy -O elf32-i386 $^ $@

Not sure it's that great to call 32bit elf binaries .flat. I'd rather expect a flat 
file when reading that file extension ;). Mind to just call it .elf32?


It's a reminder from the good old days that these were flat files loaded 
by kvmctl.



Alternatively, you could also use real flat files and shove a multiboot header 
into the binary.


I'll rename them in a later patch.  .elf32 isn't a good name either, it 
implies 32-bit execution, whereas it's just the file format due to 
multiboot constraints.  Maybe .test (and .test32 and .test64 when we 
build both).


--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC PATCH 1/3] kvm: keep track of which task is running a KVM vcpu

2010-12-05 Thread Avi Kivity

On 12/03/2010 04:50 PM, Rik van Riel wrote:

On 12/02/2010 08:18 PM, Chris Wright wrote:

* Rik van Riel (r...@redhat.com) wrote:

Keep track of which task is running a KVM vcpu.  This helps us
figure out later what task to wake up if we want to boost a
vcpu that got preempted.

Unfortunately there are no guarantees that the same task
always keeps the same vcpu, so we can only track the task
across a single run of the vcpu.


So shouldn't it confine to KVM_RUN?  The other vcpu_load callers aren't
always a vcpu in a useful runnable state.


Yeah, probably.  If you want I can move the setting of
vcpu-task to kvm_vcpu_ioctl.



No need, it's not like something bad will happen.

What I'd really like to see is a soft binding between a vcpu and its 
thread, so directed yield works even if we're in qemu while we were 
scheduled out.  In fact it's not an unlikely pattern:


  spin_lock(lock)
  ...
  writel(some_port_handled_by_qemu)
  ...
  spin_unlock(lock)

but that can wait.

--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] Convert .flat files to 32-bit elf format

2010-12-05 Thread Alexander Graf

On 05.12.2010, at 13:37, Avi Kivity wrote:

 On 12/05/2010 02:05 PM, Alexander Graf wrote:
 
   diff --git a/config-x86-common.mak b/config-x86-common.mak
   index b541c1c..c5508b3 100644
   --- a/config-x86-common.mak
   +++ b/config-x86-common.mak
   @@ -20,9 +20,12 @@ CFLAGS += -m$(bits)
   libgcc := $(shell $(CC) -m$(bits) --print-libgcc-file-name)
 
   FLATLIBS = lib/libcflat.a $(libgcc)
   -%.flat: %.o $(FLATLIBS) flat.lds
   +%.elf: %.o $(FLATLIBS) flat.lds
 $(CC) $(CFLAGS) -nostdlib -o $@ -Wl,-T,flat.lds $(filter %.o, $^) 
  $(FLATLIBS)
 
   +%.flat: %.elf
   + objcopy -O elf32-i386 $^ $@
 
 Not sure it's that great to call 32bit elf binaries .flat. I'd rather 
 expect a flat file when reading that file extension ;). Mind to just call it 
 .elf32?
 
 It's a reminder from the good old days that these were flat files loaded by 
 kvmctl.

Nothing's as permanent as an improvised solution :).

 Alternatively, you could also use real flat files and shove a multiboot 
 header into the binary.
 
 I'll rename them in a later patch.  .elf32 isn't a good name either, it 
 implies 32-bit execution, whereas it's just the file format due to multiboot 
 constraints.  Maybe .test (and .test32 and .test64 when we build both).

Yeah, anything really. The .flat is definitely just wrong ;). .test32 and 
.test64 always sounds good to me. No reason to be clever and also have .test.


Alex

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC PATCH 3/3] kvm: use yield_to instead of sleep in kvm_vcpu_on_spin

2010-12-05 Thread Avi Kivity

On 12/03/2010 04:24 AM, Chris Wright wrote:

* Rik van Riel (r...@redhat.com) wrote:
  --- a/virt/kvm/kvm_main.c
  +++ b/virt/kvm/kvm_main.c
  @@ -1880,18 +1880,53 @@ void kvm_resched(struct kvm_vcpu *vcpu)
   }
   EXPORT_SYMBOL_GPL(kvm_resched);

  -void kvm_vcpu_on_spin(struct kvm_vcpu *vcpu)
  +void kvm_vcpu_on_spin(struct kvm_vcpu *me)
   {
  - ktime_t expires;
  - DEFINE_WAIT(wait);
  + struct kvm *kvm = me-kvm;
  + struct kvm_vcpu *vcpu;
  + int last_boosted_vcpu = me-kvm-last_boosted_vcpu;

s/me-//

  + int first_round = 1;
  + int i;

  - prepare_to_wait(vcpu-wq,wait, TASK_INTERRUPTIBLE);
  + me-spinning = 1;
  +
  + /*
  +  * We boost the priority of a VCPU that is runnable but not
  +  * currently running, because it got preempted by something
  +  * else and called schedule in __vcpu_run.  Hopefully that
  +  * VCPU is holding the lock that we need and will release it.
  +  * We approximate round-robin by starting at the last boosted VCPU.
  +  */
  + again:
  + kvm_for_each_vcpu(i, vcpu, kvm) {
  + struct task_struct *task = vcpu-task;
  + if (first_round  i  last_boosted_vcpu) {
  + i = last_boosted_vcpu;
  + continue;
  + } else if (!first_round  i  last_boosted_vcpu)
  + break;
  + if (vcpu == me)
  + continue;
  + if (vcpu-spinning)
  + continue;
  + if (!task)
  + continue;
  + if (waitqueue_active(vcpu-wq))
  + continue;
  + if (task-flags  PF_VCPU)
  + continue;

I wonder if you set vcpu-task in sched_out and then NULL it in sched_in
if you'd get what you want you could simplify the checks.  Basically
that would be only the preempted runnable vcpus.


They may be sleeping due to some other reason (HLT, major page fault).

Better check is that the task is runnable but not running.  Can we get 
this information from a task?


--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC PATCH 1/3] kvm: keep track of which task is running a KVM vcpu

2010-12-05 Thread Avi Kivity

On 12/03/2010 04:16 PM, Rik van Riel wrote:

On 12/03/2010 07:17 AM, Srivatsa Vaddagiri wrote:

On Thu, Dec 02, 2010 at 02:43:24PM -0500, Rik van Riel wrote:

  mutex_lock(vcpu-mutex);
+vcpu-task = current;


Shouldn't we grab reference to current task_struct before storing a 
pointer to

it?


That should not be needed, since current cannot go away without
setting vcpu-task back to NULL in vcpu_put.



However, you do reference vcpu-task from other contexts.  So some sort 
of safe reference is needed.


--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC PATCH 0/3] directed yield for Pause Loop Exiting

2010-12-05 Thread Avi Kivity

On 12/03/2010 12:41 AM, Chris Wright wrote:

* Rik van Riel (r...@redhat.com) wrote:
  When running SMP virtual machines, it is possible for one VCPU to be
  spinning on a spinlock, while the VCPU that holds the spinlock is not
  currently running, because the host scheduler preempted it to run
  something else.

  Both Intel and AMD CPUs have a feature that detects when a virtual
  CPU is spinning on a lock and will trap to the host.

  The current KVM code sleeps for a bit whenever that happens, which
  results in eg. a 64 VCPU Windows guest taking forever and a bit to
  boot up.  This is because the VCPU holding the lock is actually
  running and not sleeping, so the pause is counter-productive.

Seems like simply increasing the spin window help in that case?  Or is
it just too contended a lock (I think they use mcs locks, so I can see a
single wrong sleep causing real contention problems).


It may, but that just pushes the problem to a more contended lock or to 
a higher vcpu count.  We want something that works after PLE threshold 
tuning has failed.


--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/2 rebased] KVM: MMU: Avoid dropping accessed bit while removing write access

2010-12-05 Thread Takuya Yoshikawa
From: Takuya Yoshikawa yoshikawa.tak...@oss.ntt.co.jp

One more KVM: MMU: Don't drop accessed bit while updating an spte.

Sptes are accessed by both kvm and hardware.
This patch uses update_spte() to fix the way of removing write access.

Signed-off-by: Takuya Yoshikawa yoshikawa.tak...@oss.ntt.co.jp
---
 arch/x86/kvm/mmu.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 04c49b9..d75ba1e 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -3446,7 +3446,7 @@ void kvm_mmu_slot_remove_write_access(struct kvm *kvm, 
int slot)
for (i = 0; i  PT64_ENT_PER_PAGE; ++i)
/* avoid RMW */
if (is_writable_pte(pt[i]))
-   pt[i] = ~PT_WRITABLE_MASK;
+   update_spte(pt[i], pt[i]  ~PT_WRITABLE_MASK);
}
kvm_flush_remote_tlbs(kvm);
 }
-- 
1.7.1

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2/2 rebased] KVM: MMU: Introduce a helper to access lpage_info

2010-12-05 Thread Takuya Yoshikawa
From: Takuya Yoshikawa yoshikawa.tak...@oss.ntt.co.jp

Index calculation to access lpage_info appears three times.
A helper is worthwhile.

Signed-off-by: Takuya Yoshikawa yoshikawa.tak...@oss.ntt.co.jp
---
 arch/x86/kvm/mmu.c |   20 +++-
 1 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index d75ba1e..e434503 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -476,6 +476,12 @@ static void kvm_mmu_page_set_gfn(struct kvm_mmu_page *sp, 
int index, gfn_t gfn)
sp-gfns[index] = gfn;
 }
 
+static unsigned long lpage_idx(gfn_t gfn, gfn_t base_gfn, int level)
+{
+   return (gfn  KVM_HPAGE_GFN_SHIFT(level)) -
+  (base_gfn  KVM_HPAGE_GFN_SHIFT(level));
+}
+
 /*
  * Return the pointer to the largepage write count for a given
  * gfn, handling slots that are not large page aligned.
@@ -484,10 +490,8 @@ static int *slot_largepage_idx(gfn_t gfn,
   struct kvm_memory_slot *slot,
   int level)
 {
-   unsigned long idx;
+   unsigned long idx = lpage_idx(gfn, slot-base_gfn, level);
 
-   idx = (gfn  KVM_HPAGE_GFN_SHIFT(level)) -
- (slot-base_gfn  KVM_HPAGE_GFN_SHIFT(level));
return slot-lpage_info[level - 2][idx].write_count;
 }
 
@@ -591,8 +595,7 @@ static unsigned long *gfn_to_rmap(struct kvm *kvm, gfn_t 
gfn, int level)
if (likely(level == PT_PAGE_TABLE_LEVEL))
return slot-rmap[gfn - slot-base_gfn];
 
-   idx = (gfn  KVM_HPAGE_GFN_SHIFT(level)) -
-   (slot-base_gfn  KVM_HPAGE_GFN_SHIFT(level));
+   idx = lpage_idx(gfn, slot-base_gfn, level);
 
return slot-lpage_info[level - 2][idx].rmap_pde;
 }
@@ -887,11 +890,10 @@ static int kvm_handle_hva(struct kvm *kvm, unsigned long 
hva,
 
for (j = 0; j  KVM_NR_PAGE_SIZES - 1; ++j) {
unsigned long idx;
-   int sh;
 
-   sh = KVM_HPAGE_GFN_SHIFT(PT_DIRECTORY_LEVEL+j);
-   idx = ((memslot-base_gfn+gfn_offset)  sh) -
-   (memslot-base_gfn  sh);
+   idx = lpage_idx(memslot-base_gfn + gfn_offset,
+   memslot-base_gfn,
+   PT_DIRECTORY_LEVEL + j);
ret |= handler(kvm,
memslot-lpage_info[j][idx].rmap_pde,
data);
-- 
1.7.1

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 0/2] Keep cr3 cached in VMCS

2010-12-05 Thread Avi Kivity
This patchset keeps cr3 cached in the VMCS (GUEST_CR3) instead of syncing
it every exit.  Saves a VMEXIT on Intel with EPT enabled.

Avi Kivity (2):
  KVM: Replace reads of vcpu-arch.cr3 by an accessor
  KVM: Fetch guest cr3 from hardware on demand

 arch/x86/include/asm/kvm_host.h |2 ++
 arch/x86/kvm/kvm_cache_regs.h   |7 +++
 arch/x86/kvm/mmu.c  |6 +++---
 arch/x86/kvm/svm.c  |   13 +
 arch/x86/kvm/vmx.c  |   24 +++-
 arch/x86/kvm/x86.c  |   19 ++-
 6 files changed, 46 insertions(+), 25 deletions(-)

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/2] KVM: Replace reads of vcpu-arch.cr3 by an accessor

2010-12-05 Thread Avi Kivity
This allows us to keep cr3 in the VMCS, later on.

Signed-off-by: Avi Kivity a...@redhat.com
---
 arch/x86/kvm/kvm_cache_regs.h |5 +
 arch/x86/kvm/mmu.c|6 +++---
 arch/x86/kvm/svm.c|8 
 arch/x86/kvm/vmx.c|7 ---
 arch/x86/kvm/x86.c|   19 ++-
 5 files changed, 26 insertions(+), 19 deletions(-)

diff --git a/arch/x86/kvm/kvm_cache_regs.h b/arch/x86/kvm/kvm_cache_regs.h
index 95ac3af..a6bf8db 100644
--- a/arch/x86/kvm/kvm_cache_regs.h
+++ b/arch/x86/kvm/kvm_cache_regs.h
@@ -73,6 +73,11 @@ static inline ulong kvm_read_cr4_bits(struct kvm_vcpu *vcpu, 
ulong mask)
return vcpu-arch.cr4  mask;
 }
 
+static inline ulong kvm_read_cr3(struct kvm_vcpu *vcpu)
+{
+   return vcpu-arch.cr3;
+}
+
 static inline ulong kvm_read_cr4(struct kvm_vcpu *vcpu)
 {
return kvm_read_cr4_bits(vcpu, ~0UL);
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 04c49b9..e0c447f 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -2726,13 +2726,13 @@ void kvm_mmu_flush_tlb(struct kvm_vcpu *vcpu)
 
 static void paging_new_cr3(struct kvm_vcpu *vcpu)
 {
-   pgprintk(%s: cr3 %lx\n, __func__, vcpu-arch.cr3);
+   pgprintk(%s: cr3 %lx\n, __func__, kvm_read_cr3(vcpu));
mmu_free_roots(vcpu);
 }
 
 static unsigned long get_cr3(struct kvm_vcpu *vcpu)
 {
-   return vcpu-arch.cr3;
+   return kvm_read_cr3(vcpu);
 }
 
 static void inject_page_fault(struct kvm_vcpu *vcpu,
@@ -3631,7 +3631,7 @@ static int kvm_pv_mmu_write(struct kvm_vcpu *vcpu,
 
 static int kvm_pv_mmu_flush_tlb(struct kvm_vcpu *vcpu)
 {
-   (void)kvm_set_cr3(vcpu, vcpu-arch.cr3);
+   (void)kvm_set_cr3(vcpu, kvm_read_cr3(vcpu));
return 1;
 }
 
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index ae943bb..5e4b120 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -1135,7 +1135,7 @@ static void svm_cache_reg(struct kvm_vcpu *vcpu, enum 
kvm_reg reg)
switch (reg) {
case VCPU_EXREG_PDPTR:
BUG_ON(!npt_enabled);
-   load_pdptrs(vcpu, vcpu-arch.walk_mmu, vcpu-arch.cr3);
+   load_pdptrs(vcpu, vcpu-arch.walk_mmu, kvm_read_cr3(vcpu));
break;
default:
BUG();
@@ -2063,7 +2063,7 @@ static int nested_svm_vmexit(struct vcpu_svm *svm)
nested_vmcb-save.idtr   = vmcb-save.idtr;
nested_vmcb-save.efer   = svm-vcpu.arch.efer;
nested_vmcb-save.cr0= kvm_read_cr0(svm-vcpu);
-   nested_vmcb-save.cr3= svm-vcpu.arch.cr3;
+   nested_vmcb-save.cr3= kvm_read_cr3(svm-vcpu);
nested_vmcb-save.cr2= vmcb-save.cr2;
nested_vmcb-save.cr4= svm-vcpu.arch.cr4;
nested_vmcb-save.rflags = vmcb-save.rflags;
@@ -2256,7 +2256,7 @@ static bool nested_svm_vmrun(struct vcpu_svm *svm)
if (npt_enabled)
hsave-save.cr3= vmcb-save.cr3;
else
-   hsave-save.cr3= svm-vcpu.arch.cr3;
+   hsave-save.cr3= kvm_read_cr3(svm-vcpu);
 
copy_vmcb_control_area(hsave, vmcb);
 
@@ -3507,7 +3507,7 @@ static void set_tdp_cr3(struct kvm_vcpu *vcpu, unsigned 
long root)
svm-vmcb-control.nested_cr3 = root;
 
/* Also sync guest cr3 here in case we live migrate */
-   svm-vmcb-save.cr3 = vcpu-arch.cr3;
+   svm-vmcb-save.cr3 = kvm_read_cr3(vcpu);
 
force_new_asid(vcpu);
 }
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 72cfdb7..92f2c72 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -1940,7 +1940,7 @@ static void vmx_set_cr3(struct kvm_vcpu *vcpu, unsigned 
long cr3)
if (enable_ept) {
eptp = construct_eptp(cr3);
vmcs_write64(EPT_POINTER, eptp);
-   guest_cr3 = is_paging(vcpu) ? vcpu-arch.cr3 :
+   guest_cr3 = is_paging(vcpu) ? kvm_read_cr3(vcpu) :
vcpu-kvm-arch.ept_identity_map_addr;
ept_load_pdptrs(vcpu);
}
@@ -3184,8 +3184,9 @@ static int handle_cr(struct kvm_vcpu *vcpu)
case 1: /*mov from cr*/
switch (cr) {
case 3:
-   kvm_register_write(vcpu, reg, vcpu-arch.cr3);
-   trace_kvm_cr_read(cr, vcpu-arch.cr3);
+   val = kvm_read_cr3(vcpu);
+   kvm_register_write(vcpu, reg, val);
+   trace_kvm_cr_read(cr, val);
skip_emulated_instruction(vcpu);
return 1;
case 8:
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index ed373ba..4748499 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -469,8 +469,8 @@ static bool pdptrs_changed(struct kvm_vcpu *vcpu)
  (unsigned long *)vcpu-arch.regs_avail))
return true;
 
-   gfn = (vcpu-arch.cr3  ~31u)  PAGE_SHIFT;
-   offset = (vcpu-arch.cr3  ~31u)  (PAGE_SIZE - 1);
+   gfn = 

[PATCH 2/2] KVM: Fetch guest cr3 from hardware on demand

2010-12-05 Thread Avi Kivity
Instead of syncing the guest cr3 every exit, which is expensince on vmx
with ept enabled, sync it only on demand.

Signed-off-by: Avi Kivity a...@redhat.com
---
 arch/x86/include/asm/kvm_host.h |2 ++
 arch/x86/kvm/kvm_cache_regs.h   |2 ++
 arch/x86/kvm/svm.c  |5 +
 arch/x86/kvm/vmx.c  |   17 +++--
 4 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index cfbcbfa..4bd8daa 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -117,6 +117,7 @@ enum kvm_reg {
 
 enum kvm_reg_ex {
VCPU_EXREG_PDPTR = NR_VCPU_REGS,
+   VCPU_EXREG_CR3,
 };
 
 enum {
@@ -532,6 +533,7 @@ struct kvm_x86_ops {
struct kvm_segment *var, int seg);
void (*get_cs_db_l_bits)(struct kvm_vcpu *vcpu, int *db, int *l);
void (*decache_cr0_guest_bits)(struct kvm_vcpu *vcpu);
+   void (*decache_cr3)(struct kvm_vcpu *vcpu);
void (*decache_cr4_guest_bits)(struct kvm_vcpu *vcpu);
void (*set_cr0)(struct kvm_vcpu *vcpu, unsigned long cr0);
void (*set_cr3)(struct kvm_vcpu *vcpu, unsigned long cr3);
diff --git a/arch/x86/kvm/kvm_cache_regs.h b/arch/x86/kvm/kvm_cache_regs.h
index a6bf8db..3377d53 100644
--- a/arch/x86/kvm/kvm_cache_regs.h
+++ b/arch/x86/kvm/kvm_cache_regs.h
@@ -75,6 +75,8 @@ static inline ulong kvm_read_cr4_bits(struct kvm_vcpu *vcpu, 
ulong mask)
 
 static inline ulong kvm_read_cr3(struct kvm_vcpu *vcpu)
 {
+   if (!test_bit(VCPU_EXREG_CR3, (ulong *)vcpu-arch.regs_avail))
+   kvm_x86_ops-decache_cr3(vcpu);
return vcpu-arch.cr3;
 }
 
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index 5e4b120..91af472 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -1286,6 +1286,10 @@ static void svm_decache_cr0_guest_bits(struct kvm_vcpu 
*vcpu)
 {
 }
 
+static void svm_decache_cr3(struct kvm_vcpu *vcpu)
+{
+}
+
 static void svm_decache_cr4_guest_bits(struct kvm_vcpu *vcpu)
 {
 }
@@ -3683,6 +3687,7 @@ static struct kvm_x86_ops svm_x86_ops = {
.get_cpl = svm_get_cpl,
.get_cs_db_l_bits = kvm_get_cs_db_l_bits,
.decache_cr0_guest_bits = svm_decache_cr0_guest_bits,
+   .decache_cr3 = svm_decache_cr3,
.decache_cr4_guest_bits = svm_decache_cr4_guest_bits,
.set_cr0 = svm_set_cr0,
.set_cr3 = svm_set_cr3,
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 92f2c72..8d7b85a 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -1817,6 +1817,14 @@ static void vmx_decache_cr0_guest_bits(struct kvm_vcpu 
*vcpu)
vcpu-arch.cr0 |= vmcs_readl(GUEST_CR0)  cr0_guest_owned_bits;
 }
 
+static void vmx_decache_cr3(struct kvm_vcpu *vcpu)
+{
+   /* Can only be called with EPT enabled */
+   if (enable_ept)
+   vcpu-arch.cr3 = vmcs_readl(GUEST_CR3);
+   __set_bit(VCPU_EXREG_CR3, (ulong *)vcpu-arch.regs_avail);
+}
+
 static void vmx_decache_cr4_guest_bits(struct kvm_vcpu *vcpu)
 {
ulong cr4_guest_owned_bits = vcpu-arch.cr4_guest_owned_bits;
@@ -3713,11 +3721,6 @@ static int vmx_handle_exit(struct kvm_vcpu *vcpu)
if (vmx-emulation_required  emulate_invalid_guest_state)
return handle_invalid_guest_state(vcpu);
 
-   /* Access CR3 don't cause VMExit in paging mode, so we need
-* to sync with guest real CR3. */
-   if (enable_ept  is_paging(vcpu))
-   vcpu-arch.cr3 = vmcs_readl(GUEST_CR3);
-
if (exit_reason  VMX_EXIT_REASONS_FAILED_VMENTRY) {
vcpu-run-exit_reason = KVM_EXIT_FAIL_ENTRY;
vcpu-run-fail_entry.hardware_entry_failure_reason
@@ -4034,7 +4037,8 @@ static void vmx_vcpu_run(struct kvm_vcpu *vcpu)
  );
 
vcpu-arch.regs_avail = ~((1  VCPU_REGS_RIP) | (1  VCPU_REGS_RSP)
- | (1  VCPU_EXREG_PDPTR));
+ | (1  VCPU_EXREG_PDPTR)
+ | (1  VCPU_EXREG_CR3));
vcpu-arch.regs_dirty = 0;
 
vmx-idt_vectoring_info = vmcs_read32(IDT_VECTORING_INFO_FIELD);
@@ -4306,6 +4310,7 @@ static struct kvm_x86_ops vmx_x86_ops = {
.get_cpl = vmx_get_cpl,
.get_cs_db_l_bits = vmx_get_cs_db_l_bits,
.decache_cr0_guest_bits = vmx_decache_cr0_guest_bits,
+   .decache_cr3 = vmx_decache_cr3,
.decache_cr4_guest_bits = vmx_decache_cr4_guest_bits,
.set_cr0 = vmx_set_cr0,
.set_cr3 = vmx_set_cr3,
-- 
1.7.1

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: PCI passthrough on Sony Vaio F11 laptop...

2010-12-05 Thread Erik Brakkee

Jan Kiszka wrote:

Am 15.11.2010 22:55, Erik Brakkee wrote:
   

Jan Kiszka wrote:
 

Am 14.11.2010 14:21, Erik Brakkee wrote:

   

Jan Kiszka wrote:

 

Strange, should work. I would suggest to post your full kernel log,
maybe there is some enlightening message hidden.

I don't think it is a problem of your kernel version, but I'm able to
pass through devices on OpenSUSE 11.3 with
kernel-desktop-2.6.36-90.1.x86_64 from their kernel repository.

Jan



   

Exactly what server logs do you need. Is this only /var/log/messages or
more? And do I need to set specific options there?
Any other log files that you need?

 

dmesg   log-file


   

Before, generating these logs I will upgrade to a later kernel. As far
as I can tell, that will still be a 2.6.34 kernel. Perhaps I should try
the 2.6.36 kernel as well. Do you have the URL for the kernel repository
I should use? (cannot find an obvious kernel repository in YAST2).

 

http://download.opensuse.org/repositories/Kernel:/HEAD/openSUSE_11.3

Jan


   

I have attached the logs of /var/log/messages, dmesg, and qemu log
(other.log), as well as the kernel config parameters (/proc/config.gz).
I did the test with two kernels (see the tar.gz file): one kernel a
2.6.34 and the other a 2.6.36 kernel.
 


Comparing the dmesg with my kernel log, I'm missing messages like

[0.023960] DMAR: Host address width 36
[0.023962] DMAR: DRHD base: 0x00fed9 flags: 0x0
[0.023968] IOMMU 0: reg_base_addr fed9 ver 1:0 cap c9008020e30272 ecap 
1000
[0.023970] DMAR: DRHD base: 0x00fed93000 flags: 0x1
[0.023974] IOMMU 1: reg_base_addr fed93000 ver 1:0 cap c9008020630272 ecap 
1000
[0.023976] DMAR: RMRR base: 0x00bf6e9000 end: 0x00bf6f
[0.023978] DMAR: No ATSR found

about the Intel DMAR (IOMMU) setup.

Are you sure that you have an Intel chipset with the required features?
And have you checked that VT-d is enabled in the BIOS (or however it
may be called there)?

Jan
I have now done a PCI passthrough test on some real hardware. Supermicro 
X8DTi-F motherboard (intel 5520 chipset), Intel Xeon L5630 processor. I 
enabled Intel VT-d in the BIOS and them simply selected one of the 
network interfaces for passthrough the the VM. And then... it just 
worksd. Also, I am seeing output similar to what you posted above.



--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] kvm-vmx: add module parameter to avoid trapping HLT instructions (v4)

2010-12-05 Thread Srivatsa Vaddagiri
On Sat, Dec 04, 2010 at 08:43:21AM -0600, Anthony Liguori wrote:
 In certain use-cases, we want to allocate guests fixed time slices where idle
 guest cycles leave the machine idling.  There are many approaches to achieve
 this but the most direct is to simply avoid trapping the HLT instruction which
 lets the guest directly execute the instruction putting the processor to 
 sleep.

A vcpu could be idle not just because of lack of work, but also because its
waiting on IO completion. Normally idle vcpus that yield would allow their
companion threads to run and possibly finish pending IO work faster. Now that
idle vcpu won't yield, it would cause overall cpu cycle demand of VMs to go up
(100% demand from VM's idle/not-idle vcpus + whatever their companion threads
demand) not to mention any impact on IO latencies. Not sure how much of an issue
this will be in practice, but something to keep in mind when we test!

Also, just curious how this would work for idle vcpus that use mwait rather 
than hlt.

- vatsa
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/2] tools/virtio: virtio_test tool

2010-12-05 Thread Rusty Russell
On Tue, 30 Nov 2010 03:46:37 am Michael S. Tsirkin wrote:
 This is the userspace part of the tool: it includes a bunch of stubs for
 linux APIs, somewhat simular to linuxsched. This makes it possible to
 recompile the ring code in userspace.
 
 A small test example is implemented combining this with vhost_test
 module.
 
 Signed-off-by: Michael S. Tsirkin m...@redhat.com

Hi Michael,

  I'm not sure what the point is of this work?  You'll still need to
benchmark on real systems, but it's not low-level enough to measure
things like cache misses.

I'm assuming you're thinking of playing with layout to measure cache
behaviour.  I was thinking of a complete userspace implementation where
either it was run under cachegrind, or each access was wrapped to allow
tracking of cachelines to give an exact measure of cache movement under
various scenarios (esp. ring mostly empty, ring in steady state, ring
mostly full).

Cheers,
Rusty.
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/2 rebased] KVM: MMU: Introduce a helper to access lpage_info

2010-12-05 Thread Xiao Guangrong
On 12/06/2010 12:13 AM, Takuya Yoshikawa wrote:
 From: Takuya Yoshikawa yoshikawa.tak...@oss.ntt.co.jp
 
 Index calculation to access lpage_info appears three times.
 A helper is worthwhile.
 

Why not get lpage_info instead of index in the helper?
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/2 rebased] KVM: MMU: Introduce a helper to access lpage_info

2010-12-05 Thread Takuya Yoshikawa

(2010/12/06 15:37), Xiao Guangrong wrote:

On 12/06/2010 12:13 AM, Takuya Yoshikawa wrote:

From: Takuya Yoshikawayoshikawa.tak...@oss.ntt.co.jp

Index calculation to access lpage_info appears three times.
A helper is worthwhile.



Why not get lpage_info instead of index in the helper?


Seems a better way! I didn't think about it.

I'll check and resend [2/2] if it's OK.

Thanks,
  Takuya
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html