All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
To: Jeremy Fitzhardinge <jeremy-TSDbQ3PG+2Y@public.gmane.org>
Cc: Zachary Amsden <zach-pghWNbHTmq7QT0dZR+AlfA@public.gmane.org>,
	kvm-devel
	<kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>,
	virtualization
	<virtualization-qjLDD68F18O7TbgM5vRIOg@public.gmane.org>
Subject: Re: [PATCH 0/5] KVM paravirt_ops implementation
Date: Sun, 17 Jun 2007 22:36:42 -0500	[thread overview]
Message-ID: <4675FDCA.4040006@codemonkey.ws> (raw)
In-Reply-To: <4675F9DE.6080806-TSDbQ3PG+2Y@public.gmane.org>

Hi Jeremy,

Jeremy Fitzhardinge wrote:
> Anthony Liguori wrote:
>   
>> 1) Not really sure what is needed for CONFIG_PREEMPT support.  I'm not
>> sure which paravirt_ops calls are actually re-entrant.
>>     
>
> I'm not sure that has specifically come up.  The main issue is whether a
> particular call can be preempted and whether that matters.  I guess the
> calls which affect a particular CPU's state will generally be called in
> a non-preemptable context, but I guess we can't assume that; the best
> approach is to assume that each call be atomic with respect to preemption.
>   

So each call would need to disable preemption?  I'm not sure that makes 
a whole lot of sense for something like CR reads/writes.  In fact, 
without passing in a cpu parameter, I'm pretty sure that those 
operations *have* to require preemption to be disabled.

For something like MMU operations, preemption really doesn't have to be 
disabled.

> Things like batching must be completed with preemption disabled over the
> whole batch.  I check that with BUG_ON in the Xen code.
>   

Right now the KVM batching requires preemption to be disabled for 
batching.  I don't think that's a hard requirement though since we could 
pass the current batch PA as part of the flush hypercalls.

Things are a lot easier though if we can just assume preemption is 
disabled :-)

Are you aware of any paravirt_ops calls that are probably being called 
in the kernel with preemption enabled?

>> 2) The paravirt_ops implementation is registered with
>> core_initcall().  However, the paravirt_ops banner is also printed
>> with core_initcall() so that fact that this works now is just the luck
>> of build order.  Need a better way to initialize the KVM paravirt_ops
>> backend.
>>     
>
> Hm.  We could make the banner printing later; obviously its purely
> cosmetic.  I put it as a core_initcall on the assumption that pv-ops
> would be set up very early as it is with Xen and lguest, and so the
> banner should print relatively early.  But if your model is that you
> boot fully virtualized for a while, and then become paravirtualized
> later, then it would make sense to defer banner printing until then.
>   

I don't see a compelling reason to paravirtualize earlier although I 
also don't see a compelling reason not too.  I noticed that VMI hooks 
setup.c.  It wasn't immediately obvious why it was hooking there but 
perhaps it worthwhile to have a common hook?  I suspect VMI and KVM will 
have a similar model for startup.

Thanks for the feedback!

Regards,

Anthony Liguori

>     J
>
>   


-------------------------------------------------------------------------
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/

  parent reply	other threads:[~2007-06-18  3:36 UTC|newest]

Thread overview: 85+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-18  2:56 [PATCH 0/5] KVM paravirt_ops implementation Anthony Liguori
     [not found] ` <4675F462.1010708-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-18  2:58   ` [PATCH 1/5] KVM paravirt_ops core infrastructure Anthony Liguori
     [not found]     ` <4675F4C3.6050700-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-18  8:03       ` Avi Kivity
     [not found]         ` <46763C6B.9050004-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-06-18 12:25           ` Anthony Liguori
     [not found]             ` <467679C5.6030201-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-18 12:28               ` Avi Kivity
2007-06-26  8:04       ` Dor Laor
     [not found]         ` <64F9B87B6B770947A9F8391472E032160C73025E-yEcIvxbTEBqsx+V+t5oei8rau4O3wl8o3fe8/T/H7NteoWH0uzbU5w@public.gmane.org>
2007-06-26  8:45           ` Jun Koi
     [not found]             ` <fdaac4d50706260145x1ebceadt432edd5b6a6ac1f2-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-06-26 11:57               ` Anthony Liguori
2007-06-26 11:56           ` Anthony Liguori
2007-06-18  2:58   ` [PATCH 2/5] KVM: Implement CR read caching for KVM paravirt_ops Anthony Liguori
     [not found]     ` <4675F4F1.5090207-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-18  8:05       ` Avi Kivity
     [not found]         ` <46763CD3.3060704-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-06-18 12:26           ` Anthony Liguori
2007-06-18  8:11       ` Avi Kivity
     [not found]         ` <46763E35.8020108-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-06-18 12:27           ` Anthony Liguori
