public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] mask out clflush
@ 2008-07-08 18:29 Glauber Costa
  2008-07-08 19:34 ` Anthony Liguori
                   ` (2 more replies)
  0 siblings, 3 replies; 16+ messages in thread
From: Glauber Costa @ 2008-07-08 18:29 UTC (permalink / raw)
  To: kvm; +Cc: glommer, avi

clflush is a non-privileged instruction that flushes the cacheline
given by its parameter, in terms of linear address. As it is non-privileged,
it is quite tricky, because a guest doing clflush will actually be trying to
flush a host kernel address.

Signed-off-by: Glauber Costa <gcosta@redhat.com>
---
 qemu/qemu-kvm-x86.c |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/qemu/qemu-kvm-x86.c b/qemu/qemu-kvm-x86.c
index 5daedd1..7f90fc2 100644
--- a/qemu/qemu-kvm-x86.c
+++ b/qemu/qemu-kvm-x86.c
@@ -505,13 +505,17 @@ static void do_cpuid_ent(struct kvm_cpuid_entry *e, uint32_t function,
 	e->ecx = bcd[1];
 	e->edx = bcd[2];
     }
-    // "Hypervisor present" bit for Microsoft guests
-    if (function == 1)
-	e->ecx |= (1u << 31);
+
+    if (function == 1) {
+        // "Hypervisor present" bit for Microsoft guests
+        e->ecx |= (1u << 31);
+        e->edx &= ~(1u << 19);
+    }
 
     // 3dnow isn't properly emulated yet
     if (function == 0x80000001)
-	e->edx &= ~0xc0000000;
+        e->edx &= ~0xc0000000;
+
 }
 
 struct kvm_para_features {
-- 
1.5.5.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH] mask out clflush
  2008-07-08 18:29 [PATCH] mask out clflush Glauber Costa
@ 2008-07-08 19:34 ` Anthony Liguori
  2008-07-08 20:01   ` Glauber Costa
  2008-07-10 10:43 ` Yang, Sheng
  2008-07-10 14:16 ` Avi Kivity
  2 siblings, 1 reply; 16+ messages in thread
From: Anthony Liguori @ 2008-07-08 19:34 UTC (permalink / raw)
  To: Glauber Costa; +Cc: kvm, glommer, avi

Glauber Costa wrote:
> clflush is a non-privileged instruction that flushes the cacheline
> given by its parameter, in terms of linear address. As it is non-privileged,
> it is quite tricky, because a guest doing clflush will actually be trying to
> flush a host kernel address.
>   

Is this the case still with NPT/EPT?

Regards,

Anthony Liguori

> Signed-off-by: Glauber Costa <gcosta@redhat.com>
> ---
>  qemu/qemu-kvm-x86.c |   12 ++++++++----
>  1 files changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/qemu/qemu-kvm-x86.c b/qemu/qemu-kvm-x86.c
> index 5daedd1..7f90fc2 100644
> --- a/qemu/qemu-kvm-x86.c
> +++ b/qemu/qemu-kvm-x86.c
> @@ -505,13 +505,17 @@ static void do_cpuid_ent(struct kvm_cpuid_entry *e, uint32_t function,
>  	e->ecx = bcd[1];
>  	e->edx = bcd[2];
>      }
> -    // "Hypervisor present" bit for Microsoft guests
> -    if (function == 1)
> -	e->ecx |= (1u << 31);
> +
> +    if (function == 1) {
> +        // "Hypervisor present" bit for Microsoft guests
> +        e->ecx |= (1u << 31);
> +        e->edx &= ~(1u << 19);
> +    }
>  
>      // 3dnow isn't properly emulated yet
>      if (function == 0x80000001)
> -	e->edx &= ~0xc0000000;
> +        e->edx &= ~0xc0000000;
> +
>  }
>  
>  struct kvm_para_features {
>   


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] mask out clflush
  2008-07-08 19:34 ` Anthony Liguori
@ 2008-07-08 20:01   ` Glauber Costa
  0 siblings, 0 replies; 16+ messages in thread
