[PATCH] kvm: fix wrong position of clean cscope

2008-10-16 Thread Avi Kivity
From: Sheng Yang [EMAIL PROTECTED]

Signed-off-by: Sheng Yang [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]

diff --git a/Makefile b/Makefile
index 6581679..64e296d 100644
--- a/Makefile
+++ b/Makefile
@@ -110,8 +110,8 @@ srpm:
 clean:
for i in $(if $(WANT_MODULE), kernel) user libkvm qemu libfdt; do \
make -C $$i clean; \
-   rm -f ./cscope.*
done
+   rm -f ./cscope.*
 
 distclean: clean
rm -f config.mak user/config.mak
--
To unsubscribe from this list: send the line unsubscribe kvm-commits in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] kvm: qemu: regenerate bios for firmware uuid interface

2008-10-16 Thread Avi Kivity
From: Avi Kivity [EMAIL PROTECTED]

Signed-off-by: Avi Kivity [EMAIL PROTECTED]

diff --git a/qemu/pc-bios/bios.bin b/qemu/pc-bios/bios.bin
index cde8e18..1a90b6d 100644
Binary files a/qemu/pc-bios/bios.bin and b/qemu/pc-bios/bios.bin differ
--
To unsubscribe from this list: send the line unsubscribe kvm-commits in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] kvm: bios: read UUID from firmware interface

2008-10-16 Thread Avi Kivity
From: Gleb Natapov [EMAIL PROTECTED]

Add support for new firmware configuration channel to the BIOS.
Read UUID from firmware using this channel.

Signed-off-by: Gleb Natapov [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]

diff --git a/bios/rombios32.c b/bios/rombios32.c
index 921e202..a91b155 100755
--- a/bios/rombios32.c
+++ b/bios/rombios32.c
@@ -444,31 +444,51 @@ void wrmsr_smp(uint32_t index, uint64_t val)
 p-ecx = 0;
 }
 
-void uuid_probe(void)
-{
 #ifdef BX_QEMU
-uint32_t eax, ebx, ecx, edx;
+#define QEMU_CFG_CTL_PORT 0x510
+#define QEMU_CFG_DATA_PORT 0x511
+#define QEMU_CFG_SIGNATURE  0x00
+#define QEMU_CFG_ID 0x01
+#define QEMU_CFG_UUID   0x02
+
+int qemu_cfg_port;
+
+void qemu_cfg_select(int f)
+{
+outw(QEMU_CFG_CTL_PORT, f);
+}
 
-// check if backdoor port exists
-asm volatile (outl %%eax, %%dx
-: =a (eax), =b (ebx), =c (ecx), =d (edx)
-: a (0x564d5868), b (0), c (0xa), d (0x5658));
-if (ebx == 0x564d5868) {
-uint32_t *uuid_ptr = (uint32_t *)bios_uuid;
-// get uuid
-asm volatile (outl %%eax, %%dx
-: =a (eax), =b (ebx), =c (ecx), =d (edx)
-: a (0x564d5868), c (0x13), d (0x5658));
-uuid_ptr[0] = eax;
-uuid_ptr[1] = ebx;
-uuid_ptr[2] = ecx;
-uuid_ptr[3] = edx;
-} else
+int qemu_cfg_port_probe()
+{
+char *sig = QEMU;
+int i;
+
+qemu_cfg_select(QEMU_CFG_SIGNATURE);
+
+for (i = 0; i  4; i++)
+if (inb(QEMU_CFG_DATA_PORT) != sig[i])
+return 0;
+
+return 1;
+}
+
+void qemu_cfg_read(uint8_t *buf, int len)
+{
+while (len--)
+*(buf++) = inb(QEMU_CFG_DATA_PORT);
+}
 #endif
-{
-// UUID not set
-memset(bios_uuid, 0, 16);
+
+void uuid_probe(void)
+{
+#ifdef BX_QEMU
+if(qemu_cfg_port) {
+qemu_cfg_select(QEMU_CFG_UUID);
+qemu_cfg_read(bios_uuid, 16);
+return;
 }
+#endif
+memset(bios_uuid, 0, 16);
 }
 
 void cpu_probe(void)
@@ -2085,6 +2105,10 @@ void rombios32_init(void)
 
 init_smp_msrs();
 
+#ifdef BX_QEMU
+qemu_cfg_port = qemu_cfg_port_probe();
+#endif
+
 ram_probe();
 
 cpu_probe();
--
To unsubscribe from this list: send the line unsubscribe kvm-commits in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] KVM: ia64: Makefile fix for forcing to re-generate asm-offsets.h

2008-10-16 Thread Avi Kivity
From: Xiantao Zhang [EMAIL PROTECTED]

To avoid using stale asm-offsets.h.

Signed-off-by: Xiantao Zhang [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]

diff --git a/arch/ia64/kvm/Makefile b/arch/ia64/kvm/Makefile
index cf37f8f..53c7a48 100644
--- a/arch/ia64/kvm/Makefile
+++ b/arch/ia64/kvm/Makefile
@@ -30,7 +30,7 @@ define cmd_offsets
 echo #endif )  $@
 endef
 # We use internal rules to avoid the is up to date message from make
-arch/ia64/kvm/asm-offsets.s: arch/ia64/kvm/asm-offsets.c
+arch/ia64/kvm/asm-offsets.s: arch/ia64/kvm/asm-offsets.c FORCE
$(call if_changed_dep,cc_s_c)
 
 $(obj)/$(offsets-file): arch/ia64/kvm/asm-offsets.s
@@ -53,7 +53,6 @@ endif
 kvm-objs := $(common-objs) kvm-ia64.o kvm_fw.o
 obj-$(CONFIG_KVM) += kvm.o
 
-FORCE : $(obj)/$(offsets-file)
 EXTRA_CFLAGS_vcpu.o += -mfixed-range=f2-f5,f12-f127
 kvm-intel-objs = vmm.o vmm_ivt.o trampoline.o vcpu.o optvfault.o mmio.o \
vtlb.o process.o
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
index 1658228..bb92be2 100644
--- a/include/linux/kvm_host.h
+++ b/include/linux/kvm_host.h
@@ -37,7 +37,7 @@
 #define KVM_REQ_UNHALT 6
 #define KVM_REQ_MMU_SYNC   7
 
-#define KVM_USERSPACE_IRQ_SOURCE_ID(1  0)
+#define KVM_USERSPACE_IRQ_SOURCE_ID0
 
 struct kvm_vcpu;
 extern struct kmem_cache *kvm_vcpu_cache;
--
To unsubscribe from this list: send the line unsubscribe kvm-commits in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] KVM: Fix guest shared interrupt with in-kernel irqchip

2008-10-16 Thread Avi Kivity
From: Sheng Yang [EMAIL PROTECTED]

Every call of kvm_set_irq() should offer an irq_source_id, which is
allocated by kvm_request_irq_source_id(). Based on irq_source_id, we
identify the irq source and implement logical OR for shared level
interrupts.

The allocated irq_source_id can be freed by kvm_free_irq_source_id().

Currently, we support at most sizeof(unsigned long) different irq sources.

[Amit: - rebase to kvm.git HEAD
   - move definition of KVM_USERSPACE_IRQ_SOURCE_ID to common file
   - move kvm_request_irq_source_id to the update_irq ioctl]

[Xiantao: - Add kvm/ia64 stuff and make it work for kvm/ia64 guests]

Signed-off-by: Sheng Yang [EMAIL PROTECTED]
Signed-off-by: Amit Shah [EMAIL PROTECTED]
Signed-off-by: Xiantao Zhang [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]

diff --git a/arch/ia64/include/asm/kvm_host.h b/arch/ia64/include/asm/kvm_host.h
index 85db124..04c0b88 100644
--- a/arch/ia64/include/asm/kvm_host.h
+++ b/arch/ia64/include/asm/kvm_host.h
@@ -417,6 +417,9 @@ struct kvm_arch {
struct list_head assigned_dev_head;
struct dmar_domain *intel_iommu_domain;
struct hlist_head irq_ack_notifier_list;
+
+   unsigned long irq_sources_bitmap;
+   unsigned long irq_states[KVM_IOAPIC_NUM_PINS];
 };
 
 union cpuid3_t {
diff --git a/arch/ia64/kvm/kvm-ia64.c b/arch/ia64/kvm/kvm-ia64.c
index c0699f0..d21fb67 100644
--- a/arch/ia64/kvm/kvm-ia64.c
+++ b/arch/ia64/kvm/kvm-ia64.c
@@ -778,6 +778,9 @@ static void kvm_init_vm(struct kvm *kvm)
kvm_build_io_pmt(kvm);
 
INIT_LIST_HEAD(kvm-arch.assigned_dev_head);
+
+   /* Reserve bit 0 of irq_sources_bitmap for userspace irq source */
+   kvm-arch.irq_sources_bitmap = 1;
 }
 
 struct  kvm *kvm_arch_create_vm(void)
