All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Monjalon <thomas@monjalon.net>
To: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Cc: dev@dpdk.org, chaozhu@linux.vnet.ibm.com
Subject: Re: [PATCH] eal/x86: get hypervisor name
Date: Fri, 01 Dec 2017 09:52:26 +0100	[thread overview]
Message-ID: <9012196.L72nSLPZ2J@xps> (raw)
In-Reply-To: <20171201081234.GA24936@jerin>

01/12/2017 09:12, Jerin Jacob:
> -----Original Message-----
> > Date: Thu, 30 Nov 2017 22:47:20 +0100
> > From: Thomas Monjalon <thomas@monjalon.net>
> > To: dev@dpdk.org
> > Subject: [dpdk-dev] [PATCH] eal/x86: get hypervisor name
> > X-Mailer: git-send-email 2.15.0
> > 
> > The CPUID instruction is catched by hypervisor which can return
> > a flag indicating one is running, and its name.
> > 
> > Suggested-by: Stephen Hemminger <sthemmin@microsoft.com>
> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> > ---
> > warning: to be tested
> > ---
> >  lib/librte_eal/common/arch/arm/rte_cpuflags.c      |  6 +++++
> >  lib/librte_eal/common/arch/ppc_64/rte_cpuflags.c   |  6 +++++
> >  lib/librte_eal/common/arch/x86/rte_cpuflags.c      | 30 ++++++++++++++++++++++
> >  .../common/include/arch/x86/rte_cpuflags.h         |  1 +
> >  .../common/include/generic/rte_cpuflags.h          | 14 ++++++++++
> >  lib/librte_eal/rte_eal_version.map                 |  9 ++++++-
> >  6 files changed, 65 insertions(+), 1 deletion(-)
> >  	RTE_CPUFLAG_FPU,                    /**< FPU */
> > diff --git a/lib/librte_eal/common/include/generic/rte_cpuflags.h b/lib/librte_eal/common/include/generic/rte_cpuflags.h
> > index c1c5551fc..3832fb851 100644
> > --- a/lib/librte_eal/common/include/generic/rte_cpuflags.h
> > +++ b/lib/librte_eal/common/include/generic/rte_cpuflags.h
> > @@ -93,4 +93,18 @@ rte_cpu_check_supported(void);
> >  int
> >  rte_cpu_is_supported(void);
> >  
> > +enum rte_hypervisor {
> > +	RTE_HYPERVISOR_NONE,
> > +	RTE_HYPERVISOR_KVM,
> > +	RTE_HYPERVISOR_HYPERV,
> > +	RTE_HYPERVISOR_VMWARE,
> > +	RTE_HYPERVISOR_UNKNOWN
> > +};
> > +
> > +/**
> > + * Get the type of hypervisor it is running on.
> > + */
> > +enum rte_hypervisor
> > +rte_hypervisor_get_name(void);
> 
> Cc: chaozhu@linux.vnet.ibm.com
> 
> IMO, cpu_flag area is the not the correct abstraction to get
> the hypervisor name. It is x86 specific. I think, correct
> usage will be to call hypervisor specific APIs like KVM_GET_API_VERSION
> https://lwn.net/Articles/658511/

I think it is quite logical because the CPU is virtualized by the hypervisor.
It is similar to get the CPU model, but for a different ring level.

> BTW, What is the need for an DPDK application to know the 
> hypervisor name? What action an DPDK application should
> take based on hypervisor name? if is not interest of data plane
> application why it needs to be abstracted in DPDK?

I see two usages for now.
We can automate the use of the specific VMware TSC (it is an option currently).
We can adapt the device management policy on Hyper-V without waiting a device scan.

  reply	other threads:[~2017-12-01  8:52 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-30 21:47 [PATCH] eal/x86: get hypervisor name Thomas Monjalon
2017-11-30 21:55 ` Stephen Hemminger
2017-11-30 22:03   ` Thomas Monjalon
2017-11-30 22:11     ` Stephen Hemminger
2017-12-01  8:12 ` Jerin Jacob
2017-12-01  8:52   ` Thomas Monjalon [this message]
2017-12-01  9:17     ` Jerin Jacob
2017-12-30 22:47 ` [PATCH v2] " Thomas Monjalon
2018-01-02 10:20   ` Jerin Jacob
2018-01-02 16:34   ` Stephen Hemminger
2018-01-03  8:11     ` Thomas Monjalon
2018-01-07 22:20 ` [PATCH v3] " Thomas Monjalon
2018-01-08 16:54   ` Stephen Hemminger
2018-01-08 18:45     ` Thomas Monjalon
2018-01-08 19:05       ` Stephen Hemminger
2018-01-11 23:40   ` Thomas Monjalon

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=9012196.L72nSLPZ2J@xps \
    --to=thomas@monjalon.net \
    --cc=chaozhu@linux.vnet.ibm.com \
    --cc=dev@dpdk.org \
    --cc=jerin.jacob@caviumnetworks.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.