Re: [PATCH 3/5] lscpu: detect OS/400 and pHyp hypervisors

Heiko Carstens
2014-05-22T09:08:29Z

Hi Karel,

I think Alexander Graf (who is kvm on powerpc maintainer) should answer
how he would like to have it classified.

[full quote below]

On Thu, May 22, 2014 at 10:48:20AM +0200, Karel Zak wrote:
>
> Heiko, can you help us to classify pSeries and iSeries virtualization?
> See below. Is it FULL or PARA virtualization? Thanks!
>
> Karel
>
> On Thu, May 22, 2014 at 01:03:43AM +0200, Ruediger Meier wrote:
> > > + [HYPER_OS400] = "OS/400",
> > > + [HYPER_PHYP] = "pHyp"
> > > };
> > >
> > > const int hv_vendor_pci[] = {
> > > @@ -574,6 +577,51 @@ read_hypervisor_cpuid(struct lscpu_desc *desc)
> > > static void
> > > read_hypervisor_cpuid(struct lscpu_desc *desc __attribute__((__unused__)))
> > > {
> > > +#ifdef __powerpc__
> > > + /* powerpc:
> > > + * IBM iSeries: legacy, if /proc/iSeries exists, its para-virtualized on top of OS/400
> >
> > According to this comment ...
> >
> > > + * IBM pSeries: always has a hypervisor
> > > + * if partition-name is "full", its kind of "bare-metal": full-system-partition
> > > + * otherwise its some partition created by Hardware Management Console
> > > + * in any case, its always some sort of HVM
> > > + * KVM: "linux,kvm" in /hypervisor/compatible indicates a KVM guest
> > > + * Xen: not in use, not detected
> > > + */
> > > + if (path_exist("/proc/iSeries")) {
> > > + desc->hyper = HYPER_OS400;
> > > + desc->virtype = VIRT_FULL;
> >
> > ... shouldn't this be VIRT_PARA? Somebody who knows this may correct this.
> >
> > > + } else if (path_exist(_PATH_PROC_DEVICETREE "/ibm,partition-name")) {
> > > + FILE *fd;
> > > + desc->hyper = HYPER_PHYP;
> > > + desc->virtype = VIRT_FULL;
> >
> > Maybe more obvious here for pSeries where p seems to stand for para
> > http://www.ibm.com/developerworks/aix/library/au-syspvirtualization/index.html?S_TACT=105AGX99&S_CMP=CP
>
> --
> Karel Zak <kzak@redhat.com>
> http://karelzak.blogspot.com
>