@@ -941,9 +944,8 @@ long kvm_arch_vm_ioctl(struct file *filp,
goto out;
if (irqchip_in_kernel(kvm)) {
mutex_lock(kvm-lock);
-   kvm_ioapic_set_irq(kvm-arch.vioapic,
-   irq_event.irq,
-   irq_event.level);
+   kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID,
+   irq_event.irq, irq_event.level);
mutex_unlock(kvm-lock);
r = 0;
}
diff --git a/arch/x86/kvm/i8254.c b/arch/x86/kvm/i8254.c
index 6144d3f..da06919 100644
--- a/arch/x86/kvm/i8254.c
+++ b/arch/x86/kvm/i8254.c
@@ -545,6 +545,12 @@ struct kvm_pit *kvm_create_pit(struct kvm *kvm)
if (!pit)
return NULL;
 
+   mutex_lock(kvm-lock);
+   pit-irq_source_id = kvm_request_irq_source_id(kvm);
+   mutex_unlock(kvm-lock);
+   if (pit-irq_source_id  0)
+   return NULL;
+
mutex_init(pit-pit_state.lock);
mutex_lock(pit-pit_state.lock);
spin_lock_init(pit-pit_state.inject_lock);
@@ -587,6 +593,7 @@ void kvm_free_pit(struct kvm *kvm)
mutex_lock(kvm-arch.vpit-pit_state.lock);
timer = kvm-arch.vpit-pit_state.pit_timer.timer;
hrtimer_cancel(timer);
+   kvm_free_irq_source_id(kvm, kvm-arch.vpit-irq_source_id);
mutex_unlock(kvm-arch.vpit-pit_state.lock);
kfree(kvm-arch.vpit);
}
@@ -598,8 +605,8 @@ static void __inject_pit_timer_intr(struct kvm *kvm)
int i;
 
mutex_lock(kvm-lock);
-   kvm_set_irq(kvm, 0, 1);
-   kvm_set_irq(kvm, 0, 0);
+   kvm_set_irq(kvm, kvm-arch.vpit-irq_source_id, 0, 1);
+   kvm_set_irq(kvm, kvm-arch.vpit-irq_source_id, 0, 0);
mutex_unlock(kvm-lock);
 
/*
diff --git a/arch/x86/kvm/i8254.h b/arch/x86/kvm/i8254.h
index e436d49..4178022 100644
--- a/arch/x86/kvm/i8254.h
+++ b/arch/x86/kvm/i8254.h
@@ -44,6 +44,7 @@ struct kvm_pit {
struct kvm_io_device speaker_dev;
struct kvm *kvm;
struct kvm_kpit_state pit_state;
+   int irq_source_id;
 };
 
 #define KVM_PIT_BASE_ADDRESS   0x40
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index dda478e..5d29c50 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -1816,7 +1816,8 @@ long kvm_arch_vm_ioctl(struct file *filp,
goto out;
if (irqchip_in_kernel(kvm)) {
mutex_lock(kvm-lock);
-   kvm_set_irq(kvm, irq_event.irq, irq_event.level);
+   kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID,
+   irq_event.irq, irq_event.level);
mutex_unlock(kvm-lock);
r = 0;
}
@@ -4115,6 +4116,9 @@ struct  kvm *kvm_arch_create_vm(void)
INIT_LIST_HEAD(kvm-arch.active_mmu_pages);
INIT_LIST_HEAD(kvm-arch.assigned_dev_head);
 
+   /* Reserve bit 0 of irq_sources_bitmap for userspace irq source */
+   kvm-arch.irq_sources_bitmap = 1;
+

Re: [PATCH] qemu: qemu_fopen_fd: differentiate between reader and writer user

2008-10-16 Thread Avi Kivity

Anthony Liguori wrote:

Uri Lublin wrote:

Anthony Liguori wrote:


I have already cut your text, but I don't understand the comment about 
not being full duplex.  Is there a reason why migration needs to be 
bidirectional?  I don't think there's a fundamental reason it needs to 
be and I think there are some advantages to it being unidirectional.




Weren't there some acks flowing back on the old protocol to let the 
source now things are fine?



--
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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] qemu: qemu_fopen_fd: differentiate between reader and writer user

2008-10-16 Thread Avi Kivity

Anthony Liguori wrote:


Yeah, I tried to implement the read/write mode buffer and it ends up 
not to work very nicely.  I don't remember the precise issue, but I 
hit some sort of wall that I thought was a fundamental limitation.  I 
ended up forcing the QEMUFile to be in either read or write mode 
similar to your original patch without introducing a new option as an 
argument.




It really depends on whether the file descriptor is a file or a socket.  
With files, the read and write streams are backed by the same storage, 
so they can intersect.  With sockets, the read and write streams are 
completely independent.


Everything is a file, except when it isn't.

--
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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [v2] Shared guest irq support

2008-10-16 Thread Avi Kivity

Zhang, Xiantao wrote:

Forget to modify the from item generated automatically by git.  Modified
to Sheng Yang [EMAIL PROTECTED]  :)
Xiantao

From c0d1ad6327c01ba0584922022bef48c971bbf18a Mon Sep 17 00:00:00 2001
From: Sheng Yang [EMAIL PROTECTED]
Date: Wed, 15 Oct 2008 20:15:06 +0800
Subject: [PATCH] KVM: Fix guest shared interrupt with in-kernel irqchip

Every call of kvm_set_irq() should offer an irq_source_id, which is
allocated by kvm_request_irq_source_id(). Based on irq_source_id, we
identify the irq source and implement logical OR for shared level
interrupts.

The allocated irq_source_id can be freed by kvm_free_irq_source_id().

Currently, we support at most sizeof(unsigned long) different irq
sources.


 
+#define KVM_USERSPACE_IRQ_SOURCE_ID	1  0

+
  


This is dangerous, if used in an expression together with a higher 
precedence operator.  I fixed it and applied.  Thanks to all involved.


--
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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] KVM: VMX: Move private memory slot position

2008-10-16 Thread Avi Kivity

Yang, Sheng wrote:
I've found the reason... It's because that kvm_mmu_page-slot_bitmap is 
unsigned long, and if use KVM_MEMORY_SLOTS + xxx, it would beyond 32 in pae, 
then memory corrupted.


But reduce supported memory slot number to 28 or extend slot_bitmap, or other 
methods? Slot_bitmap have bitops, so keep unsigned long would be better... 
Now reduce supported memory slot number seems reasonable to me.


  


We could change it to DECLARE_BITMAP, and thus support = 32 slots even 
on i386.  But I agree that 28 slots would be sufficient.


(I also want to have this fix into 2.6.28, for some device would easily 
overlapped with current private memory slot)
  


I've been thinking that we can get rid of internal slots, by placing the 
TSS, real mode identity map, and APIC access page in the bios.  Of 
course we would need a new ioctl to let the kernel know where the 
scratch memory is located and how much of it is available.


--
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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] kvm/ia64: Makefile fix for forcing to re-generate asm-offsets.h

2008-10-16 Thread Avi Kivity

Zhang, Xiantao wrote:
Hi, Avi 
	Please apply this urgent fix for 2.6.28 merge. Thanks!
  


Applied, and will queue for 2.6.28.  Is it needed for 2.6.26 and .27?  
If not, why not?


--
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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [v2] Shared guest irq support

2008-10-16 Thread Sheng Yang
On Thursday 16 October 2008 16:21:38 Avi Kivity wrote:
 Zhang, Xiantao wrote:
  Forget to modify the from item generated automatically by git.  Modified
  to Sheng Yang [EMAIL PROTECTED]  :)
  Xiantao
 
  From c0d1ad6327c01ba0584922022bef48c971bbf18a Mon Sep 17 00:00:00 2001
  From: Sheng Yang [EMAIL PROTECTED]
  Date: Wed, 15 Oct 2008 20:15:06 +0800
  Subject: [PATCH] KVM: Fix guest shared interrupt with in-kernel irqchip
 
  Every call of kvm_set_irq() should offer an irq_source_id, which is
  allocated by kvm_request_irq_source_id(). Based on irq_source_id, we
  identify the irq source and implement logical OR for shared level
  interrupts.
 
  The allocated irq_source_id can be freed by kvm_free_irq_source_id().
 
  Currently, we support at most sizeof(unsigned long) different irq
  sources.
 
 
 
  +#define KVM_USERSPACE_IRQ_SOURCE_ID1  0
  +

 This is dangerous, if used in an expression together with a higher
 precedence operator.  I fixed it and applied.  Thanks to all involved.

Wait a minute

I think I reserved source id 0 to userspace, rather than 10=1... It's 
strange... 

 + kvm-arch.irq_sources_bitmap = 1;

What really should be addressed is here... 

I will post a patch to fix it as soon as I saw the commit...

--
regards
Yang, Sheng

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


RE: [PATCH] kvm/ia64: Makefile fix for forcing to re-generate asm-offsets.h

2008-10-16 Thread Zhang, Xiantao
Avi Kivity wrote:
 Zhang, Xiantao wrote:
 Hi, Avi
  Please apply this urgent fix for 2.6.28 merge. Thanks!
 
 
 Applied, and will queue for 2.6.28.  Is it needed for 2.6.26 and .27?
 If not, why not?