From: Glauber Costa @ 2008-07-08 20:01 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: Glauber Costa, kvm, avi

On Tue, Jul 8, 2008 at 4:34 PM, Anthony Liguori <anthony@codemonkey.ws> wrote:
> Glauber Costa wrote:
>>
>> clflush is a non-privileged instruction that flushes the cacheline
>> given by its parameter, in terms of linear address. As it is
>> non-privileged,
>> it is quite tricky, because a guest doing clflush will actually be trying
>> to
>> flush a host kernel address.
>>
>
> Is this the case still with NPT/EPT?

Honestly don't know, and don't have the hardware to test. I don't know
exactly how NPT works. But probably isn't an issue. Do we have any
kind of mechanism to test for npt from userspace? A quick grep didn't
show me.

> Regards,
>
> Anthony Liguori
>
>> Signed-off-by: Glauber Costa <gcosta@redhat.com>
>> ---
>>  qemu/qemu-kvm-x86.c |   12 ++++++++----
>>  1 files changed, 8 insertions(+), 4 deletions(-)
>>
>> diff --git a/qemu/qemu-kvm-x86.c b/qemu/qemu-kvm-x86.c
>> index 5daedd1..7f90fc2 100644
>> --- a/qemu/qemu-kvm-x86.c
>> +++ b/qemu/qemu-kvm-x86.c
>> @@ -505,13 +505,17 @@ static void do_cpuid_ent(struct kvm_cpuid_entry *e,
>> uint32_t function,
>>        e->ecx = bcd[1];
>>        e->edx = bcd[2];
>>     }
>> -    // "Hypervisor present" bit for Microsoft guests
>> -    if (function == 1)
>> -       e->ecx |= (1u << 31);
>> +
>> +    if (function == 1) {
>> +        // "Hypervisor present" bit for Microsoft guests
>> +        e->ecx |= (1u << 31);
>> +        e->edx &= ~(1u << 19);
>> +    }
>>       // 3dnow isn't properly emulated yet
>>     if (function == 0x80000001)
>> -       e->edx &= ~0xc0000000;
>> +        e->edx &= ~0xc0000000;
>> +
>>  }
>>   struct kvm_para_features {
>>
>
>



-- 
Glauber Costa.
"Free as in Freedom"
http://glommer.net

"The less confident you are, the more serious you have to act."

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] mask out clflush
  2008-07-08 18:29 [PATCH] mask out clflush Glauber Costa
  2008-07-08 19:34 ` Anthony Liguori
@ 2008-07-10 10:43 ` Yang, Sheng
  2008-07-10 13:30   ` Anthony Liguori
  2008-07-10 14:16 ` Avi Kivity
  2 siblings, 1 reply; 16+ messages in thread
From: Yang, Sheng @ 2008-07-10 10:43 UTC (permalink / raw)
  To: kvm; +Cc: Glauber Costa, glommer, avi

On Wednesday 09 July 2008 02:29:44 Glauber Costa wrote:
> clflush is a non-privileged instruction that flushes the cacheline
> given by its parameter, in terms of linear address. As it is
> non-privileged, it is quite tricky, because a guest doing clflush
> will actually be trying to flush a host kernel address.

The linear address was convert to host physical address, then cache 
line was flushed. Of course the host physical address was used by 
guest at the time. I don't understand why we need to prevent guest 
from flushing cache line related to itself...

