xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Mukesh Rathor <mukesh.rathor@oracle.com>
To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Subject: Re: [RFC PATCH 1/8]: PVH: Basic and preparatory changes
Date: Fri, 17 Aug 2012 12:20:14 -0700	[thread overview]
Message-ID: <20120817122014.3c3387b5@mantra.us.oracle.com> (raw)
In-Reply-To: <alpine.DEB.2.02.1208171104230.15568@kaball.uk.xensource.com>

On Fri, 17 Aug 2012 11:15:32 +0100
Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:

> On Thu, 16 Aug 2012, Mukesh Rathor wrote:
> > > > diff --git a/include/xen/interface/xen.h
> > > > b/include/xen/interface/xen.h index 0801468..1d5bc36 100644
> > > > --- a/include/xen/interface/xen.h
> > > > +++ b/include/xen/interface/xen.h
> > > > @@ -493,6 +493,7 @@ struct dom0_vga_console_info {
> > > >  /* These flags are passed in the 'flags' field of
> > > > start_info_t. */ #define SIF_PRIVILEGED    (1<<0)  /* Is the
> > > > domain privileged? */ #define SIF_INITDOMAIN    (1<<1)  /* Is
> > > > this the initial control domain? */ +#define SIF_IS_PVINHVM
> > > > (1<<4)  /* Is it a PV running in HVM container? */ #define
> > > > SIF_PM_MASK       (0xFF<<8) /* reserve 1 byte for xen-pm
> > > > options */ typedef uint64_t cpumap_t;
> > > 
> > > I would avoid adding SIF_IS_PVINHVM, an x86 specific concept,
> > > into a generic xen.h interface file. 
> > 
> > > > +/* xen_pv_domain check is necessary as start_info ptr is null
> > > > in HVM. Also,
> > > > + * note, xen PVH domain shares lot of HVM code */
> > > > +#define xen_pvh_domain()       (xen_pv_domain()
> > > > &&                     \
> > > > +				(xen_start_info->flags &
> > > > SIF_IS_PVINHVM))
> > >  
> > > Also here.
> > 
> > Hmm.. I can move '#define xen_pvh_domain()' to x86 header, easy.
> > But, not sure how to define SIF_IS_PVINHVM then? I could put
> > SIF_IS_RESVD in include/xen/interface/xen.h, and then do 
> > #define SIF_IS_PVINHVM SIF_IS_RESVD in an x86 file.
> > 
> > What do you think about that?
> 
> I am not particularly fussed about the location of SIF_IS_PVINHVM.
> We could define it in asm/xen/hypervisor.h for example.
> 
> The very important bit is to avoid xen_pvh_domain() in generic code
> because it reduces code reusability.
> xen_pvh_domain() covers too many different concepts (a PV guest, in an
> HVM container, using nested paging in hardware), if we bundle them
> together it makes it much harder to reuse them.
> So we should avoid checking for xen_pvh_domain() and check for the
> relevant sub-property we actually interested in.
> 
> For example in balloon.c we are probably only interested in memory
> related behavior, so checking for XENFEAT_auto_translated_physmap
> should be enough.  In other parts of the code we might want to check
> for xen_pv_domain(). If xen_pv_domain() and
> XENFEAT_auto_translated_physmap are not enough, we could introduce
> another small XENFEAT that specifies that the domain is running in a
> HVM container. This way they are all reusable.

yeah, I thought about that, but wasn't sure what the implications would
be for a guest thats not PVH but has auto xlated physmap, if there's
such a possibility. If you guys think thats not an issue, I can change
it.

  reply	other threads:[~2012-08-17 19:20 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-16  0:57 [RFC PATCH 1/8]: PVH: Basic and preparatory changes Mukesh Rathor
2012-08-16 13:59 ` Stefano Stabellini
2012-08-16 18:46   ` Mukesh Rathor
2012-08-17  8:28     ` Ian Campbell
2012-08-17 10:56       ` Stefano Stabellini
2012-08-17 13:48         ` Ian Campbell
2012-08-17 19:17         ` Mukesh Rathor
2012-08-17 10:15     ` Stefano Stabellini
2012-08-17 19:20       ` Mukesh Rathor [this message]
2012-08-17 19:36         ` Ian Campbell
2012-08-17 19:36         ` Konrad Rzeszutek Wilk
2012-08-17 22:26           ` Mukesh Rathor
2012-08-18  8:56             ` Ian Campbell
2012-08-20 11:02             ` Stefano Stabellini
2012-08-20 17:50               ` Mukesh Rathor
2012-08-17  8:35 ` Ian Campbell
2012-08-17 19:24   ` Mukesh Rathor
2012-08-17 19:47     ` Ian Campbell
2012-08-17 20:05       ` Konrad Rzeszutek Wilk
2012-08-20 23:42   ` Mukesh Rathor
2012-09-10 13:55 ` Ian Campbell
2012-09-11 21:57   ` Mukesh Rathor
2012-09-12  8:12     ` Ian Campbell
     [not found]       ` <20120912110254.10bde333@mantra.us.oracle.com>
     [not found]         ` <1347474380.25803.21.camel@dagon.hellion.org.uk>
2012-09-12 19:32           ` Mukesh Rathor
2012-09-13  6:00             ` Ian Campbell
2012-09-13 17:14               ` Mukesh Rathor
2012-09-13 17:36                 ` Pasi Kärkkäinen
2012-09-13 18:08                   ` Ian Campbell
2012-09-13 20:45                     ` Konrad Rzeszutek Wilk
2012-09-13 21:09                       ` Ian Campbell

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=20120817122014.3c3387b5@mantra.us.oracle.com \
    --to=mukesh.rathor@oracle.com \
    --cc=Xen-devel@lists.xensource.com \
    --cc=konrad.wilk@oracle.com \
    --cc=stefano.stabellini@eu.citrix.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).