It should be an issue here, and also needs for 2.6.26 and 27. For
end-users, it shouldn't have no problem, because they rarely to modify
vcpu's structure defition. But for developers, it may leads to weird
issues! 
Xiantao

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


Re: [v2] Shared guest irq support

2008-10-16 Thread Amit Shah
* On Thursday 16 Oct 2008 13:51:38 Avi Kivity wrote:
 Zhang, Xiantao wrote:
  Forget to modify the from item generated automatically by git.  Modified
  to Sheng Yang [EMAIL PROTECTED]  :)
  Xiantao
 
  From c0d1ad6327c01ba0584922022bef48c971bbf18a Mon Sep 17 00:00:00 2001
  From: Sheng Yang [EMAIL PROTECTED]
  Date: Wed, 15 Oct 2008 20:15:06 +0800
  Subject: [PATCH] KVM: Fix guest shared interrupt with in-kernel irqchip
 
  Every call of kvm_set_irq() should offer an irq_source_id, which is
  allocated by kvm_request_irq_source_id(). Based on irq_source_id, we
  identify the irq source and implement logical OR for shared level
  interrupts.
 
  The allocated irq_source_id can be freed by kvm_free_irq_source_id().
 
  Currently, we support at most sizeof(unsigned long) different irq
  sources.
 
 
 
  +#define KVM_USERSPACE_IRQ_SOURCE_ID1  0
  +

 This is dangerous, if used in an expression together with a higher
 precedence operator.  I fixed it and applied.  Thanks to all involved.

Thanks; however, Sheng suggested we should use set_bit to set the 
corresponding bit since we're operating on bitfields in a bitmap.

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


Re: [PATCH][RFC] vmchannel a data channel between host and guest.

2008-10-16 Thread Gleb Natapov
On Wed, Oct 15, 2008 at 09:02:30AM -0500, Anthony Liguori wrote:
 like struct sockaddr_un.  As long as the strings were unique, they 
 could  be in whatever format people wanted.

 
 So basically what you are saying is that you want to use string IDs instead 
 of
 numerical IDs in a hope that the chance of colliding IDs will be smaller? 
 (in the
 current implementation ID length is 32 bit, so the chances for two services 
 to
 pick the same ID is small).
   

 But people don't choose random 32-bit integers and since your  
 implementation only supports channels 0..4 obviously, the intention  
 isn't to choose random integers.  When using integers, it would be  
You can configure only four channels in qemu with my implementation, but
you can give arbitrary ID to each one of them. To configure vmchannel
with ID 42 you add -vmchannel di:42,unix:/tmp/kvm-mouse,server
to qemu command line (di means Device Id).

 necessary to have some sort of authority that assigns out the integers  
 to avoid conflict.  A protocol like this scales better if such an  
 authority isn't necessary.

 But why pick constant ID for a service at all? Management software can
 assign unique IDs for each service during image preparation.

 First, not everyone has management software.  Even so, it's not the  
If you run qemu without management software as most of us do, you
became management software. If you want Linux console to be on a
serial port you have to configure qemu and Linux properly.

 center of the world.  If I want to add a new feature to QEMU that makes  
 use of one of these channels (say Unity/Coherence), does that mean I now  
 have to tell every management tool (libvirt et al) about this interface  
 so they can assign an ID to it?  How does the guest software know what  
With proposed solution yes, you have to tell it to a management tool.
Not only because of ID assigning issues, but also because you have no
direct control on a command line, so management tool should know how to
create a channel for you. Of cause management tool can have an option to
add channels on user request.

 channel to use?  You basically assume yet another host=guest  
 communication mechanism to tell the guest software what channel to use.   
 That seems to defeat the purpose.
This happens when disk image is prepared and various agents are installed into
it. Just as if you want to redirect Linux console to serial port you
have to add kernel option once after installation.


  So one
 management software will use channel 42 for DnD and 22 for CIM and another
 will use 13 for DnD and 42 for CIM. All is need is to not hard code
 channel IDs into agents. You will not be able to move such images from one
 management software to another easily of cause, but this task is not so easy
 today too.
   

 It's so much simpler to just use unique identifiers for each service.   
 Be it UUID, a string in the form of a reverse fqdn or URL, or whatever.

It is easy to do with name resolution service on channel 0.

  If you like string IDs better
 than numerical IDs and you are OK with lookup by name way of doing
 things in VMCI I can easily add channel 0 (will be implemented by qemu
 itself and thus always present) that will do name to ID mapping.
   

 It's not a bad idea to have a bootstrap channel.  Do channel exist  
 during the entirely life time of the guest?
Yes.

   Can disconnects/reconnects  
 happen on a channel?  Can a guest listen on a channel?
Netlink implements datagram semantic, so there is not
disconnects/reconnects or listen. Any process can send/receive data
to/from any channel.


 Certainly, sockets are a pretty well established model so it makes a  
 certain amount of sense to have these things behave like traditional  
 sockets.

I use socket! Existing one, not new one. I think there should be a very
good reason to add yet another address family. I thought about adding new
address family initially, but then I recalled that we already have one
that is used for kernel-userspace communication.

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


Re: [PATCH] KVM: VMX: Move private memory slot position

2008-10-16 Thread Sheng Yang
On Thursday 16 October 2008 16:26:07 Avi Kivity wrote:
 Yang, Sheng wrote:
  I've found the reason... It's because that kvm_mmu_page-slot_bitmap is
  unsigned long, and if use KVM_MEMORY_SLOTS + xxx, it would beyond 32 in
  pae, then memory corrupted.
 
  But reduce supported memory slot number to 28 or extend slot_bitmap, or
  other methods? Slot_bitmap have bitops, so keep unsigned long would be
  better... Now reduce supported memory slot number seems reasonable to me.

 We could change it to DECLARE_BITMAP, and thus support = 32 slots even
 on i386.  But I agree that 28 slots would be sufficient.

DECLARE_BITMAP looks like a flexible solution, I forgot it...(and I also don't 
like to change a lot of macro in kernel and userspace). I will post the patch 
soon.


  (I also want to have this fix into 2.6.28, for some device would easily
  overlapped with current private memory slot)

 I've been thinking that we can get rid of internal slots, by placing the
 TSS, real mode identity map, and APIC access page in the bios.  Of
 course we would need a new ioctl to let the kernel know where the
 scratch memory is located and how much of it is available.


How about put into userspace e.g. pc_init()? I think more easy than keeping 
bios sync with KVM. Anyway, vmx specific thing would become generic. I'd like 
to keep it as what it is at least for now...

--
regards
Yang, Sheng
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [v2] Shared guest irq support

2008-10-16 Thread Avi Kivity

Sheng Yang wrote:


+#define KVM_USERSPACE_IRQ_SOURCE_ID1  0
+
  

This is dangerous, if used in an expression together with a higher
precedence operator.  I fixed it and applied.  Thanks to all involved.



Wait a minute

I think I reserved source id 0 to userspace, rather than 10=1... It's 
strange... 


 + kvm-arch.irq_sources_bitmap = 1;

What really should be addressed is here... 

  


Oh right.  I changed it to 0.

--
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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [v2] Shared guest irq support

2008-10-16 Thread Avi Kivity

Amit Shah wrote:



+#define KVM_USERSPACE_IRQ_SOURCE_ID1  0
+
  

This is dangerous, if used in an expression together with a higher
precedence operator.  I fixed it and applied.  Thanks to all involved.



Thanks; however, Sheng suggested we should use set_bit to set the 
corresponding bit since we're operating on bitfields in a bitmap.
  


We are actually using set_bit, so the value should be zero.

--
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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: kvm/ia64: Fix halt emulation logic.

2008-10-16 Thread Avi Kivity

Zhang, Xiantao wrote:


smp_call_function_single() will call the function on the current cpu
if instructed, so this change is unneeded. 


Aha, Thanks for pointing this. Yes, it is unnecessary. Could you help to
remove it directly ? or need me have a resend. 


Please resend, since I can't test (or even compile) it.

--
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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: kvm/ia64: Fix halt emulation logic.