2007-06-18  3:00   ` [PATCH 3/5] KVM: Add paravirt MMU write support Anthony Liguori
     [not found]     ` <4675F533.40809-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-18  8:20       ` Avi Kivity
     [not found]         ` <46764061.9080705-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-06-18 12:33           ` Anthony Liguori
     [not found]             ` <46767B8C.9050001-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-18 12:38               ` Avi Kivity
     [not found]                 ` <46767CD1.7030208-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-06-18 12:48                   ` Anthony Liguori
2007-06-19 21:57           ` Anthony Liguori
     [not found]             ` <46785132.3070505-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-19 22:19               ` Jeremy Fitzhardinge
     [not found]                 ` <4678567C.6040400-TSDbQ3PG+2Y@public.gmane.org>
2007-06-19 22:28                   ` Anthony Liguori
2007-06-18  3:00   ` [PATCH 4/5] KVM: Add hypercall queue for paravirt_ops implementation Anthony Liguori
     [not found]     ` <4675F568.90608-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-18  4:00       ` Jeremy Fitzhardinge
     [not found]         ` <46760343.5070401-TSDbQ3PG+2Y@public.gmane.org>
2007-06-18  4:09           ` Jeremy Fitzhardinge
2007-06-18 12:22           ` Anthony Liguori
2007-06-18  9:07       ` Avi Kivity
     [not found]         ` <46764B47.5060403-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-06-18 12:40           ` Anthony Liguori
     [not found]             ` <46767D47.1010104-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-18 12:50               ` Avi Kivity
     [not found]                 ` <46767F98.70109-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-06-18 13:03                   ` Gregory Haskins
     [not found]                     ` <1182171781.4593.38.camel-5CR4LY5GPkvLDviKLk5550HKjMygAv58XqFh9Ls21Oc@public.gmane.org>
2007-06-18 13:19                       ` Anthony Liguori
     [not found]                         ` <4676867E.1090208-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-18 13:25                           ` Gregory Haskins
2007-06-18 13:22                   ` Anthony Liguori
     [not found]                     ` <46768724.3000509-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-18 13:35                       ` Avi Kivity
     [not found]                         ` <46768A3F.2010202-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-06-18 14:02                           ` Anthony Liguori
     [not found]                             ` <4676905B.6000805-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-18 15:08                               ` Avi Kivity
     [not found]                                 ` <46769FFE.6040502-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-06-18 15:20                                   ` Anthony Liguori
     [not found]                                     ` <4676A2D4.2040704-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-18 16:01                                       ` Avi Kivity
2007-06-18 16:00                                   ` Avi Kivity
     [not found]                                     ` <4676AC10.3090007-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-06-18 17:47                                       ` Anthony Liguori
2007-06-18  3:03   ` [PATCH 5/5] KVM: paravirt time source Anthony Liguori
     [not found]     ` <4675F601.3090706-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-18  9:24       ` Avi Kivity
2007-06-18 19:11       ` Jeremy Fitzhardinge
     [not found]         ` <4676D8E4.3020806-TSDbQ3PG+2Y@public.gmane.org>
2007-06-18 21:52           ` Anthony Liguori
     [not found]             ` <4676FEB9.6060308-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-18 22:04               ` Jeremy Fitzhardinge
     [not found]                 ` <46770162.6030101-TSDbQ3PG+2Y@public.gmane.org>
2007-06-18 23:33                   ` Anthony Liguori
     [not found]                     ` <4677163F.2030308-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-18 23:56                       ` Jeremy Fitzhardinge
     [not found]                         ` <46771BA0.2000308-TSDbQ3PG+2Y@public.gmane.org>
2007-06-19  0:53                           ` Anthony Liguori
2007-06-19  7:44                       ` Avi Kivity
     [not found]                         ` <4677894D.3050500-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-06-19  8:04                           ` Rusty Russell
2007-06-19 20:38           ` Anthony Liguori
     [not found]             ` <46783EDB.5010808-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-19 21:26               ` Jeremy Fitzhardinge
     [not found]                 ` <46784A0E.3080502-TSDbQ3PG+2Y@public.gmane.org>