--
Thanks
Yang, Sheng

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] mask out clflush
  2008-07-10 10:43 ` Yang, Sheng
@ 2008-07-10 13:30   ` Anthony Liguori
  2008-07-10 13:34     ` Avi Kivity
  0 siblings, 1 reply; 16+ messages in thread
From: Anthony Liguori @ 2008-07-10 13:30 UTC (permalink / raw)
  To: Yang, Sheng; +Cc: kvm, Glauber Costa, glommer, avi

Yang, Sheng wrote:
> On Wednesday 09 July 2008 02:29:44 Glauber Costa wrote:
>   
>> clflush is a non-privileged instruction that flushes the cacheline
>> given by its parameter, in terms of linear address. As it is
>> non-privileged, it is quite tricky, because a guest doing clflush
>> will actually be trying to flush a host kernel address.
>>     
>
> The linear address was convert to host physical address, then cache 
> line was flushed. Of course the host physical address was used by 
> guest at the time. I don't understand why we need to prevent guest 
> from flushing cache line related to itself...
>   

The problem turned out to be that we aren't emulating clflush in 
x86_emulate.

Regards,

Anthony Liguori

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


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] mask out clflush
  2008-07-10 13:30   ` Anthony Liguori
@ 2008-07-10 13:34     ` Avi Kivity
  2008-07-10 13:37       ` Anthony Liguori
  0 siblings, 1 reply; 16+ messages in thread
From: Avi Kivity @ 2008-07-10 13:34 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: Yang, Sheng, kvm, Glauber Costa, glommer

Anthony Liguori wrote:
> Yang, Sheng wrote:
>> On Wednesday 09 July 2008 02:29:44 Glauber Costa wrote:
>>  
>>> clflush is a non-privileged instruction that flushes the cacheline
>>> given by its parameter, in terms of linear address. As it is
>>> non-privileged, it is quite tricky, because a guest doing clflush
>>> will actually be trying to flush a host kernel address.
>>>     
>>
>> The linear address was convert to host physical address, then cache 
>> line was flushed. Of course the host physical address was used by 
>> guest at the time. I don't understand why we need to prevent guest 
>> from flushing cache line related to itself...
>>   
>
> The problem turned out to be that we aren't emulating clflush in 
> x86_emulate.
>

Why would clflush trap?  Is it called from real mode?

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


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] mask out clflush
  2008-07-10 13:34     ` Avi Kivity
@ 2008-07-10 13:37       ` Anthony Liguori
  2008-07-10 14:10         ` Avi Kivity
  0 siblings, 1 reply; 16+ messages in thread
From: Anthony Liguori @ 2008-07-10 13:37 UTC (permalink / raw)
  To: Avi Kivity; +Cc: Yang, Sheng, kvm, Glauber Costa, glommer

Avi Kivity wrote:
> Anthony Liguori wrote:
>> Yang, Sheng wrote:
>>> On Wednesday 09 July 2008 02:29:44 Glauber Costa wrote:
>>>  
>>>> clflush is a non-privileged instruction that flushes the cacheline
>>>> given by its parameter, in terms of linear address. As it is
>>>> non-privileged, it is quite tricky, because a guest doing clflush
>>>> will actually be trying to flush a host kernel address.
>>>>     
>>>
>>> The linear address was convert to host physical address, then cache 
>>> line was flushed. Of course the host physical address was used by 
>>> guest at the time. I don't understand why we need to prevent guest 
>>> from flushing cache line related to itself...
>>>   
>>
>> The problem turned out to be that we aren't emulating clflush in 
>> x86_emulate.
>>
>
> Why would clflush trap?  Is it called from real mode?

It's equivalent to a read from a VT perspective so if the read would 
trap, the clflush instruction will trap.

Regards,

Anthony Liguori


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] mask out clflush
  2008-07-10 13:37       ` Anthony Liguori
@ 2008-07-10 14:10         ` Avi Kivity
  2008-07-10 14:20           ` Anthony Liguori
  0 siblings, 1 reply; 16+ messages in thread
From: Avi Kivity @ 2008-07-10 14:10 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: Yang, Sheng, kvm, Glauber Costa, glommer

Anthony Liguori wrote:
>
> It's equivalent to a read from a VT perspective so if the read would 
> trap, the clflush instruction will trap.
>