2008-10-16 Thread Zhang, Xiantao
Avi Kivity wrote:
 Zhang, Xiantao wrote:
 Hi, Avi
  This is the key fix for 2.6.28 merge. Without this patch, guest
 may hang once configured with more than 2 vcpus, it is because x86
 side changed the halt handling's common logic, but it misses to
 change ia64 side. 
 
 
 @@ -398,8 +400,11 @@ static int handle_global_purge(struct kvm_vcpu
 *vcpu, struct kvm_run *kvm_run)
 
  if (kvm-vcpus[i]-cpu != -1) {
  call_data.vcpu = kvm-vcpus[i];
 -smp_call_function_single(kvm-vcpus[i]-cpu,
 +if (kvm-vcpus[i]-cpu != smp_processor_id())
 +
 smp_call_function_single(kvm-vcpus[i]-cpu,
  vcpu_global_purge, call_data,
 1);
 +else
 +vcpu_global_purge(call_data);
 
 
 smp_call_function_single() will call the function on the current cpu
 if instructed, so this change is unneeded. 
Aha, Thanks for pointing this. Yes, it is unnecessary. Could you help to
remove it directly ? or need me have a resend.  
Xiantao
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: commit 641fb03992b20aa640781a245f6b7136f0b845e4 broke MMU

2008-10-16 Thread Avi Kivity

Alexander Graf wrote:

Hi,

while trying to run the current openSUSE on git KVM I found that the 
installation doesn't even boot properly. I bisected the problem down 
to commit 641fb03992b20aa640781a245f6b7136f0b845e4, as of which udev 
shows strange errors.


I reproduced the incorrect behavior reliably on an AMD machine with 
npt=0, but since the mmu code is generic I assume that everyone 
suffers from this.


To reproduce the problem, do the following:

wget 
http://download.opensuse.org/factory/repo/oss/boot/x86_64/loader/{linux,initrd} 


qemu-system-x86_64 -m 512 /dev/null -kernel linux -initrd initrd


Since I'm not too much into mmu code, I hope someone else will take a 
deeper look at this.




I think this was fixed by e74bb3fa8e55284dc6fdd68aa9da833ce07a4295 
(KVM: MMU: sync root on paravirt TLB flush).


(update your address book entries for kvm-devel and for me...)

--
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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] read UUID from qemu

2008-10-16 Thread Avi Kivity

Gleb Natapov wrote:

Similar patch was sent to bochs devel list, but I propose to apply this
patch now rather than waiting for bochs developers to apply it and then
merger.

---

Add support for new FW configuration channel to the BIOS.
Read UUID from QEMU using this channel.

  


Applied, thanks.   btw, '---' works the other way around (confusingly).

--
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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: How can I tell KVM is actually using AMD-V virtualization extensions?

2008-10-16 Thread Dor Laor

Veiko Kukk wrote:

Hi!

My desktop machine is HP dc5750 SFF, CPU is AMD Athlon(tm) 64 X2 Dual 
Core Processor 4600+, /proc/cpuinfo lists svm flag. I'm using 2.6.27 
kernel on FC9, qemu-system-x86_64 info version 0.9.1.


How can I be absolutely sure, that my kvm virtual machines are using 
AMD-V?



You can /sbin/lsmod | grep kvm_amd and check for ref count  0.
You can also use dmesg to check kvm messages.

Alternatively, check kvm_stat tool or run
/usr/sbin/lsof -p `pgrep qemu` | grep /dev/kvm

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


RE: [patch] kvm-userland - raise max vcpus to 256 for ia64

2008-10-16 Thread Zhang, Xiantao
It needs the kernel patch I sent to mailing list yesterday. 
Avi, 
   Could you check-in attached patch and queue it for 2.6.28? Thanks!
Xiantao
Jes Sorensen wrote:
 Hi,
 
 We can now boot upto 60 vcpus on ia64, but thats just the beginning.
 Would you please add this one to the kvm-userland tree.
 
 Thanks,
 Jes



0002-kvm-ia64-Code-cleanup-for-Linux-2.6.28.patch
Description: 0002-kvm-ia64-Code-cleanup-for-Linux-2.6.28.patch


Re: How can I tell KVM is actually using AMD-V virtualization extensions?

2008-10-16 Thread Avi Kivity

Veiko Kukk wrote:

Hi!

My desktop machine is HP dc5750 SFF, CPU is AMD Athlon(tm) 64 X2 Dual 
Core Processor 4600+, /proc/cpuinfo lists svm flag. I'm using 2.6.27 
kernel on FC9, qemu-system-x86_64 info version 0.9.1.


How can I be absolutely sure, that my kvm virtual machines are using 
AMD-V?




'info kvm'

--
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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: commit 641fb03992b20aa640781a245f6b7136f0b845e4 broke MMU

2008-10-16 Thread Alexander Graf

On 16.10.2008, at 10:58, Avi Kivity wrote:

I think this was fixed by e74bb3fa8e55284dc6fdd68aa9da833ce07a4295  
(KVM: MMU: sync root on paravirt TLB flush).


Eh, yes. Sorry for the fuss - it works now.

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


Re: [PATCH 01/10] Add CPUID feature flag for SVM v4

2008-10-16 Thread Alexander Graf


On 15.10.2008, at 21:31, Alexander Graf wrote:

This patch adds the CPUID feature flag for SVM in the x86 Linux  
headers.


Looks like the full leaf 0x8001 found its way into mainline, so  
this patch is not necessary anymore.


Alex




Signed-off-by: Alexander Graf [EMAIL PROTECTED]
---
include/asm-x86/cpufeature.h |1 +
1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/include/asm-x86/cpufeature.h b/include/asm-x86/ 
cpufeature.h

index cfcfb0a..28217de 100644
--- a/include/asm-x86/cpufeature.h
+++ b/include/asm-x86/cpufeature.h
@@ -110,6 +110,7 @@
/* More extended AMD flags: CPUID level 0x8001, ecx, word 6 */
#define X86_FEATURE_LAHF_LM (6*32+ 0) /* LAHF/SAHF in long mode */
#define X86_FEATURE_CMP_LEGACY	(6*32+ 1) /* If yes HyperThreading  
not valid */

+#define X86_FEATURE_SVM(6*32+ 2) /* Secure Virtual Machine */
#define X86_FEATURE_IBS (6*32+ 10) /* Instruction Based Sampling */

/*
--
1.5.6

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


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


[PATCH 2/2] KVM: VMX: Move private memory slot position

2008-10-16 Thread Sheng Yang
PCI device assignment would map guest MMIO spaces as separate slot, so it is
possible that the device has more than 2 MMIO spaces and overwrite current
private memslot.

The patch move private memory slot to the top of userspace visible memory slots.

Signed-off-by: Sheng Yang [EMAIL PROTECTED]
---
 arch/x86/kvm/vmx.c |2 +-
 arch/x86/kvm/vmx.h |5 +++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 3d56554..64e2439 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -2513,7 +2513,7 @@ static int vmx_set_tss_addr(struct kvm *kvm, unsigned int 
addr)
 {
int ret;
struct kvm_userspace_memory_region tss_mem = {
-   .slot = 8,
+   .slot = TSS_PRIVATE_MEMSLOT,
.guest_phys_addr = addr,
.memory_size = PAGE_SIZE * 3,
.flags = 0,
diff --git a/arch/x86/kvm/vmx.h b/arch/x86/kvm/vmx.h
index 3ad61dc..e2341d8 100644
--- a/arch/x86/kvm/vmx.h
+++ b/arch/x86/kvm/vmx.h
@@ -338,8 +338,9 @@ enum vmcs_field {
 
 #define AR_RESERVD_MASK 0xfffe0f00
 
-#define APIC_ACCESS_PAGE_PRIVATE_MEMSLOT   9
-#define IDENTITY_PAGETABLE_PRIVATE_MEMSLOT 10
+#define TSS_PRIVATE_MEMSLOT(KVM_MEMORY_SLOTS + 0)
+#define APIC_ACCESS_PAGE_PRIVATE_MEMSLOT   (KVM_MEMORY_SLOTS + 1)
+#define IDENTITY_PAGETABLE_PRIVATE_MEMSLOT (KVM_MEMORY_SLOTS + 2)
 
 #define VMX_NR_VPIDS   (1  16)
 #define VMX_VPID_EXTENT_SINGLE_CONTEXT 1
-- 
1.5.4.5

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


Re: [PATCH] qemu: qemu_fopen_fd: differentiate between reader and writer user

2008-10-16 Thread Anthony Liguori

Avi Kivity wrote:

Anthony Liguori wrote:

Uri Lublin wrote:

Anthony Liguori wrote:


I have already cut your text, but I don't understand the comment 
about not being full duplex.  Is there a reason why migration needs 
to be bidirectional?  I don't think there's a fundamental reason it 
needs to be and I think there are some advantages to it being 
unidirectional.




Weren't there some acks flowing back on the old protocol to let the 
source now things are fine?


There were, but there aren't now.  They don't improve reliability.

Regards,

Anthony Liguori

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


Re: [PATCH][RFC] vmchannel a data channel between host and guest.

2008-10-16 Thread Gleb Natapov
On Wed, Oct 15, 2008 at 10:56:02AM -0500, Anthony Liguori wrote:
 Gleb Natapov wrote:
 Andrew,

 On Wed, Oct 15, 2008 at 07:18:52AM -0700, Andrew Biggadike wrote:
   
 Gleb Natapov [EMAIL PROTECTED] wrote:
 
 Of course, you should also take a look at VMware's VMCI.  If we're going
 to have a socket interface, if we can have a compatible userspace
 interface, that would probably be a good thing.
 
 I looked at what I could find about VMCI 
 (http://pubs.vmware.com/vmci-sdk/index.html).
   
 I believe Anthony intended for you to look at the sockets interface to
 VMCI: http://www.vmware.com/pdf/ws65_s2_vmci_sockets.pdf.

 
 Using VMCI socket requires loading kernel module in a guest and in a host.
 Is this correct?
   

 Note that their addressing scheme uses a CID/port pair.  I think it's  
 interesting and somewhat safe because it basically mirrors an IP/port  
 pair.  That makes it relatively safe because that addressing mechanism  
 is well known (with it's advantages and flaws).  For instance, you need  
 some sort of authority to assign out ports.  It doesn't really help with  
 discovery either.

I fails to see how this is more safe that what I propose. Same problem
exactly: which ID/port to use for my service? But I also don't want to
compare proposed vmchannel and VMCI socket. They try to solve different
problems as far as I can see. VMCI tries to address intra host communication
performance problem (what about migration of a guest using it BTW? Or
security? Firewalls know nothing about it). vmchannel goal is to provide
management tools a way to communicate with in guest agents.

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


Re: [PATCH] qemu: qemu_fopen_fd: differentiate between reader and writer user

2008-10-16 Thread Uri Lublin

Anthony Liguori wrote:

Avi Kivity wrote:

Anthony Liguori wrote:

Uri Lublin wrote:

Anthony Liguori wrote:


I have already cut your text, but I don't understand the comment 
about not being full duplex.  Is there a reason why migration needs 
to be bidirectional?  I don't think there's a fundamental reason it 
needs to be and I think there are some advantages to it being 
unidirectional.




Weren't there some acks flowing back on the old protocol to let the 
source now things are fine?


There were, but there aren't now.  They don't improve reliability.



Why do you think they don't improve reliability ?
The Ack/Go messages catch the scenario where SRC finishes sending all its state, 
and DST have a problem loading that state. In that case SRC thinks migration was 
completed successfully (and stay in stopped mode), while DST exists.

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


Re: [PATCH] qemu: qemu_fopen_fd: differentiate between reader and writer user

2008-10-16 Thread Avi Kivity

Uri Lublin wrote:


Weren't there some acks flowing back on the old protocol to let the 
source now things are fine?


There were, but there aren't now.  They don't improve reliability.



Why do you think they don't improve reliability ?
The Ack/Go messages catch the scenario where SRC finishes sending all 
its state, and DST have a problem loading that state. In that case SRC 
thinks migration was completed successfully (and stay in stopped 
mode), while DST exists.


The management tool is in contact with both, and can arbitrate.  Once it 
thinks both source and destination are in a good state, it can continue 
the destination and quit the source.


--
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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/2] KVM: MMU: Extend kvm_mmu_page-slot_bitmap size

2008-10-16 Thread Sheng Yang
Otherwise set_bit() for private memory slot(above KVM_MEMORY_SLOTS) would
corrupted memory in 32bit host.

Signed-off-by: Sheng Yang [EMAIL PROTECTED]
---
 arch/x86/kvm/mmu.c |6 +++---
 include/asm-x86/kvm_host.h |8 +---
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 7e70e97..23610b5 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -789,7 +789,7 @@ static struct kvm_mmu_page *kvm_mmu_alloc_page(struct 
kvm_vcpu *vcpu,
set_page_private(virt_to_page(sp-spt), (unsigned long)sp);
list_add(sp-link, vcpu-kvm-arch.active_mmu_pages);
ASSERT(is_empty_shadow_page(sp-spt));
-   sp-slot_bitmap = 0;
+   bitmap_zero(sp-slot_bitmap, KVM_MEMORY_SLOTS + KVM_PRIVATE_MEM_SLOTS);
sp-multimapped = 0;
sp-parent_pte = parent_pte;
--vcpu-kvm-arch.n_free_mmu_pages;
@@ -1364,7 +1364,7 @@ static void page_header_update_slot(struct kvm *kvm, void 
*pte, gfn_t gfn)
int slot = memslot_id(kvm, gfn_to_memslot(kvm, gfn));
struct kvm_mmu_page *sp = page_header(__pa(pte));
 
-   __set_bit(slot, sp-slot_bitmap);
+   __set_bit(slot, sp-slot_bitmap);
 }
 
 static void mmu_convert_notrap(struct kvm_mmu_page *sp)
@@ -2564,7 +2564,7 @@ void kvm_mmu_slot_remove_write_access(struct kvm *kvm, 
int slot)
int i;
u64 *pt;
 
-   if (!test_bit(slot, sp-slot_bitmap))
+   if (!test_bit(slot, sp-slot_bitmap))
continue;
 
pt = sp-spt;
diff --git a/include/asm-x86/kvm_host.h b/include/asm-x86/kvm_host.h
index 4546535..a38f4a3 100644
--- a/include/asm-x86/kvm_host.h
+++ b/include/asm-x86/kvm_host.h
@@ -192,9 +192,11 @@ struct kvm_mmu_page {
u64 *spt;
/* hold the gfn of each spte inside spt */
gfn_t *gfns;
-   unsigned long slot_bitmap; /* One bit set per slot which has memory
-   * in this shadow page.
-   */
+   /*
+* One bit set per slot which has memory
+* in this shadow page.
+*/
+   DECLARE_BITMAP(slot_bitmap, KVM_MEMORY_SLOTS + KVM_PRIVATE_MEM_SLOTS);
int multimapped; /* More than one parent_pte? */
int root_count;  /* Currently serving as active root */
bool unsync;
-- 
1.5.4.5

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


Re: kvm/ia64: Fix halt emulation logic.

2008-10-16 Thread Avi Kivity

Zhang, Xiantao wrote:
Attached the updated one. Thanks! 
Xiantao

From 8d827b19ba03dee74edeb5e2bcc23bed7b9f38ea Mon Sep 17 00:00:00 2001
From: Xiantao Zhang [EMAIL PROTECTED]
Date: Thu, 16 Oct 2008 15:58:15 +0800
Subject: [PATCH] kvm/ia64: Fix halt emulation logic.

Common halt halding logic is changed by x86 side, this patch
fix it for ia64 side. Otherwise, guest may hang once configured
more than 2 vcpus.
  



Applied, and will queue for 2.6.28.

--
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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/1] kvm: fix wrong position of clean cscope

