All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ryan Harper <ryanh@us.ibm.com>
To: Ian Pratt <m+Ian.Pratt@cl.cam.ac.uk>
Cc: Stephan Diestelhorst <sd386@cam.ac.uk>,
	Ryan Harper <ryanh@us.ibm.com>,
	xen-devel <xen-devel@lists.xensource.com>,
	Alan Greenspan <alan@egenera.com>
Subject: Re: RE: [Xen-users] Xen 3.0 Dom0 Smp enable?
Date: Mon, 8 Aug 2005 13:24:28 -0500	[thread overview]
Message-ID: <20050808182428.GB4860@us.ibm.com> (raw)
In-Reply-To: <A95E2296287EAD4EB592B5DEEFCE0E9D2829ED@liverpoolst.ad.cl.cam.ac.uk>

* Ian Pratt <m+Ian.Pratt@cl.cam.ac.uk> [2005-08-08 12:05]:
> > > If you create a pincpu mask for the over domains/VCPUs that doesn't 
> > > include the CPU in question, they won't use it. I guess a shorthand 
> > > command for this would be useful.
> > 
> > Something like:
> > 
> > xm dedicate DOM CPU
> 
> It should probably be called cpu-dedicate or such like.

Sure.  Always open to names.

> 
> > > Ryan, if so, please can you dust off and resend. As I 
> > recall, the key 
> > > fix it needed was that it should be xend (not xm) that does the 
> > > translation from the dot'ed form into CPU numbers.
> > 
> > Certainly it will be easier to do so in xend, but I'm more 
> > concerned with the hypervisor being responsible responsible 
> > for choosing the vcpu to cpu mapping.  I'd like to see dom 
> > creation support the passing of a cpumap and have the 
> > hypervisor cycle through the physical cpus marked therein.  
> > This would remove the logic of mapping vcpus to cpus from the 
> > hypervisor and let the dom creation tools build whatever 
> > algorithm for distributing vcpus across cpus as it sees fit.
> 
> Sure - feel free to remove the logic from Xen. It's simply there because
> until recently xend didn't know about number of hyperthreads, cores,
> sockets etc.
> 
> The default should be to give Xen considerable freedom in how it
> schedules VCPUs to CPUs: Stephan's load balancer is almost ready for
> posting.
> 
> We should have some higher-level allocation control that can be tweaked
> in xend e,g, "don't use hyperthreading", "allow only privileged domains
> to use the 1st hyperthread on each CPU", "allow any logical CPU to be
> used by any VCPU". [All additionally subject to cpu-dedicate
> restrictions]
> 

Agreed. 

> > If you are interested in this it means changing the hypercall 
> > interface and so it should be done for 3.0, however I don't 
> > want to push for significant changes so close to the testing 
> > freeze as I want to help close features down rather than 
> > create new ones.
> 
> Does it actually need a change to the hypercall interface? The domain
> builder can just issue a pin for each VCPU. It might be cleaner to
> remove the orignal CPU field, but that's such a small change we should
> just do it anyway.

I suppose it is a toss up.  Should the DOM0_CREATEDOMAIN hypercall be
responsible for cpu allocation?  One could argue both ways.  Even now,
it is merely responsible for picking which physical cpu is used for a
dom's VCPU0. Then alloc_vcpu_struct() in schedule.c picks the
processor for additional vcpu as they get booted via do_boot_vcpu()

I think there is more work to do things cleanly.  We can make things
work with pinvcpu operations, but it feels hacky.  I think there is
quite a bit of work, and I'm still not convinced that this should be
done for 3.0 simply because of the size of the change.

1. create domain hypercall should take cpumap to indicate which physical
cpus any of a domain's vcpus can utilize
2. remove physical cpu selection from DOM0_CREATEDOMAIN in dom0_ops.c
3. remove physical cpu selection from alloc_vcpu_struct()
4. create new function, get_next_processor(struct domain *) which reads
the domain's cpumap and returns the next physical cpu the domain should
use.  Update DOM0_CREATEDOMAIN and alloc_vcpu_struct() functions to use
get_next_processor()
5. update tools/libs to pass in/require cpumap when creating domains
6. create high-level map abstractions (e.g. don't use hyperthreads)

-- 
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
(512) 838-9253   T/L: 678-9253
ryanh@us.ibm.com

  parent reply	other threads:[~2005-08-08 18:24 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-08-08 17:04 [Xen-users] Xen 3.0 Dom0 Smp enable? Ian Pratt
2005-08-08 17:31 ` Stephan Diestelhorst
2005-08-08 18:24 ` Ryan Harper [this message]
  -- strict thread matches above, loose matches on Subject: below --
2005-08-08 18:57 Ian Pratt

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=20050808182428.GB4860@us.ibm.com \
    --to=ryanh@us.ibm.com \
    --cc=alan@egenera.com \
    --cc=m+Ian.Pratt@cl.cam.ac.uk \
    --cc=sd386@cam.ac.uk \
    --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.