Reads don't normally go through the emulator.  Is the guest clflush()ing 
mmio addresses?  Strange as these are not normally cached.


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


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] mask out clflush
  2008-07-08 18:29 [PATCH] mask out clflush Glauber Costa
  2008-07-08 19:34 ` Anthony Liguori
  2008-07-10 10:43 ` Yang, Sheng
@ 2008-07-10 14:16 ` Avi Kivity
  2 siblings, 0 replies; 16+ messages in thread
From: Avi Kivity @ 2008-07-10 14:16 UTC (permalink / raw)
  To: Glauber Costa; +Cc: kvm, glommer

Glauber Costa wrote:
> clflush is a non-privileged instruction that flushes the cacheline
> given by its parameter, in terms of linear address. As it is non-privileged,
> it is quite tricky, because a guest doing clflush will actually be trying to
> flush a host kernel address.
>   

We need to allow clflush for pci device assignment.

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


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] mask out clflush
  2008-07-10 14:10         ` Avi Kivity
@ 2008-07-10 14:20           ` Anthony Liguori
  2008-07-10 14:45             ` Glauber Costa
  0 siblings, 1 reply; 16+ messages in thread
From: Anthony Liguori @ 2008-07-10 14:20 UTC (permalink / raw)
  To: Avi Kivity; +Cc: Yang, Sheng, kvm, Glauber Costa, glommer

Avi Kivity wrote:
> Anthony Liguori wrote:
>>
>> It's equivalent to a read from a VT perspective so if the read would 
>> trap, the clflush instruction will trap.
>>
>
> Reads don't normally go through the emulator.  Is the guest 
> clflush()ing mmio addresses?  Strange as these are not normally cached.

It seems so, Glauber mentioned that the address was an MMIO address.

Regards,

Anthony Liguori


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] mask out clflush
  2008-07-10 14:20           ` Anthony Liguori
@ 2008-07-10 14:45             ` Glauber Costa
  2008-07-10 14:47               ` Avi Kivity
  0 siblings, 1 reply; 16+ messages in thread
From: Glauber Costa @ 2008-07-10 14:45 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: Avi Kivity, Yang, Sheng, kvm, Glauber Costa

On Thu, Jul 10, 2008 at 11:20 AM, Anthony Liguori <anthony@codemonkey.ws> wrote:
> Avi Kivity wrote:
>>
>> Anthony Liguori wrote:
>>>
>>> It's equivalent to a read from a VT perspective so if the read would
>>> trap, the clflush instruction will trap.
>>>
>>
>> Reads don't normally go through the emulator.  Is the guest clflush()ing
>> mmio addresses?  Strange as these are not normally cached.
>
> It seems so, Glauber mentioned that the address was an MMIO address.

yes. It is address 0xc8821000, apparently part of a pci controller
initialization.

> Regards,
>
> Anthony Liguori
>
>



-- 
Glauber Costa.
"Free as in Freedom"
http://glommer.net

"The less confident you are, the more serious you have to act."

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] mask out clflush
  2008-07-10 14:45             ` Glauber Costa
@ 2008-07-10 14:47               ` Avi Kivity
  2008-07-10 15:37                 ` Anthony Liguori
  0 siblings, 1 reply; 16+ messages in thread
From: Avi Kivity @ 2008-07-10 14:47 UTC (permalink / raw)
  To: Glauber Costa; +Cc: Anthony Liguori, Yang, Sheng, kvm, Glauber Costa

Glauber Costa wrote:
> On Thu, Jul 10, 2008 at 11:20 AM, Anthony Liguori <anthony@codemonkey.ws> wrote:
>   
>> Avi Kivity wrote:
>>     
>>> Anthony Liguori wrote:
>>>       
>>>> It's equivalent to a read from a VT perspective so if the read would
>>>> trap, the clflush instruction will trap.
>>>>
>>>>         
>>> Reads don't normally go through the emulator.  Is the guest clflush()ing
>>> mmio addresses?  Strange as these are not normally cached.
>>>       
>> It seems so, Glauber mentioned that the address was an MMIO address.
>>     
>
> yes. It is address 0xc8821000, apparently part of a pci controller
> initialization.
>   

