All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mukesh Rathor <mukesh.rathor@oracle.com>
To: Ian Campbell <Ian.Campbell@citrix.com>
Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
	Ian Jackson <Ian.Jackson@eu.citrix.com>
Subject: Re: [PATCH 08/18] PVH xen: tools changes to create PVH domain
Date: Tue, 30 Jul 2013 16:47:16 -0700	[thread overview]
Message-ID: <20130730164716.10969419@mantra.us.oracle.com> (raw)
In-Reply-To: <1371467494.23802.49.camel@zakaz.uk.xensource.com>

On Mon, 17 Jun 2013 12:11:34 +0100
Ian Campbell <Ian.Campbell@citrix.com> wrote:

> On Fri, 2013-06-14 at 17:14 -0700, Mukesh Rathor wrote:
....
> > > > diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c
> > > > index b38d0a7..cefbf76 100644
> > > > --- a/tools/libxl/libxl_dom.c
> > > > +++ b/tools/libxl/libxl_dom.c
> > > > @@ -329,9 +329,23 @@ int libxl__build_pv(libxl__gc *gc, uint32_t
> > > > domid, struct xc_dom_image *dom;
> > > >      int ret;
> > > >      int flags = 0;
> > > > +    int is_pvh = libxl_defbool_val(info->pvh);
> > > >  
> > > >      xc_dom_loginit(ctx->xch);
> > > >  
> > > > +    if (is_pvh) {
> > > > +        char *pv_feats =
> > > > "writable_descriptor_tables|auto_translated_physmap"
> > > > +
> > > > "|supervisor_mode_kernel|hvm_callback_vector"; +
> > > > +        if (info->u.pv.features && info->u.pv.features[0] !=
> > > > '\0')
> > > > +        {
> > > > +            LOG(ERROR, "Didn't expect info->u.pv.features to
> > > > contain string\n");
> > > > +            LOG(ERROR, "String: %s\n", info->u.pv.features);
> > > > +            return ERROR_FAIL;
> > > > +        }
> > > > +        info->u.pv.features = strdup(pv_feats);
> > > 
> > > What is this trying to achieve? I think the requirement for
> > > certain features to be present if pvh is enabled needs to be
> > > handled in the xc_dom library and not here. This field is (I
> > > think) for the user to specify other features which they may wish
> > > to require.
> > 
> > I had asked for assitance on this long ago. But anyways, basically
> > here I want to make sure the kernel has all those features because
> > the user has asked a PVH guest must be created (by pvh=1 in vm.cfg
> > file). Can you kindly advise the best way to do this? 
> 
> This should be done in xc_dom build stuff not in libxl. Basically
> libxl should call xc_dom_foo with a kernel and pvh=yes (or
> =ifpossible) and the builder is then responsible internally for
> knowing which features are therefore required from the kernel.

Alright, I'm still not able to figure this out. I was able to instrument
libraries to figure what goes on for PV. But, I see for PV both 
dom->f_requested  and dom->parms.f_required is null in xc_dom_parse_image(). 
Also, in the same function dom->parms.f_supported is checked, but I can't 
tell greping for f_supported where it's set! I am using xl and not xm, so
don't care what xm/python is setting. I was expecting to see some
features for PV set in those strings. 

It looks like elf_xen_parse_features sets the feature bits, but it's not 
being called for PV in xc_dom_allocate() because features parameter is 
null. 

So, that brings me back to setting the feature string somewhere before
xc_dom_allocate() is called. I'm at a loss where to set it? The feature
string should be set to following for pvh when xc_dom_allocate() is called:

       "writable_descriptor_tables|auto_translated_physmap"
       "|supervisor_mode_kernel|hvm_callback_vector

and if the kernel elf doesn't provide those features, the create should fail.
libxl__build_pv calls xc_dom_allocate(), but you don't want me to add it
in libxl.

I can just put the damn thing in xc_dom_allocate() if features is NULL,
or re-malloc if feature is not NULL for pvh domain?

thanks
mukesh

  reply	other threads:[~2013-07-30 23:47 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-25  1:25 [PATCH 00/18][V6]: PVH xen: version 6 patches Mukesh Rathor
2013-05-25  1:25 ` [PATCH 01/18] PVH xen: turn gdb_frames/gdt_ents into union Mukesh Rathor
2013-05-31  9:13   ` Jan Beulich
2013-05-25  1:25 ` [PATCH 02/18] PVH xen: add XENMEM_add_to_physmap_range Mukesh Rathor
2013-05-31  9:28   ` Jan Beulich
2013-05-31  9:38     ` Ian Campbell
2013-05-31 10:14       ` Jan Beulich
2013-05-31 10:40         ` Ian Campbell
2013-06-05  0:24         ` Mukesh Rathor
2013-06-05  0:31     ` Mukesh Rathor
2013-06-05  7:32       ` Jan Beulich
2013-06-05 20:41         ` Mukesh Rathor
2013-06-06  6:43           ` Jan Beulich
2013-06-06 22:19             ` Mukesh Rathor
2013-06-07  6:13               ` Jan Beulich
2013-06-07 20:46                 ` Mukesh Rathor
2013-06-07 15:08             ` Konrad Rzeszutek Wilk
2013-06-07 15:48               ` Jan Beulich
2013-05-25  1:25 ` [PATCH 03/18] PVH xen: create domctl_memory_mapping() function Mukesh Rathor
2013-05-31  9:46   ` Jan Beulich
2013-06-05  0:47     ` Mukesh Rathor
2013-06-05  7:34       ` Jan Beulich
2013-05-25  1:25 ` [PATCH 04/18] PVH xen: add params to read_segment_register Mukesh Rathor
2013-05-31 10:00   ` Jan Beulich
2013-06-06  1:25     ` Mukesh Rathor
2013-06-06  6:48       ` Jan Beulich
2013-06-07  1:43         ` Mukesh Rathor
2013-06-07  6:29           ` Jan Beulich
2013-06-08  0:45             ` Mukesh Rathor
2013-06-10  8:01               ` Jan Beulich
2013-06-10 23:10                 ` Mukesh Rathor
2013-05-25  1:25 ` [PATCH 05/18] PVH xen: vmx realted preparatory changes for PVH Mukesh Rathor
2013-05-25  1:25 ` [PATCH 06/18] PVH xen: Move e820 fields out of pv_domain struct Mukesh Rathor
2013-06-05 15:33   ` Konrad Rzeszutek Wilk
2013-05-25  1:25 ` [PATCH 07/18] PVH xen: Introduce PVH guest type Mukesh Rathor
2013-05-25  1:25 ` [PATCH 08/18] PVH xen: tools changes to create PVH domain Mukesh Rathor
2013-06-12 14:58   ` Ian Campbell
2013-06-15  0:14     ` Mukesh Rathor
2013-06-17 11:11       ` Ian Campbell
2013-07-30 23:47         ` Mukesh Rathor [this message]
2013-07-31 12:00           ` Ian Campbell
2013-08-01  2:02             ` Mukesh Rathor
2013-08-01  8:01               ` Ian Campbell
2013-08-02  1:12                 ` Mukesh Rathor
2013-08-29  1:51                 ` Mukesh Rathor
2013-08-29  9:01                   ` Ian Campbell
2013-08-30  0:45                     ` Mukesh Rathor
2013-08-30  9:56                       ` Ian Campbell
2013-08-29 11:13               ` George Dunlap
2013-08-29 11:29                 ` Ian Campbell
2013-08-30  1:24                   ` Mukesh Rathor
2013-08-30  9:53                     ` Ian Campbell
2013-08-30 10:22                       ` George Dunlap
2013-08-30 10:27                     ` George Dunlap
2013-08-29  0:14         ` Mukesh Rathor
2013-07-31  1:06     ` Mukesh Rathor
2013-07-31 11:32       ` Ian Campbell
2013-05-25  1:25 ` [PATCH 09/18] PVH xen: domain creation code changes Mukesh Rathor
2013-05-25  1:25 ` [PATCH 10/18] PVH xen: create PVH vmcs, and also initialization Mukesh Rathor
2013-05-25  1:25 ` [PATCH 11/18] PVH xen: create read_descriptor_sel() Mukesh Rathor
2013-05-25  1:25 ` [PATCH 12/18] PVH xen: support hypercalls for PVH Mukesh Rathor
2013-06-05 15:27   ` Konrad Rzeszutek Wilk
2013-05-25  1:25 ` [PATCH 13/18] PVH xen: introduce vmx_pvh.c Mukesh Rathor
2013-05-25  1:25 ` [PATCH 14/18] PVH xen: some misc changes like mtrr, intr, msi Mukesh Rathor
2013-05-25  1:25 ` [PATCH 15/18] PVH xen: hcall page initialize, create PVH guest type, etc Mukesh Rathor
2013-05-25  1:25 ` [PATCH 16/18] PVH xen: Miscellaneous changes Mukesh Rathor
2013-06-05 15:39   ` Konrad Rzeszutek Wilk
2013-05-25  1:25 ` [PATCH 17/18] PVH xen: Introduce p2m_map_foreign Mukesh Rathor
2013-05-25  1:25 ` [PATCH 18/18] PVH xen: Add and remove foreign pages Mukesh Rathor
2013-06-05 15:23 ` [PATCH 00/18][V6]: PVH xen: version 6 patches Konrad Rzeszutek Wilk
2013-06-05 15:25   ` George Dunlap
2013-06-05 15:36   ` Ian Campbell
2013-06-05 18:34     ` Konrad Rzeszutek Wilk
2013-06-05 20:51       ` Ian Campbell
2013-06-05 22:01         ` Mukesh Rathor
2013-06-06  8:46           ` Ian Campbell
2013-06-07 13:56             ` Konrad Rzeszutek Wilk
2013-06-06 10:08     ` George Dunlap
2013-06-05 17:14   ` Tim Deegan
2013-06-06  7:29     ` Jan Beulich

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=20130730164716.10969419@mantra.us.oracle.com \
    --to=mukesh.rathor@oracle.com \
    --cc=Ian.Campbell@citrix.com \
    --cc=Ian.Jackson@eu.citrix.com \
    --cc=Xen-devel@lists.xensource.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 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.