2008-10-16 Thread Sheng Yang
My fault...

Signed-off-by: Sheng Yang [EMAIL PROTECTED]
---
 Makefile |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/Makefile b/Makefile
index 6581679..64e296d 100644
--- a/Makefile
+++ b/Makefile
@@ -110,8 +110,8 @@ srpm:
 clean:
for i in $(if $(WANT_MODULE), kernel) user libkvm qemu libfdt; do \
make -C $$i clean; \
-   rm -f ./cscope.*
done
+   rm -f ./cscope.*
 
 distclean: clean
rm -f config.mak user/config.mak
-- 
1.5.4.5

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


Re: [PATCH 1/1] kvm: fix wrong position of clean cscope

2008-10-16 Thread Avi Kivity

Sheng Yang wrote:

My fault...

  


Applied, thanks.

--
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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: kvm/ia64: Fix halt emulation logic.

2008-10-16 Thread Zhang, Xiantao
Attached the updated one. Thanks! 
Xiantao
From 8d827b19ba03dee74edeb5e2bcc23bed7b9f38ea Mon Sep 17 00:00:00 2001
From: Xiantao Zhang [EMAIL PROTECTED]
Date: Thu, 16 Oct 2008 15:58:15 +0800
Subject: [PATCH] kvm/ia64: Fix halt emulation logic.

Common halt halding logic is changed by x86 side, this patch
fix it for ia64 side. Otherwise, guest may hang once configured
more than 2 vcpus.
Signed-off-by: Xiantao Zhang [EMAIL PROTECTED]
---
 arch/ia64/include/asm/kvm_host.h |3 +-
 arch/ia64/kvm/kvm-ia64.c |   72
+++---
 arch/ia64/kvm/kvm_fw.c   |9 -
 arch/ia64/kvm/process.c  |2 +-
 4 files changed, 46 insertions(+), 40 deletions(-)