qemu pci starts at 0xe0000000 IIRC.  So maybe the guest is flushing 
random addresses just to be annoying.

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


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] mask out clflush
  2008-07-10 14:47               ` Avi Kivity
@ 2008-07-10 15:37                 ` Anthony Liguori
  2008-07-10 15:39                   ` Avi Kivity
  0 siblings, 1 reply; 16+ messages in thread
From: Anthony Liguori @ 2008-07-10 15:37 UTC (permalink / raw)
  To: Avi Kivity; +Cc: Glauber Costa, Yang, Sheng, kvm, Glauber Costa

Avi Kivity wrote:
> Glauber Costa wrote:
>> On Thu, Jul 10, 2008 at 11:20 AM, Anthony Liguori 
>> <anthony@codemonkey.ws> wrote:
>>  
>>> Avi Kivity wrote:
>>>    
>>>> Anthony Liguori wrote:
>>>>      
>>>>> It's equivalent to a read from a VT perspective so if the read would
>>>>> trap, the clflush instruction will trap.
>>>>>
>>>>>         
>>>> Reads don't normally go through the emulator.  Is the guest 
>>>> clflush()ing
>>>> mmio addresses?  Strange as these are not normally cached.
>>>>       
>>> It seems so, Glauber mentioned that the address was an MMIO address.
>>>     
>>
>> yes. It is address 0xc8821000, apparently part of a pci controller
>> initialization.
>>   
>
> qemu pci starts at 0xe0000000 IIRC.  So maybe the guest is flushing 
> random addresses just to be annoying.

That's a virtual address, not a physical address IIUC.

Regards,

Anthony Liguori



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] mask out clflush
  2008-07-10 15:37                 ` Anthony Liguori
@ 2008-07-10 15:39                   ` Avi Kivity
  2008-07-10 20:18                     ` Glauber Costa
  0 siblings, 1 reply; 16+ messages in thread
From: Avi Kivity @ 2008-07-10 15:39 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: Glauber Costa, Yang, Sheng, kvm, Glauber Costa

Anthony Liguori wrote:
>>>
>>> yes. It is address 0xc8821000, apparently part of a pci controller
>>> initialization.
>>>   
>>
>> qemu pci starts at 0xe0000000 IIRC.  So maybe the guest is flushing 
>> random addresses just to be annoying.
>
> That's a virtual address, not a physical address IIUC.
>