2007-06-19 21:38                   ` Anthony Liguori
2007-06-21  7:04               ` Dong, Eddie
2007-06-18  3:19   ` [PATCH 0/5] KVM paravirt_ops implementation Jeremy Fitzhardinge
     [not found]     ` <4675F9DE.6080806-TSDbQ3PG+2Y@public.gmane.org>
2007-06-18  3:36       ` Anthony Liguori [this message]
     [not found]         ` <4675FDCA.4040006-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-18  4:21           ` Jeremy Fitzhardinge
     [not found]             ` <4676084F.3090901-TSDbQ3PG+2Y@public.gmane.org>
2007-06-18 12:46               ` Anthony Liguori
     [not found]                 ` <46767EB2.4090707-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-18 14:46                   ` Jeremy Fitzhardinge
     [not found]                     ` <46769AD2.9080105-TSDbQ3PG+2Y@public.gmane.org>
2007-06-18 15:07                       ` Anthony Liguori
2007-06-20  0:21               ` Zachary Amsden
     [not found]                 ` <46787325.30804-pghWNbHTmq7QT0dZR+AlfA@public.gmane.org>
2007-06-20 14:22                   ` Anthony Liguori
     [not found]                     ` <4679381E.9090404-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-20 15:32                       ` Jeremy Fitzhardinge
     [not found]                         ` <46794899.6070708-TSDbQ3PG+2Y@public.gmane.org>
2007-06-20 19:35                           ` Zachary Amsden
     [not found]                             ` <46798174.2060304-pghWNbHTmq7QT0dZR+AlfA@public.gmane.org>
2007-06-20 19:47                               ` Jeremy Fitzhardinge
2007-06-20 19:52                               ` Anthony Liguori
     [not found]                                 ` <46798597.4020903-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-20 20:03                                   ` Zachary Amsden
     [not found]                                     ` <4679882B.7070605-pghWNbHTmq7QT0dZR+AlfA@public.gmane.org>
2007-06-20 20:16                                       ` Jeremy Fitzhardinge
     [not found]                                         ` <46798B16.5090407-TSDbQ3PG+2Y@public.gmane.org>
2007-06-20 20:27                                           ` Anthony Liguori
     [not found]                                             ` <46798D9B.5000400-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-20 20:33                                               ` Jeremy Fitzhardinge
     [not found]                                                 ` <46798F1A.4090901-TSDbQ3PG+2Y@public.gmane.org>
2007-06-20 20:46                                                   ` Zachary Amsden
     [not found]                                                     ` <4679921A.8090607-pghWNbHTmq7QT0dZR+AlfA@public.gmane.org>
2007-06-20 20:55                                                       ` Jeremy Fitzhardinge
2007-06-20 22:08                                                   ` Anthony Liguori
     [not found]                                                     ` <4679A54F.5020908-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-20 22:33                                                       ` Jeremy Fitzhardinge
2007-06-20 20:43                                               ` Zachary Amsden
     [not found]                                                 ` <46799157.3070805-pghWNbHTmq7QT0dZR+AlfA@public.gmane.org>
2007-06-20 20:53                                                   ` Jeremy Fitzhardinge
     [not found]                                                     ` <467993B1.6000307-TSDbQ3PG+2Y@public.gmane.org>
2007-06-20 21:08                                                       ` Zachary Amsden
     [not found]                                                         ` <46799755.8060405-pghWNbHTmq7QT0dZR+AlfA@public.gmane.org>
2007-06-20 21:48                                                           ` Jeremy Fitzhardinge
2007-06-20 22:39                                                   ` Anthony Liguori
2007-06-20 20:22                                       ` Anthony Liguori
     [not found]                                         ` <46798C99.8010303-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-20 20:37                                           ` Zachary Amsden
     [not found]                                             ` <46799001.5020807-pghWNbHTmq7QT0dZR+AlfA@public.gmane.org>
2007-06-20 21:07                                               ` Jeremy Fitzhardinge
     [not found]                                                 ` <46799716.9040402-TSDbQ3PG+2Y@public.gmane.org>
2007-06-20 21:27                                                   ` ron minnich
2007-06-20 21:39                                                   ` H. Peter Anvin
2007-06-19 23:49           ` Zachary Amsden

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=4675FDCA.4040006@codemonkey.ws \
    --to=anthony-rdkfgonbjusknkdkm+me6a@public.gmane.org \
    --cc=jeremy-TSDbQ3PG+2Y@public.gmane.org \
    --cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    --cc=virtualization-qjLDD68F18O7TbgM5vRIOg@public.gmane.org \
    --cc=zach-pghWNbHTmq7QT0dZR+AlfA@public.gmane.org \
    /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.