[libvirt] [PATCH v2 1/2] bhyve: add CPU topology support

Roman Bogorodskiy bogorodskiy at gmail.com
Thu Jun 7 13:45:16 UTC 2018


  John Ferlan wrote:

> 
> 
> On 05/29/2018 12:57 PM, Roman Bogorodskiy wrote:
> > Recently, bhyve started supporting specifying guest CPU topology.
> > It looks this way:
> > 
> >   bhyve -c cpus=C,sockets=S,cores=C,threads=T ...
> > 
> > The old behaviour with bhyve -c C, where C is a number of vCPUs, is
> > still supported.
> > 
> > So if we have CPU topology in the domain XML, use the new syntax,
> > otherwise keeps the old behaviour.
> > 
> > Signed-off-by: Roman Bogorodskiy <bogorodskiy at gmail.com>
> > ---
> >  src/bhyve/bhyve_capabilities.c                |  7 +++--
> >  src/bhyve/bhyve_capabilities.h                |  1 +
> >  src/bhyve/bhyve_command.c                     | 26 ++++++++++++++++++-
> >  ...yvexml2argv-cputopology-nvcpu-mismatch.xml | 26 +++++++++++++++++++
> >  .../bhyvexml2argv-cputopology.args            |  9 +++++++
> >  .../bhyvexml2argv-cputopology.ldargs          |  3 +++
> >  .../bhyvexml2argv-cputopology.xml             | 26 +++++++++++++++++++
> >  tests/bhyvexml2argvtest.c                     |  8 +++++-
> >  8 files changed, 102 insertions(+), 4 deletions(-)
> >  create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-cputopology-nvcpu-mismatch.xml
> >  create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-cputopology.args
> >  create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-cputopology.ldargs
> >  create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-cputopology.xml
> > 
> > diff --git a/src/bhyve/bhyve_capabilities.c b/src/bhyve/bhyve_capabilities.c
> > index e13085b1d5..a3229cea75 100644
> > --- a/src/bhyve/bhyve_capabilities.c
> > +++ b/src/bhyve/bhyve_capabilities.c
> > @@ -227,7 +227,7 @@ bhyveProbeCapsDeviceHelper(unsigned int *caps,
> >  }
> >  
> >  static int
> > -bhyveProbeCapsRTC_UTC(unsigned int *caps, char *binary)
> > +bhyveProbeCapsFromHelp(unsigned int *caps, char *binary)
> 
> Could have made this a separate just a name change patch
> 
> >  {
> >      char *help;
> >      virCommandPtr cmd = NULL;
> > @@ -244,6 +244,9 @@ bhyveProbeCapsRTC_UTC(unsigned int *caps, char *binary)
> >      if (strstr(help, "-u:") != NULL)
> >          *caps |= BHYVE_CAP_RTC_UTC;
> >  
> > +    if (strstr(help, "sockets=n][,cores=n][,threads=n") != NULL)
> > +        *caps |= BHYVE_CAP_CPUTOPOLOGY;
> > +
> 
> I assume no concerns w/ i18n?  That is the help is always in English?

Yeah, there's no i18n for bhyve.

> It's really a shame there's no other way to determine other than help
> scraping. Other options would be the lack of "-c vcpus" in the output or
> finding topology... Avoids using that long exact string.

What is the issue with the long exact string? I guess it's worse
performance-wise, but probably not that critical compared to running the
bhyve binary... OTOH, checking it this way seems to be more
straightforward.

> Things seem find otherwise,
> 
> Reviewed-by: John Ferlan <jferlan at redhat.com>
> 
> John
> 
> [...]
> 

Roman Bogorodskiy
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 455 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20180607/b0550daf/attachment-0001.sig>


More information about the libvir-list mailing list