Ah, of course.


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


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] mask out clflush
  2008-07-10 15:39                   ` Avi Kivity
@ 2008-07-10 20:18                     ` Glauber Costa
  2008-07-13  7:58                       ` Avi Kivity
  0 siblings, 1 reply; 16+ messages in thread
From: Glauber Costa @ 2008-07-10 20:18 UTC (permalink / raw)
  To: Avi Kivity; +Cc: Anthony Liguori, Yang, Sheng, kvm, Glauber Costa

[-- Attachment #1: Type: text/plain, Size: 618 bytes --]

On Thu, Jul 10, 2008 at 12:39 PM, Avi Kivity <avi@qumranet.com> wrote:
> Anthony Liguori wrote:
>>>>
>>>> yes. It is address 0xc8821000, apparently part of a pci controller
>>>> initialization.
>>>>
>>>
>>> qemu pci starts at 0xe0000000 IIRC.  So maybe the guest is flushing
>>> random addresses just to be annoying.
>>
>> That's a virtual address, not a physical address IIUC.
>>
>
> Ah, of course.

How's that one ?
>
> --
> error compiling committee.c: too many arguments to function
>
>



-- 
Glauber Costa.
"Free as in Freedom"
http://glommer.net

"The less confident you are, the more serious you have to act."

[-- Attachment #2: 0001-properly-decode-clflush.patch --]
[-- Type: application/octet-stream, Size: 1155 bytes --]

From 7f60c9c828c7907625f634baf740376bdee7726b Mon Sep 17 00:00:00 2001
From: Glauber Costa <gcosta@redhat.com>
Date: Thu, 10 Jul 2008 17:08:15 -0300
Subject: [PATCH] properly decode clflush

If the guest issues a clflush in a mmio address, the instruction
can trap into the hypervisor. Currently, we do not decode clflush
properly, causing the guest to hang. This patch fixes this by
adding the "ModRM" flag into position 0xAE of twobyte_table.

Signed-off-by: Glauber Costa <gcosta@redhat.com>
---
 arch/x86/kvm/x86_emulate.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/x86/kvm/x86_emulate.c b/arch/x86/kvm/x86_emulate.c
index 932f216..ee4cebf 100644
--- a/arch/x86/kvm/x86_emulate.c
+++ b/arch/x86/kvm/x86_emulate.c
@@ -215,7 +215,7 @@ static u16 twobyte_table[256] = {
 	/* 0xA0 - 0xA7 */
 	0, 0, 0, DstMem | SrcReg | ModRM | BitOp, 0, 0, 0, 0,
 	/* 0xA8 - 0xAF */
-	0, 0, 0, DstMem | SrcReg | ModRM | BitOp, 0, 0, 0, 0,
+	0, 0, 0, DstMem | SrcReg | ModRM | BitOp, 0, 0, ModRM, 0,
 	/* 0xB0 - 0xB7 */
 	ByteOp | DstMem | SrcReg | ModRM, DstMem | SrcReg | ModRM, 0,
 	    DstMem | SrcReg | ModRM | BitOp,
-- 
1.5.5.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH] mask out clflush
  2008-07-10 20:18                     ` Glauber Costa
@ 2008-07-13  7:58                       ` Avi Kivity
  0 siblings, 0 replies; 16+ messages in thread
From: Avi Kivity @ 2008-07-13  7:58 UTC (permalink / raw)
  To: Glauber Costa; +Cc: Anthony Liguori, Yang, Sheng, kvm, Glauber Costa

Glauber Costa wrote:
> On Thu, Jul 10, 2008 at 12:39 PM, Avi Kivity <avi@qumranet.com> wrote:
>   
>> Anthony Liguori wrote:
>>     
>>>>> yes. It is address 0xc8821000, apparently part of a pci controller
>>>>> initialization.
>>>>>
>>>>>           
>>>> qemu pci starts at 0xe0000000 IIRC.  So maybe the guest is flushing
>>>> random addresses just to be annoying.
>>>>         
>>> That's a virtual address, not a physical address IIUC.
>>>
>>>       
>> Ah, of course.
>>     
>
> How's that one ?
>   

It abuses the lack of a 'default:' statement in the switch.  I fixed 
that up and applied.

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


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2008-07-13  7:58 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-07-08 18:29 [PATCH] mask out clflush Glauber Costa
2008-07-08 19:34 ` Anthony Liguori
2008-07-08 20:01   ` Glauber Costa
2008-07-10 10:43 ` Yang, Sheng
2008-07-10 13:30   ` Anthony Liguori
2008-07-10 13:34     ` Avi Kivity
2008-07-10 13:37       ` Anthony Liguori
2008-07-10 14:10         ` Avi Kivity
2008-07-10 14:20           ` Anthony Liguori
2008-07-10 14:45             ` Glauber Costa
2008-07-10 14:47               ` Avi Kivity
2008-07-10 15:37                 ` Anthony Liguori
2008-07-10 15:39                   ` Avi Kivity
2008-07-10 20:18                     ` Glauber Costa
2008-07-13  7:58                       ` Avi Kivity
2008-07-10 14:16 ` Avi Kivity

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox