* State of current pv_ops backend for KVM?
@ 2007-05-29 1:54 Anthony Liguori
[not found] ` <465B87CE.6030801-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
0 siblings, 1 reply; 15+ messages in thread
From: Anthony Liguori @ 2007-05-29 1:54 UTC (permalink / raw)
To: kvm-devel
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.
Perhaps we should try for a simple pv_ops backend for 2.6.23 seeing as
how the host infrastructure is there? I'd be willing to do some leg
work here...
Regards,
Anthony Liguori
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 15+ messages in thread[parent not found: <465B87CE.6030801-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>]
* Re: State of current pv_ops backend for KVM? [not found] ` <465B87CE.6030801-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org> @ 2007-05-29 6:11 ` Ingo Molnar [not found] ` <20070529061128.GA27037-X9Un+BFzKDI@public.gmane.org> 2007-05-29 11:47 ` Avi Kivity 2007-05-30 2:24 ` Rusty Russell 2 siblings, 1 reply; 15+ messages in thread From: Ingo Molnar @ 2007-05-29 6:11 UTC (permalink / raw) To: Anthony Liguori; +Cc: kvm-devel [-- Attachment #1: Type: text/plain, Size: 787 bytes --] * Anthony Liguori <anthony-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org> 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. > > Perhaps we should try for a simple pv_ops backend for 2.6.23 seeing as > how the host infrastructure is there? I'd be willing to do some leg > work here... feel free to pick up the stuff i did - i'm somewhat "distracted" by the CFS scheduler at the moment :) You can find it at: http://redhat.com/~mingo/kvm-paravirt-patches/kvm-patches.tar.gz (it has some trivial cleanliness issues and a handful of -rt specific things, plus it's against an older kernel) later on i'll join the fun too :) Ingo [-- Attachment #2: kvm-patches.tar.gz --] [-- Type: application/x-gzip, Size: 44262 bytes --] [-- Attachment #3: Type: text/plain, Size: 286 bytes --] ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ [-- Attachment #4: Type: text/plain, Size: 186 bytes --] _______________________________________________ kvm-devel mailing list kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org https://lists.sourceforge.net/lists/listinfo/kvm-devel ^ permalink raw reply [flat|nested] 15+ messages in thread
[parent not found: <20070529061128.GA27037-X9Un+BFzKDI@public.gmane.org>]
* Re: State of current pv_ops backend for KVM? [not found] ` <20070529061128.GA27037-X9Un+BFzKDI@public.gmane.org> @ 2007-05-29 6:11 ` Ingo Molnar 0 siblings, 0 replies; 15+ messages in thread From: Ingo Molnar @ 2007-05-29 6:11 UTC (permalink / raw) To: Anthony Liguori; +Cc: kvm-devel * Ingo Molnar <mingo-X9Un+BFzKDI@public.gmane.org> wrote: > feel free to pick up the stuff i did - i'm somewhat "distracted" by > the CFS scheduler at the moment :) You can find it at: > > http://redhat.com/~mingo/kvm-paravirt-patches/kvm-patches.tar.gz and that's all under the GPL of course. Ingo ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: State of current pv_ops backend for KVM? [not found] ` <465B87CE.6030801-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org> 2007-05-29 6:11 ` Ingo Molnar @ 2007-05-29 11:47 ` Avi Kivity [not found] ` <465C12C0.9030906-atKUWr5tajBWk0Htik3J/w@public.gmane.org> 2007-05-30 2:24 ` Rusty Russell 2 siblings, 1 reply; 15+ messages in thread From: Avi Kivity @ 2007-05-29 11:47 UTC (permalink / raw) To: Anthony Liguori; +Cc: kvm-devel 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. > > Perhaps we should try for a simple pv_ops backend for 2.6.23 seeing as > how the host infrastructure is there? I'd be willing to do some leg > work here... I think we should aim for a full direct paging implementation, where the cr3 cache is just the cherry on top that makes context switches proceed at native speed. Jun has a paper on it for OLS and I hope patches too. A minor drawback with direct paging is that you are more or less forced to use pae on the guest, but I think that's acceptable. -- error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ^ permalink raw reply [flat|nested] 15+ messages in thread
[parent not found: <465C12C0.9030906-atKUWr5tajBWk0Htik3J/w@public.gmane.org>]
* Re: State of current pv_ops backend for KVM? [not found] ` <465C12C0.9030906-atKUWr5tajBWk0Htik3J/w@public.gmane.org> @ 2007-05-29 13:49 ` Anthony Liguori [not found] ` <465C2F75.3080603-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org> 0 siblings, 1 reply; 15+ messages in thread From: Anthony Liguori @ 2007-05-29 13:49 UTC (permalink / raw) To: Avi Kivity; +Cc: kvm-devel Avi Kivity wrote: > 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. >> >> Perhaps we should try for a simple pv_ops backend for 2.6.23 seeing >> as how the host infrastructure is there? I'd be willing to do some >> leg work here... > > I think we should aim for a full direct paging implementation, where > the cr3 cache is just the cherry on top that makes context switches > proceed at native speed. Jun has a paper on it for OLS and I hope > patches too. That's a bit more ambitious than I was thinking. I would be very happy with a pv timer, interrupt controller, and some basic CPU optimizations. I'm still not convinced the perf benefits of direct paging justify the annoyances that come with it (guests being aware of pfns). This is especially true with NPT/EPT right around the corner. Regards, Anthony Liguori > A minor drawback with direct paging is that you are more or less > forced to use pae on the guest, but I think that's acceptable. > ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ^ permalink raw reply [flat|nested] 15+ messages in thread
[parent not found: <465C2F75.3080603-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>]
* Re: State of current pv_ops backend for KVM? [not found] ` <465C2F75.3080603-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org> @ 2007-05-29 14:00 ` Avi Kivity [not found] ` <465C31F2.8080007-atKUWr5tajBWk0Htik3J/w@public.gmane.org> 0 siblings, 1 reply; 15+ messages in thread From: Avi Kivity @ 2007-05-29 14:00 UTC (permalink / raw) To: Anthony Liguori; +Cc: kvm-devel Anthony Liguori wrote: > Avi Kivity wrote: >> 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. >>> >>> Perhaps we should try for a simple pv_ops backend for 2.6.23 seeing >>> as how the host infrastructure is there? I'd be willing to do some >>> leg work here... >> >> I think we should aim for a full direct paging implementation, where >> the cr3 cache is just the cherry on top that makes context switches >> proceed at native speed. Jun has a paper on it for OLS and I hope >> patches too. > > That's a bit more ambitious than I was thinking. I would be very > happy with a pv timer, interrupt controller, and some basic CPU > optimizations. I'm still not convinced the perf benefits of direct > paging justify the annoyances that come with it (guests being aware of > pfns). I thought that with paravirt_ops, all the awareness is limited to the paravirt implementation, and nothing in the core kernel is actually aware of host pfns. pv timer and interrupt controller make a lot of sense, especially if steal timer functionality is included. > This is especially true with NPT/EPT right around the corner. It depends on the workload. It was advanced (by Ingo) that NPT/EPT increase the tlb miss latency, which is important for steady-state workloads, whereas shadow and direct paging do not. It will be interesting to measure this. -- error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ^ permalink raw reply [flat|nested] 15+ messages in thread
[parent not found: <465C31F2.8080007-atKUWr5tajBWk0Htik3J/w@public.gmane.org>]
* Re: State of current pv_ops backend for KVM? [not found] ` <465C31F2.8080007-atKUWr5tajBWk0Htik3J/w@public.gmane.org> @ 2007-05-29 14:19 ` Anthony Liguori [not found] ` <465C3671.9000404-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org> 2007-05-30 2:35 ` Rusty Russell 1 sibling, 1 reply; 15+ messages in thread From: Anthony Liguori @ 2007-05-29 14:19 UTC (permalink / raw) To: Avi Kivity; +Cc: kvm-devel Avi Kivity wrote: > Anthony Liguori wrote: >> Avi Kivity wrote: >>> 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. >>>> >>>> Perhaps we should try for a simple pv_ops backend for 2.6.23 seeing >>>> as how the host infrastructure is there? I'd be willing to do some >>>> leg work here... >>> >>> I think we should aim for a full direct paging implementation, where >>> the cr3 cache is just the cherry on top that makes context switches >>> proceed at native speed. Jun has a paper on it for OLS and I hope >>> patches too. >> >> That's a bit more ambitious than I was thinking. I would be very >> happy with a pv timer, interrupt controller, and some basic CPU >> optimizations. I'm still not convinced the perf benefits of direct >> paging justify the annoyances that come with it (guests being aware >> of pfns). > > I thought that with paravirt_ops, all the awareness is limited to the > paravirt implementation, and nothing in the core kernel is actually > aware of host pfns. The pv_ops implementation still has to deal with guest pfn => host pfn translation. This means that a guest has to be put into a special mode for save/restore/migrate to work to ensure that no host pfn's are on the stack or in registers. Changing save/restore/migration to from guest-transparent to guest-interactive is a big loss to me. > pv timer and interrupt controller make a lot of sense, especially if > steal timer functionality is included. Yup :-) >> This is especially true with NPT/EPT right around the corner. > > It depends on the workload. It was advanced (by Ingo) that NPT/EPT > increase the tlb miss latency, which is important for steady-state > workloads, whereas shadow and direct paging do not. It will be > interesting to measure this. There will most certainly be trade-offs, but I certainly don't expect direct paging to beat out NPT/EPT in certain areas. Regards, Anthony Liguori ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ^ permalink raw reply [flat|nested] 15+ messages in thread
[parent not found: <465C3671.9000404-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>]
* Re: State of current pv_ops backend for KVM? [not found] ` <465C3671.9000404-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org> @ 2007-05-29 14:28 ` Avi Kivity 0 siblings, 0 replies; 15+ messages in thread From: Avi Kivity @ 2007-05-29 14:28 UTC (permalink / raw) To: Anthony Liguori; +Cc: kvm-devel Anthony Liguori wrote: >>> >>> That's a bit more ambitious than I was thinking. I would be very >>> happy with a pv timer, interrupt controller, and some basic CPU >>> optimizations. I'm still not convinced the perf benefits of direct >>> paging justify the annoyances that come with it (guests being aware >>> of pfns). >> >> I thought that with paravirt_ops, all the awareness is limited to the >> paravirt implementation, and nothing in the core kernel is actually >> aware of host pfns. > > The pv_ops implementation still has to deal with guest pfn => host pfn > translation. This means that a guest has to be put into a special > mode for save/restore/migrate to work to ensure that no host pfn's are > on the stack or in registers. Changing save/restore/migration to from > guest-transparent to guest-interactive is a big loss to me. I think it can be done without guest awareness, by having a special code section where the translation is done. The hypervisor can choose not to transfer control when rip points there. >>> This is especially true with NPT/EPT right around the corner. >> >> It depends on the workload. It was advanced (by Ingo) that NPT/EPT >> increase the tlb miss latency, which is important for steady-state >> workloads, whereas shadow and direct paging do not. It will be >> interesting to measure this. > > There will most certainly be trade-offs, but I certainly don't expect > direct paging to beat out NPT/EPT in certain areas. Sure. Like I said, we'll need measurements to decide this. -- error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: State of current pv_ops backend for KVM? [not found] ` <465C31F2.8080007-atKUWr5tajBWk0Htik3J/w@public.gmane.org> 2007-05-29 14:19 ` Anthony Liguori @ 2007-05-30 2:35 ` Rusty Russell [not found] ` <1180492544.30202.72.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org> 1 sibling, 1 reply; 15+ messages in thread From: Rusty Russell @ 2007-05-30 2:35 UTC (permalink / raw) To: Avi Kivity; +Cc: kvm-devel On Tue, 2007-05-29 at 17:00 +0300, Avi Kivity wrote: > Anthony Liguori wrote: > > Avi Kivity wrote: > >> I think we should aim for a full direct paging implementation, where > >> the cr3 cache is just the cherry on top that makes context switches > >> proceed at native speed. Jun has a paper on it for OLS and I hope > >> patches too. > > > > That's a bit more ambitious than I was thinking. I would be very > > happy with a pv timer, interrupt controller, and some basic CPU > > optimizations. I'm still not convinced the perf benefits of direct > > paging justify the annoyances that come with it (guests being aware of > > pfns). > > I thought that with paravirt_ops, all the awareness is limited to the > paravirt implementation, and nothing in the core kernel is actually > aware of host pfns. It is, but now you've broken the abstraction you get other messes. You can no longer simply swap out pages behind the guest's back, copy on write or combine identical pages or other tricks without synchronizing with the guest. It can be done, 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. Cheers, Rusty. ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ^ permalink raw reply [flat|nested] 15+ messages in thread
[parent not found: <1180492544.30202.72.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>]
* Re: State of current pv_ops backend for KVM? [not found] ` <1180492544.30202.72.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org> @ 2007-05-30 5:01 ` Avi Kivity [not found] ` <465D051F.20706-atKUWr5tajBWk0Htik3J/w@public.gmane.org> 0 siblings, 1 reply; 15+ messages in thread From: Avi Kivity @ 2007-05-30 5:01 UTC (permalink / raw) To: Rusty Russell; +Cc: kvm-devel Rusty Russell wrote: > On Tue, 2007-05-29 at 17:00 +0300, Avi Kivity wrote: > >> Anthony Liguori wrote: >> >>> Avi Kivity wrote: >>> >>>> I think we should aim for a full direct paging implementation, where >>>> the cr3 cache is just the cherry on top that makes context switches >>>> proceed at native speed. Jun has a paper on it for OLS and I hope >>>> patches too. >>>> >>> That's a bit more ambitious than I was thinking. I would be very >>> happy with a pv timer, interrupt controller, and some basic CPU >>> optimizations. I'm still not convinced the perf benefits of direct >>> paging justify the annoyances that come with it (guests being aware of >>> pfns). >>> >> I thought that with paravirt_ops, all the awareness is limited to the >> paravirt implementation, and nothing in the core kernel is actually >> aware of host pfns. >> > > It is, but now you've broken the abstraction you get other messes. You > can no longer simply swap out pages behind the guest's back, copy on > write or combine identical pages or other tricks without synchronizing > with the guest. > > These are good points. > It can be done, Maybe we'll get something from the s390 port. > 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 to shadow mode on runtime. -- Do not meddle in the internals of kernels, for they are subtle and quick to panic. ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ^ permalink raw reply [flat|nested] 15+ messages in thread
[parent not found: <465D051F.20706-atKUWr5tajBWk0Htik3J/w@public.gmane.org>]
* Re: State of current pv_ops backend for KVM? [not found] ` <465D051F.20706-atKUWr5tajBWk0Htik3J/w@public.gmane.org> @ 2007-05-30 6:04 ` Rusty Russell 0 siblings, 0 replies; 15+ messages in thread From: Rusty Russell @ 2007-05-30 6:04 UTC (permalink / raw) To: Avi Kivity; +Cc: kvm-devel 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 to > shadow mode on runtime. Sorry, I was a little oblique here. The Xen shadow mode code is aimed at supporting full virtualization, so it's not really a fair comparison. Their direct page access code hooks deep into the guest; the outstanding question is how efficient would a shadow implementation which made similar guest changes be? Unfortunately, there's a lot of coding between here and the answer 8) Rusty. ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: State of current pv_ops backend for KVM? [not found] ` <465B87CE.6030801-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org> 2007-05-29 6:11 ` Ingo Molnar 2007-05-29 11:47 ` Avi Kivity @ 2007-05-30 2:24 ` Rusty Russell [not found] ` <1180491861.30202.61.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org> 2 siblings, 1 reply; 15+ messages in thread From: Rusty Russell @ 2007-05-30 2:24 UTC (permalink / raw) To: Anthony Liguori; +Cc: kvm-devel, Zachary Amsden 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. > > Perhaps we should try for a simple pv_ops backend for 2.6.23 seeing as > how the host infrastructure is there? I'd be willing to do some leg > work here... "Me too". It's at least worth toying with the mmu batching stuff to see if that can shave some cycles there: it seems that cr3 caching is the main win for context switch so batching there won't help. IIRC Ingo used a magic MSR to detect kvm, and there was a question mark over that. VMI uses a different technique, which is probably worth considering... Cheers, Rusty. ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ^ permalink raw reply [flat|nested] 15+ messages in thread
[parent not found: <1180491861.30202.61.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>]
* Re: State of current pv_ops backend for KVM? [not found] ` <1180491861.30202.61.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org> @ 2007-05-30 2:51 ` Anthony Liguori [not found] ` <465CE6AD.7000206-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org> 0 siblings, 1 reply; 15+ messages in thread From: Anthony Liguori @ 2007-05-30 2:51 UTC (permalink / raw) To: Rusty Russell; +Cc: kvm-devel, Zachary Amsden 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. >> >> Perhaps we should try for a simple pv_ops backend for 2.6.23 seeing as >> how the host infrastructure is there? I'd be willing to do some leg >> work here... >> > > "Me too". It's at least worth toying with the mmu batching stuff to see > if that can shave some cycles there: it seems that cr3 caching is the > main win for context switch so batching there won't help. > I'm working on a simple patch that just adds the infrastructure. > IIRC Ingo used a magic MSR to detect kvm, and there was a question mark > over that. I am not too worried about using an MSR. There's really no fool proof method here. The only thing to do IMHO is move the kvm pv_ops backend into a separate file and add appropriate Kconfig stuff. > VMI uses a different technique, which is probably worth > considering... > VMI can determine that it's under VMware since VMware has to publish an option ROM. It's quite neat, but overkill for what we're doing (since we're not going to be using a ROM anyway). Regards, Anthony Liguori > Cheers, > Rusty. > > > ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ^ permalink raw reply [flat|nested] 15+ messages in thread
[parent not found: <465CE6AD.7000206-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>]
* Re: State of current pv_ops backend for KVM? [not found] ` <465CE6AD.7000206-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org> @ 2007-05-30 18:02 ` Zachary Amsden [not found] ` <465DBC39.7090308-pghWNbHTmq7QT0dZR+AlfA@public.gmane.org> 0 siblings, 1 reply; 15+ messages in thread From: Zachary Amsden @ 2007-05-30 18:02 UTC (permalink / raw) To: Anthony Liguori; +Cc: kvm-devel 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. >>> >>> Perhaps we should try for a simple pv_ops backend for 2.6.23 seeing >>> as how the host infrastructure is there? I'd be willing to do some >>> leg work here... >>> >> >> "Me too". It's at least worth toying with the mmu batching stuff to see >> if that can shave some cycles there: it seems that cr3 caching is the >> main win for context switch so batching there won't help. >> > > I'm working on a simple patch that just adds the infrastructure. > >> IIRC Ingo used a magic MSR to detect kvm, and there was a question mark >> over that. > > I am not too worried about using an MSR. There's really no fool proof > method here. The only thing to do IMHO is move the kvm pv_ops backend > into a separate file and add appropriate Kconfig stuff. > >> VMI uses a different technique, which is probably worth >> considering... >> > > VMI can determine that it's under VMware since VMware has to publish > an option ROM. It's quite neat, but overkill for what we're doing > (since we're not going to be using a ROM anyway). The near to being blessed way to do this is to use a CPUID leaf (I believe it is 0x40000000) to identify the hypervisor. I don't have the exact details, but making CPUID 0x40000000 return 'KVMKVMKVMKVM' sounds like a pretty safe detection technique. We're probably dropping the ROM probing in favor of this for 64-bit. Zach ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ^ permalink raw reply [flat|nested] 15+ messages in thread
[parent not found: <465DBC39.7090308-pghWNbHTmq7QT0dZR+AlfA@public.gmane.org>]
* Re: State of current pv_ops backend for KVM? [not found] ` <465DBC39.7090308-pghWNbHTmq7QT0dZR+AlfA@public.gmane.org> @ 2007-05-30 18:20 ` Anthony Liguori 0 siblings, 0 replies; 15+ messages in thread From: Anthony Liguori @ 2007-05-30 18:20 UTC (permalink / raw) To: Zachary Amsden; +Cc: kvm-devel Zachary Amsden wrote: >> VMI can determine that it's under VMware since VMware has to publish >> an option ROM. It's quite neat, but overkill for what we're doing >> (since we're not going to be using a ROM anyway). > > The near to being blessed way to do this is to use a CPUID leaf (I > believe it is 0x40000000) to identify the hypervisor. I don't have > the exact details, but making CPUID 0x40000000 return 'KVMKVMKVMKVM' > sounds like a pretty safe detection technique. I apparently missed the memo :-) I'll update the patch. Regards, Anthony Liguori > We're probably dropping the ROM probing in favor of this for 64-bit. > Zach > ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2007-05-30 18:20 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-29 1:54 State of current pv_ops backend for KVM? Anthony Liguori
[not found] ` <465B87CE.6030801-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-05-29 6:11 ` Ingo Molnar
[not found] ` <20070529061128.GA27037-X9Un+BFzKDI@public.gmane.org>
2007-05-29 6:11 ` Ingo Molnar
2007-05-29 11:47 ` Avi Kivity
[not found] ` <465C12C0.9030906-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-05-29 13:49 ` Anthony Liguori
[not found] ` <465C2F75.3080603-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-05-29 14:00 ` Avi Kivity
[not found] ` <465C31F2.8080007-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-05-29 14:19 ` Anthony Liguori
[not found] ` <465C3671.9000404-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-05-29 14:28 ` Avi Kivity
2007-05-30 2:35 ` Rusty Russell
[not found] ` <1180492544.30202.72.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-05-30 5:01 ` Avi Kivity
[not found] ` <465D051F.20706-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-05-30 6:04 ` Rusty Russell
2007-05-30 2:24 ` Rusty Russell
[not found] ` <1180491861.30202.61.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-05-30 2:51 ` Anthony Liguori
[not found] ` <465CE6AD.7000206-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-05-30 18:02 ` Zachary Amsden
[not found] ` <465DBC39.7090308-pghWNbHTmq7QT0dZR+AlfA@public.gmane.org>
2007-05-30 18:20 ` Anthony Liguori
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox