All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gleb Natapov <gleb@redhat.com>
To: Avi Kivity <avi@redhat.com>
Cc: kvm@vger.kernel.org, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org, mingo@elte.hu,
	a.p.zijlstra@chello.nl, tglx@linutronix.de, hpa@zytor.com,
	riel@redhat.com, cl@linux-foundation.org, mtosatti@redhat.com
Subject: Re: [PATCH v6 06/12] Add PV MSR to enable asynchronous page faults delivery.
Date: Thu, 7 Oct 2010 19:53:29 +0200	[thread overview]
Message-ID: <20101007175329.GF2397@redhat.com> (raw)
In-Reply-To: <4CADC01E.3060409@redhat.com>

On Thu, Oct 07, 2010 at 02:42:06PM +0200, Avi Kivity wrote:
>  On 10/04/2010 05:56 PM, Gleb Natapov wrote:
> >Guest enables async PF vcpu functionality using this MSR.
> >
> >  			return NON_PRESENT;
> >+
> >+MSR_KVM_ASYNC_PF_EN: 0x4b564d02
> >+	data: Bits 63-6 hold 64-byte aligned physical address of a 32bit memory
> 
> Given that it must be aligned anyway, we can require it to be a
> 64-byte region and also require that the guest zero it before
> writing the MSR.  That will give us a little more flexibility in the
> future.
> 
No code change needed, so OK.