diff --git a/arch/ia64/include/asm/kvm_host.h
b/arch/ia64/include/asm/kvm_host.h
index 85db124..b9e3c7f 100644
--- a/arch/ia64/include/asm/kvm_host.h
+++ b/arch/ia64/include/asm/kvm_host.h
@@ -365,7 +365,8 @@ struct kvm_vcpu_arch {
long itc_offset;
unsigned long itc_check;
unsigned long timer_check;
-   unsigned long timer_pending;
+   unsigned int timer_pending;
+   unsigned int timer_fired;
 
unsigned long vrr[8];
unsigned long ibr[8];
diff --git a/arch/ia64/kvm/kvm-ia64.c b/arch/ia64/kvm/kvm-ia64.c
index c0699f0..e66a3db 100644
--- a/arch/ia64/kvm/kvm-ia64.c
+++ b/arch/ia64/kvm/kvm-ia64.c
@@ -385,6 +385,7 @@ static int handle_global_purge(struct kvm_vcpu
*vcpu, struct kvm_run *kvm_run)
struct kvm *kvm = vcpu-kvm;
struct call_data call_data;
int i;
+
call_data.ptc_g_data = p-u.ptc_g_data;
 
for (i = 0; i  KVM_MAX_VCPUS; i++) {
@@ -418,33 +419,41 @@ int kvm_emulate_halt(struct kvm_vcpu *vcpu)
ktime_t kt;
long itc_diff;
unsigned long vcpu_now_itc;
-
unsigned long expires;
struct hrtimer *p_ht = vcpu-arch.hlt_timer;
unsigned long cyc_per_usec = local_cpu_data-cyc_per_usec;
struct vpd *vpd = to_host(vcpu-kvm, vcpu-arch.vpd);
 
-   vcpu_now_itc = ia64_getreg(_IA64_REG_AR_ITC) +
vcpu-arch.itc_offset;
+   if (irqchip_in_kernel(vcpu-kvm)) {
 
-   if (time_after(vcpu_now_itc, vpd-itm)) {
-   vcpu-arch.timer_check = 1;
-   return 1;
-   }
-   itc_diff = vpd-itm - vcpu_now_itc;
-   if (itc_diff  0)
-   itc_diff = -itc_diff;
+   vcpu_now_itc = ia64_getreg(_IA64_REG_AR_ITC) +
vcpu-arch.itc_offset;
 
-   expires = div64_u64(itc_diff, cyc_per_usec);
-   kt = ktime_set(0, 1000 * expires);
-   vcpu-arch.ht_active = 1;
-   hrtimer_start(p_ht, kt, HRTIMER_MODE_ABS);
+   if (time_after(vcpu_now_itc, vpd-itm)) {
+   vcpu-arch.timer_check = 1;
+   return 1;
+   }
+   itc_diff = vpd-itm - vcpu_now_itc;
+   if (itc_diff  0)
+   itc_diff = -itc_diff;
+
+   expires = div64_u64(itc_diff, cyc_per_usec);
+   kt = ktime_set(0, 1000 * expires);
+
+   down_read(vcpu-kvm-slots_lock);
+   vcpu-arch.ht_active = 1;
+   hrtimer_start(p_ht, kt, HRTIMER_MODE_ABS);
 
-   if (irqchip_in_kernel(vcpu-kvm)) {
vcpu-arch.mp_state = KVM_MP_STATE_HALTED;
kvm_vcpu_block(vcpu);
hrtimer_cancel(p_ht);
vcpu-arch.ht_active = 0;
 
+   if (test_and_clear_bit(KVM_REQ_UNHALT, vcpu-requests))
+   if (vcpu-arch.mp_state == KVM_MP_STATE_HALTED)
+   vcpu-arch.mp_state =
+   KVM_MP_STATE_RUNNABLE;
+   up_read(vcpu-kvm-slots_lock);
+
if (vcpu-arch.mp_state != KVM_MP_STATE_RUNNABLE)
return -EINTR;
return 1;
@@ -484,10 +493,6 @@ static int (*kvm_vti_exit_handlers[])(struct
kvm_vcpu *vcpu,
 static const int kvm_vti_max_exit_handlers =
 
sizeof(kvm_vti_exit_handlers)/sizeof(*kvm_vti_exit_handlers);
 
-static void kvm_prepare_guest_switch(struct kvm_vcpu *vcpu)
-{
-}
-
 static uint32_t kvm_get_exit_reason(struct kvm_vcpu *vcpu)
 {
struct exit_ctl_data *p_exit_data;
@@ -600,8 +605,6 @@ static int __vcpu_run(struct kvm_vcpu *vcpu, struct
kvm_run *kvm_run)
 
 again:
preempt_disable();
-
-   kvm_prepare_guest_switch(vcpu);
local_irq_disable();
 
if (signal_pending(current)) {
@@ -614,7 +617,7 @@ again:
 
vcpu-guest_mode = 1;
kvm_guest_enter();
-
+   down_read(vcpu-kvm-slots_lock);
r = vti_vcpu_run(vcpu, kvm_run);
if (r  0) {
local_irq_enable();
@@ -634,9 +637,8 @@ again:
 * But we need to prevent reordering, hence this barrier():
 */
barrier();
-
kvm_guest_exit();
-
+   up_read(vcpu-kvm-slots_lock);
preempt_enable();
 
r = kvm_handle_exit(kvm_run, vcpu);
@@ -673,6 +675,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu 

Re: [PATCH] qemu: qemu_fopen_fd: differentiate between reader and writer user

2008-10-16 Thread Uri Lublin

Avi Kivity wrote:

Uri Lublin wrote:


Weren't there some acks flowing back on the old protocol to let the 
source now things are fine?


There were, but there aren't now.  They don't improve reliability.



Why do you think they don't improve reliability ?
The Ack/Go messages catch the scenario where SRC finishes sending all 
its state, and DST have a problem loading that state. In that case SRC 
thinks migration was completed successfully (and stay in stopped 
mode), while DST exists.


The management tool is in contact with both, and can arbitrate.  Once it 
thinks both source and destination are in a good state, it can continue 
the destination and quit the source.




That is true, but in the case I mentioned above it would take the management 
tool some time (guest down time) to realize what happens, and to send cont to 
the SRC. With end-of-migration messages SRC discovers DST fails and immediately 
continues.
I agree those messages add some complexity, and slow things a bit for the 
good/average case.

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


Re: kvm/ia64: Fix halt emulation logic.

2008-10-16 Thread Avi Kivity

Zhang, Xiantao wrote:
Hi, Avi 
	This is the key fix for 2.6.28 merge. Without this patch, guest

may hang once configured with more than 2 vcpus, it is because x86 side
changed the halt handling's common logic, but it misses to change ia64
side. 
  



@@ -398,8 +400,11 @@ static int handle_global_purge(struct kvm_vcpu
*vcpu, struct kvm_run *kvm_run)
 
 		if (kvm-vcpus[i]-cpu != -1) {

call_data.vcpu = kvm-vcpus[i];
-   smp_call_function_single(kvm-vcpus[i]-cpu,
+   if (kvm-vcpus[i]-cpu != smp_processor_id())
+
smp_call_function_single(kvm-vcpus[i]-cpu,
vcpu_global_purge, call_data,
1);
+   else
+   vcpu_global_purge(call_data);
  


smp_call_function_single() will call the function on the current cpu if 
instructed, so this change is unneeded.


--
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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[ kvm-Bugs-2171940 ] SCSI: Windows (XP) Full Format fails to complete on SCSI

2008-10-16 Thread SourceForge.net
Bugs item #2171940, was opened at 2008-10-16 16:59
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detailatid=893831aid=2171940group_id=180599

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Technologov (technologov)
Assigned to: Nobody/Anonymous (nobody)
Summary: SCSI: Windows (XP) Full Format fails to complete on SCSI

Initial Comment:
Basically Full Format fails on SCSI disk.

Tested on:
KVM 60-x series up to KVM-77 

Host: F7/x64, Intel CPU
KVM: KVM-77
Guest OS: Windows XP, 32-bit

Quick format succeeds and OS can be installed only that way.

Since Linux uses quick format, and does not have Full Format capability AFAIK, 
Linux guests can be installed successfully.

Qemu command:
/usr/local/bin/qemu-system-x86_64 -m 256 -cdrom 
/isos/windows/WindowsXP-sp2-vlk.iso -boot d -drive 
file=/vm/xp-scsi-test.qcow2,if=scsi,boot=on -name WindowsXP-scsi-test

-Alexey Technologov, 16.10.2008.

--

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detailatid=893831aid=2171940group_id=180599
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[ kvm-Bugs-2088475 ] OpenSuse10.2 can not be installed

2008-10-16 Thread SourceForge.net
Bugs item #2088475, was opened at 2008-09-02 11:37
Message generated for change (Comment added) made by technologov
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detailatid=893831aid=2088475group_id=180599

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Jiajun Xu (jiajun)
Assigned to: Nobody/Anonymous (nobody)
Summary: OpenSuse10.2 can not be installed

Initial Comment:
OpenSuse10.2 can not be installed on KVM. Installer will stop after loading 
ISOLinux.
It is against latest kvm comit, kvm.git 
:5b9207ec01681337786c7898ffc0165ec4e7c2e4
userspace.git :5f2a9719f105e29fbde4529cf919a5351b05da9a.


--

Comment By: Technologov (technologov)
Date: 2008-10-16 17:04

Message:
Known issue:
https://sourceforge.net/tracker/index.php?func=detailaid=1760424group_id=180599atid=893831

This bug is duplicate.

--

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detailatid=893831aid=2088475group_id=180599
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[patch] kvm-userland - raise max vcpus to 256 for ia64

2008-10-16 Thread Jes Sorensen

Hi,

We can now boot upto 60 vcpus on ia64, but thats just the beginning.
Would you please add this one to the kvm-userland tree.

Thanks,
Jes

Raise max number of vcpus for ia64 to 256.

Signed-off-by: Jes Sorensen [EMAIL PROTECTED]

---
 libkvm/kvm-common.h |   11 +++
 qemu/vl.c   |2 +-
 2 files changed, 8 insertions(+), 5 deletions(-)

Index: kvm-userspace.git/libkvm/kvm-common.h
===
--- kvm-userspace.git.orig/libkvm/kvm-common.h
+++ kvm-userspace.git/libkvm/kvm-common.h
@@ -18,13 +18,16 @@
 
 /* FIXME: share this number with kvm */
 /* FIXME: or dynamically alloc/realloc regions */
-#ifndef __s390__
-#define KVM_MAX_NUM_MEM_REGIONS 32u
-#define MAX_VCPUS 16
-#else
+#ifdef __s390__
 #define KVM_MAX_NUM_MEM_REGIONS 1u
 #define MAX_VCPUS 64
 #define LIBKVM_S390_ORIGIN (0UL)
+#elif __ia64__
+#define KVM_MAX_NUM_MEM_REGIONS 32u
+#define MAX_VCPUS 256
+#else
+#define KVM_MAX_NUM_MEM_REGIONS 32u
+#define MAX_VCPUS 16
 #endif
 
 
Index: kvm-userspace.git/qemu/vl.c
===
--- kvm-userspace.git.orig/qemu/vl.c
+++ kvm-userspace.git/qemu/vl.c
@@ -224,7 +224,7 @@
 #elif defined(TARGET_I386)
 #define MAX_CPUS 255
 #elif defined(TARGET_IA64)
-#define MAX_CPUS 4
+#define MAX_CPUS 256
 #else
 #define MAX_CPUS 1
 #endif


Re: [PATCH] qemu: qemu_fopen_fd: differentiate between reader and writer user

2008-10-16 Thread Uri Lublin

Anthony Liguori wrote:

Uri Lublin wrote:

Anthony Liguori wrote:


I have already cut your text, but I don't understand the comment about 
not being full duplex.  Is there a reason why migration needs to be 
bidirectional?  I don't think there's a fundamental reason it needs to 
be and I think there are some advantages to it being unidirectional.




Avi was concerned that my patch makes QEMUFile uni-directional, so I assumed you 
are trying to fix that too. Unidirectional-only usage of QEMUFile was working. 
The problem was that the fd implementation registered both get_buffer and 
put_buffer. If you never register both non-NULL get_buffer and put_buffer 
(unidirectional), then you do not need the is_write field.


Adding the error checking is valuable.

Thanks,
Uri.
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH][RFC] Prepare virtio for upstream QEMU merging

2008-10-16 Thread Avi Kivity

Anthony Liguori wrote:


But that will require refactoring a lot of these optimizations.  In 
order to do that right, they need to be presented on qemu-devel.  
It's a whole lot easier to do that incrementally so that people can 
digest it all instead of blasting a big series.


Can you elaborate?  Which interfaces will need rework, and why?


Last time I tried, virtio-net doesn't work with slirp.  I believe it's 
either because of the GSO changes (unlikely) or because of the 
can_receive changes (more likely).  The can_receive changes probably 
need some refactoring to be more slirp friendly.  The GSO changes are 
a bit vlan unfriendly.


Right now, you could construct something like -net tap -net 
nic,model=virtio -net model=e1000.  e1000 doesn't support GSO and bad 
things will happen from this.  It's very centric to the single-nic, 
single-host driver model.  Also,  exposing something like 
tap_has_vnet_hdr() to the actual network cards violates the layering.  
The network cards shouldn't have any knowledge of what types of host 
drivers there are, just what features a particular VLAN supports.


It's also unclear how you handle things like NIC hot-plug.  What if 
you add a nic that doesn't support GSO to a VLAN that is using GSO?  
What about migration?  What if you migrate from a host that has GSO 
support to a host that doesn't support GSO?  This later problem is 
hard and would require either a feature renegotiation mechanism in 
virtio or software implementation of GSO within QEMU.


Okay, we can go along with mangling the current virtio implementation 
like you proposed.


--
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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Handle INIT before SIPI.

2008-10-16 Thread Gleb Natapov

Handle INIT before SIPI.

If SIPI was issued before CPU handled INIT signal the CPU is not reseted.

Signed-off-by: Gleb Natapov [EMAIL PROTECTED]

diff --git a/qemu/qemu-kvm.c b/qemu/qemu-kvm.c
index 577f2b2..dae05b0 100644
--- a/qemu/qemu-kvm.c
+++ b/qemu/qemu-kvm.c
@@ -349,13 +349,20 @@ static void update_regs_for_sipi(CPUState *env)
 {
 kvm_arch_update_regs_for_sipi(env);
 vcpu_info[env-cpu_index].sipi_needed = 0;
-vcpu_info[env-cpu_index].init = 0;
 }
 
 static void update_regs_for_init(CPUState *env)
 {
+SegmentCache cs = env-segs[R_CS];
+
 cpu_reset(env);
+
+/* restore SIPI vector */
+if(vcpu_info[env-cpu_index].sipi_needed)
+env-segs[R_CS] = cs;
+
 kvm_arch_load_regs(env);
+vcpu_info[env-cpu_index].init = 0;
 }
 
 static void setup_kernel_sigmask(CPUState *env)
@@ -411,10 +418,12 @@ static int kvm_main_loop_cpu(CPUState *env)
kvm_main_loop_wait(env, 1000);
if (env-interrupt_request  (CPU_INTERRUPT_HARD | CPU_INTERRUPT_NMI))
env-halted = 0;
-   if (!kvm_irqchip_in_kernel(kvm_context)  info-sipi_needed)
-   update_regs_for_sipi(env);
-   if (!kvm_irqchip_in_kernel(kvm_context)  info-init)
-   update_regs_for_init(env);
+if (!kvm_irqchip_in_kernel(kvm_context)) {
+   if (info-init)
+   update_regs_for_init(env);
+   if (info-sipi_needed)
+   update_regs_for_sipi(env);
+}
if (!env-halted  !info-init)
kvm_cpu_exec(env);
env-interrupt_request = ~CPU_INTERRUPT_EXIT;
--
Gleb.
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[ kvm-Bugs-2088475 ] OpenSuse10.2 can not be installed

2008-10-16 Thread SourceForge.net
Bugs item #2088475, was opened at 2008-09-02 01:37
Message generated for change (Comment added) made by jiajun
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detailatid=893831aid=2088475group_id=180599

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Jiajun Xu (jiajun)
Assigned to: Nobody/Anonymous (nobody)
Summary: OpenSuse10.2 can not be installed

Initial Comment:
OpenSuse10.2 can not be installed on KVM. Installer will stop after loading 
ISOLinux.
It is against latest kvm comit, kvm.git 
:5b9207ec01681337786c7898ffc0165ec4e7c2e4
userspace.git :5f2a9719f105e29fbde4529cf919a5351b05da9a.


--

Comment By: Jiajun Xu (jiajun)
Date: 2008-10-16 08:23

Message:
From the bug description, opensuse11.0 should work?
And we did not meet guest crash when installation, guest hangs when
loading grub and no any error messages printed.

--

Comment By: Technologov (technologov)
Date: 2008-10-16 08:04

Message:
Known issue:
https://sourceforge.net/tracker/index.php?func=detailaid=1760424group_id=180599atid=893831

This bug is duplicate.

--

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detailatid=893831aid=2088475group_id=180599
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: problem with pxe boot off private bridge

2008-10-16 Thread Steve Ofsthun
Stephen Dennis wrote:
 Hello
 
 My aim is to have a VM with 2 network interfaces, one bridged to the outside
 world and the other bridged on a private network.  From the private interface
 this VM runs DHCP and PXE services to start and install VM's which have one
 network interface tapped on the private bridge.
 
 All machines are centos or ubuntu guests.
 
 I confirm that simply starting a linux guest that used the private bridge to
 get a dhcp address works fine.
 
 However, using a pxe capable boot rom, dhcp fails.  I have confirmed the
 dhcp request and offer appear on both tap interfaces and the intervening
 bridge interface.

Make sure no checksum offload optimizations are causing trouble.  We had a 
similar problem on Xen where checksums were only generated when packets left 
through the real NIC.  Check the PXE server setup, to make sure the DHCP/PXE 
packets are being checksummed properly on the private network.

Steve

 I also confirm that the pxe capable boot rom works if its using the bridge
 to the external network.
 
 I have tried all the pxe boot roms available with the exact same result.
 
 This could be a networking configuration problem or perhaps a bug somewhere
 in the nic emulation or boot rom.
 
 Any ideas for further diagnostics or solutions appreciated.
 
 More config information below.
 
 Thanks
 Stephen
 
 kvm -no-reboot -m 1000 -boot c  \
 -hda ux-head.img \
 -net nic,vlan=0,macaddr=DE:AD:BE:EF:7d:e4 -net
 tap,vlan=0,ifname=tap0 \
 -net nic,vlan=1,macaddr=DE:AD:BE:EF:7d:e5 -net tap,vlan=1,ifname=tap1
 
 kvm -no-reboot -m 1000 -boot n  \
 -hda ux-node-1.img \
 -net nic,vlan=1,macaddr=DE:AD:BE:EF:7d:e6,model=ne2k_pci \
 -net tap,vlan=1,ifname=tap2
 
 QEMU PC emulator version 0.9.1 (kvm-62), Copyright (c) 2003-2008 Fabrice
 Bellard
 On Ubuntu 8.04
 Linux x2 2.6.24-19-generic #1 SMP Wed Aug 20 17:53:40 UTC 2008 x86_64
 GNU/Linux
 
 br0   Link encap:Ethernet  HWaddr 00:22:15:1e:7d:e4
   inet addr:172.16.198.251  Bcast:172.16.198.255  Mask:255.255.255.0
   inet6 addr: fe80::222:15ff:fe1e:7de4/64 Scope:Link
   UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
   RX packets:61406 errors:0 dropped:0 overruns:0 frame:0
   TX packets:373150 errors:0 dropped:0 overruns:0 carrier:0
   collisions:0 txqueuelen:0
   RX bytes:3677008 (3.5 MB)  TX bytes:536494463 (511.6 MB)
 
 br1   Link encap:Ethernet  HWaddr 00:ff:1e:0d:da:5d
   inet6 addr: fe80::2ff:1eff:fe0d:da5d/64 Scope:Link
   UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
   RX packets:110 errors:0 dropped:0 overruns:0 frame:0
   TX packets:493 errors:0 dropped:0 overruns:0 carrier:0
   collisions:0 txqueuelen:0
   RX bytes:27599 (26.9 KB)  TX bytes:119935 (117.1 KB)
 
 br1:avahi Link encap:Ethernet  HWaddr 00:ff:1e:0d:da:5d
   inet addr:169.254.6.156  Bcast:169.254.255.255  Mask:255.255.0.0
   UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
 
 eth0  Link encap:Ethernet  HWaddr 00:22:15:1e:7d:e4
   inet6 addr: fe80::222:15ff:fe1e:7de4/64 Scope:Link
   UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
   RX packets:61512 errors:0 dropped:0 overruns:0 frame:0
   TX packets:373396 errors:0 dropped:0 overruns:0 carrier:0
   collisions:0 txqueuelen:1000
   RX bytes:4803323 (4.5 MB)  TX bytes:538013422 (513.0 MB)
   Interrupt:16
 
 eth1  Link encap:Ethernet  HWaddr 00:22:15:1e:7e:d4
   UP BROADCAST MULTICAST  MTU:1500  Metric:1
   RX packets:0 errors:0 dropped:0 overruns:0 frame:0
   TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
   collisions:0 txqueuelen:1000
   RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
   Interrupt:17
 
 loLink encap:Local Loopback
   inet addr:127.0.0.1  Mask:255.0.0.0
   inet6 addr: ::1/128 Scope:Host
   UP LOOPBACK RUNNING  MTU:16436  Metric:1
   RX packets:39299 errors:0 dropped:0 overruns:0 frame:0
   TX packets:39299 errors:0 dropped:0 overruns:0 carrier:0
   collisions:0 txqueuelen:0
   RX bytes:512377716 (488.6 MB)  TX bytes:512377716 (488.6 MB)
 
 tap0  Link encap:Ethernet  HWaddr 00:ff:82:b4:0a:dc
   inet6 addr: fe80::2ff:82ff:feb4:adc/64 Scope:Link
   UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
   RX packets:249 errors:0 dropped:0 overruns:0 frame:0
   TX packets:223 errors:0 dropped:289 overruns:0 carrier:0
   collisions:0 txqueuelen:500
   RX bytes:23823 (23.2 KB)  TX bytes:33914 (33.1 KB)
 
 tap1  Link encap:Ethernet  HWaddr 00:ff:77:d3:db:4b
   inet6 addr: fe80::2ff:77ff:fed3:db4b/64 Scope:Link
   UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
   RX packets:90 errors:0 dropped:0 overruns:0 frame:0
   TX packets:80 errors:0 dropped:436 overruns:0 carrier:0

[ kvm-Bugs-2171940 ] SCSI: Windows (XP) Full Format fails to complete on SCSI

2008-10-16 Thread SourceForge.net
Bugs item #2171940, was opened at 2008-10-16 16:59
Message generated for change (Comment added) made by lvivier
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detailatid=893831aid=2171940group_id=180599

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Technologov (technologov)
Assigned to: Nobody/Anonymous (nobody)
Summary: SCSI: Windows (XP) Full Format fails to complete on SCSI

Initial Comment:
Basically Full Format fails on SCSI disk.

Tested on:
KVM 60-x series up to KVM-77 

Host: F7/x64, Intel CPU
KVM: KVM-77
Guest OS: Windows XP, 32-bit

Quick format succeeds and OS can be installed only that way.

Since Linux uses quick format, and does not have Full Format capability AFAIK, 
Linux guests can be installed successfully.

Qemu command:
/usr/local/bin/qemu-system-x86_64 -m 256 -cdrom 
/isos/windows/WindowsXP-sp2-vlk.iso -boot d -drive 
file=/vm/xp-scsi-test.qcow2,if=scsi,boot=on -name WindowsXP-scsi-test

-Alexey Technologov, 16.10.2008.

--

Comment By: Laurent Vivier (lvivier)
Date: 2008-10-16 17:36

Message:
latest KVM introduces latest qemu.
In this release of qemu SCSI commandz return status has been corrected, so
unimplemented commands were silently ignored whereas now they return
errors.
The solution is easy: modify the code to ignore the faulty SCSI command, I
did this for instance for VERIFY.
Could you activate debug in hw/scsi-disk.c and send me logs ?

--

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detailatid=893831aid=2171940group_id=180599
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: kvm hangs when rebooting a guest VM

2008-10-16 Thread Bernhard Schmidt
Bernhard Schmidt [EMAIL PROTECTED] wrote:

 I have a small but annoying issue.

 Host:
 * AMD Athlon64
 * Debian Lenny, Kernel 2.6.26-1-amd64
 * kvm-72 (Debian package) or kvm-76 (self-built)

 Guest:
 * monolithic vanilla 2.6.26, KVM_GUEST and KVM_CLOCK, VIRTIO for both
   block device and NIC
 * various Debian and Ubuntu versions

 I don't use any libvirt or similar things, I start the VMs by directly
 calling kvm in a script. I directly specify the kernel and it's options
 with the -kernel and -append parameters.

 Problem:
 Shutting down a VM from inside it (shutdown -h now) works just fine.

 Will now halt.
 [171368.812319] ACPI: Preparing to enter system sleep state S5
 [171368.816964] Power down.
 [171368.820177] acpi_power_off called

 then the kvm process exits. However, restarting the VM (reboot) does not
 work ...

 Will now restart.
 [   37.088270] Restarting system.
 [   37.089775] machine restart

 this is where the KVM process hangs in a loop and uses 100% CPU on the
 host. I can still kill it (Ctrl-A x) or change to it's console, but
 system_restart doesn't seem to work there either.

 iggy suggested to use an extboot.bin from an earlier kvm version (I used
 kvm-60), didn't change.

 Any idea what could be wrong here?

Noone with an idea here? I've upgraded to kvm-77 and Linux 2.6.27 for
both host and guest in the meantime (and moved from an AMD AM2-box to an
Intel Dualcore Xeon platform), still no change.

Bernhard

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


KVM can't install Windows

2008-10-16 Thread Bill Davidsen
I need a Win98SE VM to do some software testing and support. Unfortunately KVM 
seems to not be able to run 98SE, although it runs a bunch of more recent 
Windows versions I can't use for this. I really don't want to support multiple 
VM servers, and there is pressure to go to VISTA and VMware.


Base is a small server with Intel quad core 2.66GHz CPU, 8GB memory, and 2TB 
SATA. FC9, fully patched, 32 bit PATA kernel. Running some FC4, CentOS, and 
DragonFly machines for various services.


Someone have a pointer to some docs or something?

--
Bill Davidsen [EMAIL PROTECTED]
  We have more to fear from the bungling of the incompetent than from
the machinations of the wicked.  - from Slashdot

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


Re: KVM can't install Windows

2008-10-16 Thread Charles Duffy

Bill Davidsen wrote:
I need a Win98SE VM to do some software testing and support. 
Unfortunately KVM seems to not be able to run 98SE, although it runs a 
bunch of more recent Windows versions I can't use for this. I really 
don't want to support multiple VM servers, and there is pressure to go 
to VISTA and VMware.


Lots of folks here have used KVM with recent Windows guests 
successfully, myself included. Could you be more explicit about what is 
going wrong, other than it dosen't work? Knowing which KVM release 
you're using (and which kernel) would be a Good Thing as well.


See whether your guest/version combination is expected to work at 
http://kvm.qumranet.com/kvmwiki/Guest_Support_Status


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


Re: [PATCH] qemu: qemu_fopen_fd: differentiate between reader and writer user

2008-10-16 Thread Anthony Liguori

Uri Lublin wrote:


That is true, but in the case I mentioned above it would take the 
management tool some time (guest down time) to realize what happens, 
and to send cont to the SRC. With end-of-migration messages SRC 
discovers DST fails and immediately continues.
I agree those messages add some complexity, and slow things a bit for 
the good/average case.


It's the classic general's dilemma.  If SRC waits for DST to send an 
ACK, DST still doesn't know whether SRC received the ACK so it doesn't 
know whether it's truly safe to continue.


This is why migration doesn't quit SRC immediately, and leaves SRC in 
the stopped state.  It's because the only safe way to handle this is 
with a third party that is reliable.


Regards,

Anthony Liguori
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html