Re: [kvm-devel] State of current pv_ops backend for KVM?

2007-05-30 Thread Rusty Russell
On Wed, 2007-05-30 at 08:01 +0300, Avi Kivity wrote: Rusty Russell wrote: but it's not clear to me that verifying PTEs is that much faster than shadowing them if you're prepared to be that invasive in the guest anyway. This can probably be measured on Xen which can switch from direct

Re: [kvm-devel] guest PTE write emulation

2007-05-30 Thread Dong, Eddie
Avi Kivity wrote: On a pte update, npte will always be 1. On a pde update, we won't do anything in mmu_pte_write_new_pte because it doesn't handle pdes. If we extend it to handle pdes, then we need either to modify the new gpde or to have the update take the quadrant into account. Agree,

Re: [kvm-devel] guest PTE write emulation

2007-05-30 Thread Dong, Eddie
Avi Kivity wrote: Dong, Eddie wrote: Avi Kivity wrote: On a pte update, npte will always be 1. On a pde update, we won't do anything in mmu_pte_write_new_pte because it doesn't handle pdes. If we extend it to handle pdes, then we need either to modify the new gpde or to have the update

[kvm-devel] [PATCH 0/3] KVM paravirt_ops implementation

2007-05-30 Thread Anthony Liguori
This is the start of a paravirt_ops implementation for KVM. Most of it was done by Ingo Molnar, I just moved things around a bit. I don't think there's a measurable performance benefit just yet but there are a few more optimizations that I think we can get in time for 2.6.23 that will be

[kvm-devel] [PATCH 1/3] KVM paravirt_ops infrastructure

2007-05-30 Thread Anthony Liguori
Regards, Anthony Liguori Subject: [PATCH] Add KVM paravirt_ops implementation From: Anthony Liguori [EMAIL PROTECTED] This patch adds the basic infrastructure for paravirtualizing a KVM guest. Discovery of running under KVM is done by sharing a page of memory between the guest and host

[kvm-devel] [PATCH 3/3] Eliminate read_cr3 on TLB flush

2007-05-30 Thread Anthony Liguori
Regards, Anthony Liguori Subject: [PATCH][PARAVIRT] Eliminate unnecessary CR3 read in TLB flush This patch eliminates the CR3 read (which would cause a VM exit) in the TLB flush path. The patch is based on Ingo Molnar's paravirt series. Signed-off-by: Anthony Liguori [EMAIL PROTECTED] Index:

[kvm-devel] Hypercall numbering and the -rt tree