> >+	area which must be in guest RAM. Bits 5-1 are reserved and should be
> >+	zero. Bit 0 is 1 when asynchronous page faults are enabled on the vcpu
> >+	0 when disabled.
> >+
> >+	Physical address points to 32 bit memory location that will be written
> >+	to by the hypervisor at the time of asynchronous page fault injection to
> >+	indicate type of asynchronous page fault. Value of 1 means that the page
> >+	referred to by the page fault is not present. Value 2 means that the
> >+	page is now available.
> >diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
> >index b9f263e..de31551 100644
> >--- a/arch/x86/include/asm/kvm_host.h
> >+++ b/arch/x86/include/asm/kvm_host.h
> >@@ -417,6 +417,8 @@ struct kvm_vcpu_arch {
> >
> >  	struct {
> >  		gfn_t gfns[roundup_pow_of_two(ASYNC_PF_PER_VCPU)];
> >+		struct gfn_to_hva_cache data;
> >+		u64 msr_val;
> >  	} apf;
> >  };
> >
> >diff --git a/arch/x86/include/asm/kvm_para.h b/arch/x86/include/asm/kvm_para.h
> >index e3faaaf..8662ae0 100644
> >--- a/arch/x86/include/asm/kvm_para.h
> >+++ b/arch/x86/include/asm/kvm_para.h
> >@@ -20,6 +20,7 @@
> >   * are available. The use of 0x11 and 0x12 is deprecated
> >   */
> >  #define KVM_FEATURE_CLOCKSOURCE2        3
> >+#define KVM_FEATURE_ASYNC_PF		4
> >
> >  /* The last 8 bits are used to indicate how to interpret the flags field
> >   * in pvclock structure. If no bits are set, all flags are ignored.
> >@@ -32,9 +33,12 @@
> >  /* Custom MSRs falls in the range 0x4b564d00-0x4b564dff */
> >  #define MSR_KVM_WALL_CLOCK_NEW  0x4b564d00
> >  #define MSR_KVM_SYSTEM_TIME_NEW 0x4b564d01
> >+#define MSR_KVM_ASYNC_PF_EN 0x4b564d02
> >
> >  #define KVM_MAX_MMU_OP_BATCH           32
> >
> >+#define KVM_ASYNC_PF_ENABLED			(1<<  0)
> >+
> >  /* Operations for KVM_HC_MMU_OP */
> >  #define KVM_MMU_OP_WRITE_PTE            1
> >  #define KVM_MMU_OP_FLUSH_TLB	        2
> >diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> >index 48fd59d..3e123ab 100644
> >--- a/arch/x86/kvm/x86.c
> >+++ b/arch/x86/kvm/x86.c
> >@@ -782,12 +782,12 @@ EXPORT_SYMBOL_GPL(kvm_get_dr);
> >   * kvm-specific. Those are put in the beginning of the list.
> >   */
> >
> >-#define KVM_SAVE_MSRS_BEGIN	7
> >+#define KVM_SAVE_MSRS_BEGIN	8
> >  static u32 msrs_to_save[] = {
> >  	MSR_KVM_SYSTEM_TIME, MSR_KVM_WALL_CLOCK,
> >  	MSR_KVM_SYSTEM_TIME_NEW, MSR_KVM_WALL_CLOCK_NEW,
> >  	HV_X64_MSR_GUEST_OS_ID, HV_X64_MSR_HYPERCALL,
> >-	HV_X64_MSR_APIC_ASSIST_PAGE,
> >+	HV_X64_MSR_APIC_ASSIST_PAGE, MSR_KVM_ASYNC_PF_EN,
> >  	MSR_IA32_SYSENTER_CS, MSR_IA32_SYSENTER_ESP, MSR_IA32_SYSENTER_EIP,
> >  	MSR_STAR,
> >  #ifdef CONFIG_X86_64
> >@@ -1425,6 +1425,29 @@ static int set_msr_hyperv(struct kvm_vcpu *vcpu, u32 msr, u64 data)
> >  	return 0;
> >  }
> >
> >+static int kvm_pv_enable_async_pf(struct kvm_vcpu *vcpu, u64 data)
> >+{
> >+	gpa_t gpa = data&  ~0x3f;
> >+
> >+	/* Bits 1:5 are resrved, Should be zero */
> >+	if (data&  0x3e)
> >+		return 1;
> >+
> >+	vcpu->arch.apf.msr_val = data;
> >+
> >+	if (!(data&  KVM_ASYNC_PF_ENABLED)) {
> >+		kvm_clear_async_pf_completion_queue(vcpu);
> 
> May be a lengthy synchronous operation.  I guess we don't care.
> 
> >+		memset(vcpu->arch.apf.gfns, 0xff, sizeof vcpu->arch.apf.gfns);
> 
> That memset again.
> 
> >+		return 0;
> >+	}
> >+
> >+	if (kvm_gfn_to_hva_cache_init(vcpu->kvm,&vcpu->arch.apf.data, gpa))
> >+		return 1;
> 
> Note: we need to handle the memory being removed from underneath
> kvm_gfn_to_hve_cache().  Given that, we can just make
> kvm_gfn_to_hva_cache_init() return void.  "success" means nothing
> when future changes can invalidate it.
> 
I want to catch guest doing stupid things. If guest give us non-existent
address I want wrmsr to #GP.

> >+
> >+	kvm_async_pf_wakeup_all(vcpu);
> 
> Why is this needed?  If all apfs are flushed at disable time, what
> do we need to wake up?
For migration. Destination will rewrite msr and all processes will be
waked up.

> 
> Need to list the MSR for save/restore/reset.
> 
> 
This patch adds it to msrs_to_save, no?

--
			Gleb.

WARNING: multiple messages have this Message-ID (diff)
From: Gleb Natapov <gleb@redhat.com>
To: Avi Kivity <avi@redhat.com>
Cc: kvm@vger.kernel.org, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org, mingo@elte.hu,
	a.p.zijlstra@chello.nl, tglx@linutronix.de, hpa@zytor.com,
	riel@redhat.com, cl@linux-foundation.org, mtosatti@redhat.com
Subject: Re: [PATCH v6 06/12] Add PV MSR to enable asynchronous page faults delivery.
Date: Thu, 7 Oct 2010 19:53:29 +0200	[thread overview]
Message-ID: <20101007175329.GF2397@redhat.com> (raw)
In-Reply-To: <4CADC01E.3060409@redhat.com>

On Thu, Oct 07, 2010 at 02:42:06PM +0200, Avi Kivity wrote:
>  On 10/04/2010 05:56 PM, Gleb Natapov wrote:
> >Guest enables async PF vcpu functionality using this MSR.
> >
> >  			return NON_PRESENT;
> >+
> >+MSR_KVM_ASYNC_PF_EN: 0x4b564d02
> >+	data: Bits 63-6 hold 64-byte aligned physical address of a 32bit memory
> 
> Given that it must be aligned anyway, we can require it to be a
> 64-byte region and also require that the guest zero it before
> writing the MSR.  That will give us a little more flexibility in the
> future.
> 
No code change needed, so OK.

> >+	area which must be in guest RAM. Bits 5-1 are reserved and should be
> >+	zero. Bit 0 is 1 when asynchronous page faults are enabled on the vcpu
> >+	0 when disabled.
> >+
> >+	Physical address points to 32 bit memory location that will be written
> >+	to by the hypervisor at the time of asynchronous page fault injection to
> >+	indicate type of asynchronous page fault. Value of 1 means that the page
> >+	referred to by the page fault is not present. Value 2 means that the
> >+	page is now available.
> >diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
> >index b9f263e..de31551 100644
> >--- a/arch/x86/include/asm/kvm_host.h
> >+++ b/arch/x86/include/asm/kvm_host.h
> >@@ -417,6 +417,8 @@ struct kvm_vcpu_arch {
> >
> >  	struct {
> >  		gfn_t gfns[roundup_pow_of_two(ASYNC_PF_PER_VCPU)];
> >+		struct gfn_to_hva_cache data;
> >+		u64 msr_val;
> >  	} apf;
> >  };
> >
> >diff --git a/arch/x86/include/asm/kvm_para.h b/arch/x86/include/asm/kvm_para.h
> >index e3faaaf..8662ae0 100644
> >--- a/arch/x86/include/asm/kvm_para.h
> >+++ b/arch/x86/include/asm/kvm_para.h
> >@@ -20,6 +20,7 @@
> >   * are available. The use of 0x11 and 0x12 is deprecated
> >   */
> >  #define KVM_FEATURE_CLOCKSOURCE2        3
> >+#define KVM_FEATURE_ASYNC_PF		4
> >
> >  /* The last 8 bits are used to indicate how to interpret the flags field
> >   * in pvclock structure. If no bits are set, all flags are ignored.
> >@@ -32,9 +33,12 @@
> >  /* Custom MSRs falls in the range 0x4b564d00-0x4b564dff */
> >  #define MSR_KVM_WALL_CLOCK_NEW  0x4b564d00
> >  #define MSR_KVM_SYSTEM_TIME_NEW 0x4b564d01
> >+#define MSR_KVM_ASYNC_PF_EN 0x4b564d02
> >
> >  #define KVM_MAX_MMU_OP_BATCH           32
> >
> >+#define KVM_ASYNC_PF_ENABLED			(1<<  0)
> >+
> >  /* Operations for KVM_HC_MMU_OP */
> >  #define KVM_MMU_OP_WRITE_PTE            1
> >  #define KVM_MMU_OP_FLUSH_TLB	        2
> >diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> >index 48fd59d..3e123ab 100644
> >--- a/arch/x86/kvm/x86.c
> >+++ b/arch/x86/kvm/x86.c
> >@@ -782,12 +782,12 @@ EXPORT_SYMBOL_GPL(kvm_get_dr);
> >   * kvm-specific. Those are put in the beginning of the list.
> >   */
> >
> >-#define KVM_SAVE_MSRS_BEGIN	7
> >+#define KVM_SAVE_MSRS_BEGIN	8
> >  static u32 msrs_to_save[] = {
> >  	MSR_KVM_SYSTEM_TIME, MSR_KVM_WALL_CLOCK,
> >  	MSR_KVM_SYSTEM_TIME_NEW, MSR_KVM_WALL_CLOCK_NEW,
> >  	HV_X64_MSR_GUEST_OS_ID, HV_X64_MSR_HYPERCALL,
> >-	HV_X64_MSR_APIC_ASSIST_PAGE,
> >+	HV_X64_MSR_APIC_ASSIST_PAGE, MSR_KVM_ASYNC_PF_EN,
> >  	MSR_IA32_SYSENTER_CS, MSR_IA32_SYSENTER_ESP, MSR_IA32_SYSENTER_EIP,
> >  	MSR_STAR,
> >  #ifdef CONFIG_X86_64
> >@@ -1425,6 +1425,29 @@ static int set_msr_hyperv(struct kvm_vcpu *vcpu, u32 msr, u64 data)
> >  	return 0;
> >  }
> >
> >+static int kvm_pv_enable_async_pf(struct kvm_vcpu *vcpu, u64 data)
> >+{
> >+	gpa_t gpa = data&  ~0x3f;
> >+
> >+	/* Bits 1:5 are resrved, Should be zero */
> >+	if (data&  0x3e)
> >+		return 1;
> >+
> >+	vcpu->arch.apf.msr_val = data;
> >+
> >+	if (!(data&  KVM_ASYNC_PF_ENABLED)) {
> >+		kvm_clear_async_pf_completion_queue(vcpu);
> 
> May be a lengthy synchronous operation.  I guess we don't care.
> 
> >+		memset(vcpu->arch.apf.gfns, 0xff, sizeof vcpu->arch.apf.gfns);
> 
> That memset again.
> 
> >+		return 0;
> >+	}
> >+
> >+	if (kvm_gfn_to_hva_cache_init(vcpu->kvm,&vcpu->arch.apf.data, gpa))
> >+		return 1;
> 
> Note: we need to handle the memory being removed from underneath
> kvm_gfn_to_hve_cache().  Given that, we can just make
> kvm_gfn_to_hva_cache_init() return void.  "success" means nothing
> when future changes can invalidate it.
> 
I want to catch guest doing stupid things. If guest give us non-existent
address I want wrmsr to #GP.

> >+
> >+	kvm_async_pf_wakeup_all(vcpu);
> 
> Why is this needed?  If all apfs are flushed at disable time, what
> do we need to wake up?
For migration. Destination will rewrite msr and all processes will be
waked up.

> 
> Need to list the MSR for save/restore/reset.
> 
> 
This patch adds it to msrs_to_save, no?

--
			Gleb.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2010-10-07 17:54 UTC|newest]

Thread overview: 176+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-04 15:56 [PATCH v6 00/12] KVM: Add host swap event notifications for PV guest Gleb Natapov
2010-10-04 15:56 ` Gleb Natapov
2010-10-04 15:56 ` [PATCH v6 01/12] Add get_user_pages() variant that fails if major fault is required Gleb Natapov
2010-10-04 15:56   ` Gleb Natapov
2010-10-04 15:56 ` [PATCH v6 02/12] Halt vcpu if page it tries to access is swapped out Gleb Natapov
2010-10-04 15:56   ` Gleb Natapov
2010-10-05  1:20   ` Rik van Riel
2010-10-05  1:20     ` Rik van Riel
2010-10-05 14:59   ` Marcelo Tosatti
2010-10-05 14:59     ` Marcelo Tosatti
2010-10-06 10:50     ` Avi Kivity
2010-10-06 10:50       ` Avi Kivity
2010-10-06 10:52       ` Gleb Natapov
2010-10-06 10:52         ` Gleb Natapov
2010-10-07  9:54         ` Avi Kivity
2010-10-07  9:54           ` Avi Kivity
2010-10-07 17:48           ` Gleb Natapov
2010-10-07 17:48             ` Gleb Natapov
2010-10-06 11:15     ` Gleb Natapov
2010-10-06 11:15       ` Gleb Natapov
2010-10-07  9:50   ` Avi Kivity
2010-10-07  9:50     ` Avi Kivity
2010-10-07  9:52     ` Avi Kivity
2010-10-07  9:52       ` Avi Kivity
2010-10-07 13:24     ` Rik van Riel
2010-10-07 13:24       ` Rik van Riel
2010-10-07 13:29       ` Avi Kivity
2010-10-07 13:29         ` Avi Kivity
2010-10-07 17:47     ` Gleb Natapov
2010-10-07 17:47       ` Gleb Natapov
2010-10-09 18:30       ` Avi Kivity
2010-10-09 18:30         ` Avi Kivity
2010-10-09 18:32         ` Avi Kivity
2010-10-09 18:32           ` Avi Kivity
2010-10-10  7:30           ` Gleb Natapov
2010-10-10  7:30             ` Gleb Natapov
2010-10-10  7:29         ` Gleb Natapov
2010-10-10  7:29           ` Gleb Natapov
2010-10-10 15:55           ` Avi Kivity
2010-10-10 15:55             ` Avi Kivity
2010-10-10 15:56             ` Avi Kivity
2010-10-10 15:56               ` Avi Kivity
2010-10-10 16:17               ` Gleb Natapov
2010-10-10 16:17                 ` Gleb Natapov
2010-10-10 16:16             ` Gleb Natapov
2010-10-10 16:16               ` Gleb Natapov
2010-10-04 15:56 ` [PATCH v6 03/12] Retry fault before vmentry Gleb Natapov
2010-10-04 15:56   ` Gleb Natapov
2010-10-05 15:54   ` Marcelo Tosatti
2010-10-05 15:54     ` Marcelo Tosatti
2010-10-06 11:07     ` Gleb Natapov
2010-10-06 11:07       ` Gleb Natapov
2010-10-06 14:20       ` Marcelo Tosatti
2010-10-06 14:20         ` Marcelo Tosatti
2010-10-07 18:44         ` Gleb Natapov
2010-10-07 18:44           ` Gleb Natapov
2010-10-08 16:07           ` Marcelo Tosatti
2010-10-08 16:07             ` Marcelo Tosatti
2010-10-07 12:29   ` Avi Kivity
2010-10-07 12:29     ` Avi Kivity
2010-10-07 17:21     ` Gleb Natapov
2010-10-07 17:21       ` Gleb Natapov
2010-10-09 18:42       ` Avi Kivity
2010-10-09 18:42         ` Avi Kivity
2010-10-10  7:35         ` Gleb Natapov
2010-10-10  7:35           ` Gleb Natapov
2010-10-04 15:56 ` [PATCH v6 04/12] Add memory slot versioning and use it to provide fast guest write interface Gleb Natapov
2010-10-04 15:56   ` Gleb Natapov
2010-10-05  1:29   ` Rik van Riel
2010-10-05  1:29     ` Rik van Riel
2010-10-05 16:57   ` Marcelo Tosatti
2010-10-05 16:57     ` Marcelo Tosatti
2010-10-06 11:14     ` Gleb Natapov
2010-10-06 11:14       ` Gleb Natapov
2010-10-06 14:38       ` Marcelo Tosatti
2010-10-06 14:38         ` Marcelo Tosatti
2010-10-06 20:08         ` Gleb Natapov
2010-10-06 20:08           ` Gleb Natapov
2010-10-07 10:00           ` Avi Kivity
2010-10-07 10:00             ` Avi Kivity
2010-10-07 15:42             ` Marcelo Tosatti
2010-10-07 15:42               ` Marcelo Tosatti
2010-10-07 16:03               ` Gleb Natapov
2010-10-07 16:03                 ` Gleb Natapov
2010-10-07 16:20                 ` Avi Kivity
2010-10-07 16:20                   ` Avi Kivity
2010-10-07 17:23                   ` Gleb Natapov
2010-10-07 17:23                     ` Gleb Natapov
2010-10-10 12:48                     ` Avi Kivity
2010-10-10 12:48                       ` Avi Kivity
2010-10-07 12:31   ` Avi Kivity
2010-10-07 12:31     ` Avi Kivity
2010-10-04 15:56 ` [PATCH v6 05/12] Move kvm_smp_prepare_boot_cpu() from kvmclock.c to kvm.c Gleb Natapov
2010-10-04 15:56   ` Gleb Natapov
2010-10-04 15:56 ` [PATCH v6 06/12] Add PV MSR to enable asynchronous page faults delivery Gleb Natapov
2010-10-04 15:56   ` Gleb Natapov
2010-10-07 12:42   ` Avi Kivity
2010-10-07 12:42     ` Avi Kivity
2010-10-07 17:53     ` Gleb Natapov [this message]
2010-10-07 17:53       ` Gleb Natapov
2010-10-10 12:47       ` Avi Kivity
2010-10-10 12:47         ` Avi Kivity
2010-10-10 13:27         ` Gleb Natapov
2010-10-10 13:27           ` Gleb Natapov
2010-10-07 12:58   ` Avi Kivity
2010-10-07 12:58     ` Avi Kivity
2010-10-07 17:59     ` Gleb Natapov
2010-10-07 17:59       ` Gleb Natapov
2010-10-09 18:43       ` Avi Kivity
2010-10-09 18:43         ` Avi Kivity
2010-10-04 15:56 ` [PATCH v6 07/12] Add async PF initialization to PV guest Gleb Natapov
2010-10-04 15:56   ` Gleb Natapov
2010-10-05  2:34   ` Rik van Riel
2010-10-05  2:34     ` Rik van Riel
2010-10-05 18:25   ` Marcelo Tosatti
2010-10-05 18:25     ` Marcelo Tosatti
2010-10-06 10:55     ` Gleb Natapov
2010-10-06 10:55       ` Gleb Natapov
2010-10-06 14:45       ` Marcelo Tosatti
2010-10-06 14:45         ` Marcelo Tosatti
2010-10-06 20:05         ` Gleb Natapov
2010-10-06 20:05           ` Gleb Natapov
2010-10-07 12:50   ` Avi Kivity
2010-10-07 12:50     ` Avi Kivity
2010-10-08  7:54     ` Gleb Natapov
2010-10-08  7:54       ` Gleb Natapov
2010-10-09 18:44       ` Avi Kivity
2010-10-09 18:44         ` Avi Kivity
2010-10-04 15:56 ` [PATCH v6 08/12] Handle async PF in a guest Gleb Natapov
2010-10-04 15:56   ` Gleb Natapov
2010-10-07 13:10   ` Avi Kivity
2010-10-07 13:10     ` Avi Kivity
2010-10-07 17:14     ` Gleb Natapov
2010-10-07 17:14       ` Gleb Natapov
2010-10-07 17:18       ` Avi Kivity
2010-10-07 17:18         ` Avi Kivity
2010-10-07 17:48         ` Rik van Riel
2010-10-07 17:48           ` Rik van Riel
2010-10-07 18:03         ` Gleb Natapov
2010-10-07 18:03           ` Gleb Natapov
2010-10-09 18:48           ` Avi Kivity
2010-10-09 18:48             ` Avi Kivity
2010-10-10  7:56             ` Gleb Natapov
2010-10-10  7:56               ` Gleb Natapov
2010-10-10 12:40               ` Avi Kivity
2010-10-10 12:40                 ` Avi Kivity
2010-10-10 12:32     ` Gleb Natapov
2010-10-10 12:32       ` Gleb Natapov
2010-10-10 12:38       ` Avi Kivity
2010-10-10 12:38         ` Avi Kivity
2010-10-10 13:22         ` Gleb Natapov
2010-10-10 13:22           ` Gleb Natapov
2010-10-04 15:56 ` [PATCH v6 09/12] Inject asynchronous page fault into a PV guest if page is swapped out Gleb Natapov
2010-10-04 15:56   ` Gleb Natapov
2010-10-05  2:36   ` Rik van Riel
2010-10-05  2:36     ` Rik van Riel
2010-10-05 19:00   ` Marcelo Tosatti
2010-10-05 19:00     ` Marcelo Tosatti
2010-10-06 10:42     ` Gleb Natapov
2010-10-06 10:42       ` Gleb Natapov
2010-10-04 15:56 ` [PATCH v6 10/12] Handle async PF in non preemptable context Gleb Natapov
2010-10-04 15:56   ` Gleb Natapov
2010-10-05 19:51   ` Marcelo Tosatti
2010-10-05 19:51     ` Marcelo Tosatti
2010-10-06 10:41     ` Gleb Natapov
2010-10-06 10:41       ` Gleb Natapov
2010-10-10 14:25       ` Gleb Natapov
2010-10-10 14:25         ` Gleb Natapov
2010-10-04 15:56 ` [PATCH v6 11/12] Let host know whether the guest can handle async PF in non-userspace context Gleb Natapov
2010-10-04 15:56   ` Gleb Natapov
2010-10-07 13:36   ` Avi Kivity
2010-10-07 13:36     ` Avi Kivity
2010-10-04 15:56 ` [PATCH v6 12/12] Send async PF when guest is not in userspace too Gleb Natapov
2010-10-04 15:56   ` Gleb Natapov
2010-10-05  2:37   ` Rik van Riel
2010-10-05  2:37     ` Rik van Riel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20101007175329.GF2397@redhat.com \
    --to=gleb@redhat.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=avi@redhat.com \
    --cc=cl@linux-foundation.org \
    --cc=hpa@zytor.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mingo@elte.hu \
    --cc=mtosatti@redhat.com \
    --cc=riel@redhat.com \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.