2007-05-30 Thread Anthony Liguori
Hi Ingo, In my last series, I avoided submitting any patches that used hypercalls. Part of the reason is that I know that your tree already has assigned hypercalls out to various things. Some make sense (like flush_cr3_cache) but some are, at least, contentious (like the pv disk

Re: [kvm-devel] [PATCH 3/3] Eliminate read_cr3 on TLB flush

2007-05-30 Thread Anthony Liguori
Andi Kleen wrote: On Wednesday 30 May 2007 16:53:41 Anthony Liguori wrote: Subject: [PATCH][PARAVIRT] Eliminate unnecessary CR3 read in TLB flush This patch eliminates the CR3 read (which would cause a VM exit) in the TLB flush path. The patch is based on Ingo Molnar's paravirt series.

Re: [kvm-devel] [PATCH 1/3] KVM paravirt_ops infrastructure

2007-05-30 Thread Nakajima, Jun
Anthony Liguori wrote: Regards, Anthony Liguori I think we should use the CPUID instruction (leaf 0x4000) to detect the hypervosor as we are doing in Xen. Jun --- Intel Open Source Technology Center - This SF.net

Re: [kvm-devel] [PATCH 3/3] Eliminate read_cr3 on TLB flush

2007-05-30 Thread Nakajima, Jun
Jeremy Fitzhardinge wrote: Anthony Liguori wrote: Sure. It adds a few more cycles onto native though (two memory reads, and some math). As opposed to a serializing control-register read? I think that's probably a win. J And actually you don't need the write to CR3 to flush TLB

Re: [kvm-devel] State of current pv_ops backend for KVM?

2007-05-30 Thread Zachary Amsden
Anthony Liguori wrote: Rusty Russell wrote: On Mon, 2007-05-28 at 20:54 -0500, Anthony Liguori wrote: Howdy, Does anyone know what the state of a pv_ops backend for KVM is? I know Ingo has an implementation that implements CR3 caching but I don't see any branches in Avi's git tree.

Re: [kvm-devel] [PATCH 3/3] Eliminate read_cr3 on TLB flush

2007-05-30 Thread Zachary Amsden
Nakajima, Jun wrote: And actually you don't need the write to CR3 to flush TLB because the one to CR4 does it. Or does kvm_flush_tlb_kernel assume that CR3 is updated at the same time? Jun It should not be necessary, but I believe this was added as a workaround to a PII erratum. I can't

Re: [kvm-devel] [PATCH 3/3] Eliminate read_cr3 on TLB flush

2007-05-30 Thread Nakajima, Jun
Zachary Amsden wrote: Nakajima, Jun wrote: And actually you don't need the write to CR3 to flush TLB because the one to CR4 does it. Or does kvm_flush_tlb_kernel assume that CR3 is updated at the same time? Jun It should not be necessary, but I believe this was added as a

Re: [kvm-devel] [PATCH 3/3] Eliminate read_cr3 on TLB flush

2007-05-30 Thread Anthony Liguori
Nakajima, Jun wrote: Zachary Amsden wrote: Nakajima, Jun wrote: And actually you don't need the write to CR3 to flush TLB because the one to CR4 does it. Or does kvm_flush_tlb_kernel assume that CR3 is updated at the same time? Jun It should not

Re: [kvm-devel] [PATCH 3/3] Eliminate read_cr3 on TLB flush

2007-05-30 Thread Nakajima, Jun
Anthony Liguori wrote: Nakajima, Jun wrote: snip For KVM, it should be okay as well. But we can replace two CR4 accesses with just one hypercall. I was thinking the same thing :-) I was actually thinking about adding a hypercall to set/clear a bit in a control register. The

Re: [kvm-devel] [PATCH 3/3] Eliminate read_cr3 on TLB flush

2007-05-30 Thread Zachary Amsden
Anthony Liguori wrote: I was thinking the same thing :-) I was actually thinking about adding a hypercall to set/clear a bit in a control register. The thought here is that it would be useful not just for the global bit but also for CR0.TS although we would need another paravirt_op hook

Re: [kvm-devel] [PATCH 3/3] Eliminate read_cr3 on TLB flush

2007-05-30 Thread Anthony Liguori
Nakajima, Jun wrote: Anthony Liguori wrote: Given the optimizations for CPU virtualization in the current H/W, I'm not sure if such hooks are useful. Do you have any performance data that justify such hooks? No, I don't. It was just a thought that was yet to be confirmed. Regards,

Re: [kvm-devel] [PATCH 1/3] KVM paravirt_ops infrastructure

2007-05-30 Thread Rusty Russell
On Wed, 2007-05-30 at 09:52 -0500, Anthony Liguori wrote: This patch adds the basic infrastructure for paravirtualizing a KVM guest. Hi Anthony! Nice patch, comments below. Discovery of running under KVM is done by sharing a page of memory between the guest and host (initially

Re: [kvm-devel] [PATCH 3/3] Eliminate read_cr3 on TLB flush

2007-05-30 Thread Rusty Russell
On Wed, 2007-05-30 at 14:22 -0500, Anthony Liguori wrote: I was actually thinking about adding a hypercall to set/clear a bit in a control register. The thought here is that it would be useful not just for the global bit but also for CR0.TS although we would need another paravirt_op hook

Re: [kvm-devel] [PATCH 1/3] KVM paravirt_ops infrastructure

2007-05-30 Thread Anthony Liguori
Rusty Russell wrote: On Wed, 2007-05-30 at 09:52 -0500, Anthony Liguori wrote: This patch adds the basic infrastructure for paravirtualizing a KVM guest. Hi Anthony! Nice patch, comments below. Discovery of running under KVM is done by sharing a page of memory between