All of lore.kernel.org
 help / color / mirror / Atom feed
* CentOS 7.2 HVM, PVM and/or PVHVM
@ 2017-03-30 15:44 James Okken
  2017-03-31 11:13 ` Paolo Bonzini
  0 siblings, 1 reply; 8+ messages in thread
From: James Okken @ 2017-03-30 15:44 UTC (permalink / raw)
  To: kvm, kvm-owner

Sorry I just hijacked that thread, I meant to change the subject before I sent!

>>>>>>
hi all,

I have this nagging question I'm hoping someone could clear up for me. There is so much information and discussion out there regarding HVM, PVM and PVHVM it is hard to get any concrete understanding of what I'm actually using.

I thought I understood that my KVM deployment on CentOS 7.2 was creating PVM VMs.

Checking dmesg, lspci, lsmod of the running centos7 VMs all indications show the VMs are PVMs.

But when I look at the XML of the VMs I see: <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>

Does that <type>hvm</type> mean I am mistaken?

Thanks
<<<<<<

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: CentOS 7.2 HVM, PVM and/or PVHVM
  2017-03-30 15:44 CentOS 7.2 HVM, PVM and/or PVHVM James Okken
@ 2017-03-31 11:13 ` Paolo Bonzini
  2017-03-31 21:20   ` James Okken
  0 siblings, 1 reply; 8+ messages in thread
From: Paolo Bonzini @ 2017-03-31 11:13 UTC (permalink / raw)
  To: James Okken, kvm, kvm-owner



On 30/03/2017 17:44, James Okken wrote:
> Sorry I just hijacked that thread, I meant to change the subject before I sent!
> 
>>>>>>>
> hi all,
> 
> I have this nagging question I'm hoping someone could clear up for me. There is so much information and discussion out there regarding HVM, PVM and PVHVM it is hard to get any concrete understanding of what I'm actually using.
> 
> I thought I understood that my KVM deployment on CentOS 7.2 was creating PVM VMs.

KVM only has HVM.  PVM and PVHVM are Xen concepts.

Paolo

> Checking dmesg, lspci, lsmod of the running centos7 VMs all indications show the VMs are PVMs.
> 
> But when I look at the XML of the VMs I see: <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
> 
> Does that <type>hvm</type> mean I am mistaken?
> 
> Thanks
> <<<<<<
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: CentOS 7.2 HVM, PVM and/or PVHVM
  2017-03-31 11:13 ` Paolo Bonzini
@ 2017-03-31 21:20   ` James Okken
  2017-04-02 19:39     ` Paolo Bonzini
  0 siblings, 1 reply; 8+ messages in thread
From: James Okken @ 2017-03-31 21:20 UTC (permalink / raw)
  To: kvm, kvm-owner

Oh wow.!? Is that really the case?
I'm surprised because I see these things in my centos7 KVM VMs (aren't they signs of a PVM or at least a PVHVM?

dmesg | grep -i virtual
[    0.000000] Booting paravirtualized kernel on KVM
[    0.398931] systemd[1]: Detected virtualization 'kvm'.


lsmod | grep virt
virtio_balloon         13664  0
virtio_blk             18156  5
virtio_console         28114  0
virtio_net             28024  0
virtio_pci             22913  0
virtio_ring            21524  5 virtio_blk,virtio_net,virtio_pci,virtio_balloon virtio_console
virtio                 15008  5 virtio_blk,virtio_net,virtio_pci,virtio_balloon virtio_console


lspci | grep -i virt
00:03.0 Ethernet controller: Red Hat, Inc Virtio network device
00:04.0 Communication controller: Red Hat, Inc Virtio console
00:06.0 SCSI storage controller: Red Hat, Inc Virtio block device
00:07.0 Unclassified device [00ff]: Red Hat, Inc Virtio memory balloon
00:09.0 Ethernet controller: Red Hat, Inc Virtio network device

Not to doubt anyone, I am just wanting to understand this fully.,

Thanks

--Jim




-----Original Message-----
From: Paolo Bonzini [mailto:paolo.bonzini@gmail.com] On Behalf Of Paolo Bonzini
Sent: Friday, March 31, 2017 7:14 AM
To: James Okken; kvm@vger.kernel.org; kvm-owner@vger.kernel.org
Subject: Re: CentOS 7.2 HVM, PVM and/or PVHVM



On 30/03/2017 17:44, James Okken wrote:
> Sorry I just hijacked that thread, I meant to change the subject before I sent!
> 
>>>>>>>
> hi all,
> 
> I have this nagging question I'm hoping someone could clear up for me. There is so much information and discussion out there regarding HVM, PVM and PVHVM it is hard to get any concrete understanding of what I'm actually using.
> 
> I thought I understood that my KVM deployment on CentOS 7.2 was creating PVM VMs.

KVM only has HVM.  PVM and PVHVM are Xen concepts.

Paolo

> Checking dmesg, lspci, lsmod of the running centos7 VMs all indications show the VMs are PVMs.
> 
> But when I look at the XML of the VMs I see: <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
> 
> Does that <type>hvm</type> mean I am mistaken?
> 
> Thanks
> <<<<<<
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: CentOS 7.2 HVM, PVM and/or PVHVM
  2017-03-31 21:20   ` James Okken
@ 2017-04-02 19:39     ` Paolo Bonzini
  2017-04-03 15:36       ` James Okken
  0 siblings, 1 reply; 8+ messages in thread
From: Paolo Bonzini @ 2017-04-02 19:39 UTC (permalink / raw)
  To: James Okken, kvm, kvm-owner



On 31/03/2017 23:20, James Okken wrote:
> Oh wow.!? Is that really the case?
> I'm surprised because I see these things in my centos7 KVM VMs (aren't they signs of a PVM or at least a PVHVM?

No, because:

> dmesg | grep -i virtual
> [    0.000000] Booting paravirtualized kernel on KVM
> [    0.398931] systemd[1]: Detected virtualization 'kvm'.

"Paravirtualized kernel" here means that the kernel knows it's running
on KVM and is using some services from the hypervisor to improve
performance or functionality.

This is not the same as Xen PV or PVH guests.  For example, Xen PV and
and PVH guests access the PCI bus through the hypervisor (or don't have
a PCI bus at all), have a Xen-specific mechanism to deliver interrupts,
and so on.  None of this is true for KVM.  A KVM guest is a superset of
what PC hardware looks like (albeit pretty old PC hardware).

Note that Xen HVM is also a superset of PC hardware, and the extra
hardware includes a special PCI device that exposes Xen constructs for
interrupts and shared memory (grant tables).

Likewise, this:

> lsmod | grep virt
> virtio_balloon         13664  0
> virtio_blk             18156  5
> virtio_console         28114  0
> virtio_net             28024  0
> virtio_pci             22913  0
> virtio_ring            21524  5 virtio_blk,virtio_net,virtio_pci,virtio_balloon virtio_console
> virtio                 15008  5 virtio_blk,virtio_net,virtio_pci,virtio_balloon virtio_console

is just a set of PCI devices whose design was optimized for
virtualization.  But you don't need to use them, and in fact nothing
would stop a hardware manufacturer from taking the same design and
implement it as a real board.  Again, this is unlike Xen PV, PVH or even
HVM where the disks, NICs etc. are not PCI devices and are tied to Xen's
interrupt delivery mechanisms and to grant tables.

Thanks,

Paolo

> 
> lspci | grep -i virt
> 00:03.0 Ethernet controller: Red Hat, Inc Virtio network device
> 00:04.0 Communication controller: Red Hat, Inc Virtio console
> 00:06.0 SCSI storage controller: Red Hat, Inc Virtio block device
> 00:07.0 Unclassified device [00ff]: Red Hat, Inc Virtio memory balloon
> 00:09.0 Ethernet controller: Red Hat, Inc Virtio network device
> 
> Not to doubt anyone, I am just wanting to understand this fully.,
> 
> Thanks
> 
> --Jim
> 
> 
> 
> 
> -----Original Message-----
> From: Paolo Bonzini [mailto:paolo.bonzini@gmail.com] On Behalf Of Paolo Bonzini
> Sent: Friday, March 31, 2017 7:14 AM
> To: James Okken; kvm@vger.kernel.org; kvm-owner@vger.kernel.org
> Subject: Re: CentOS 7.2 HVM, PVM and/or PVHVM
> 
> 
> 
> On 30/03/2017 17:44, James Okken wrote:
>> Sorry I just hijacked that thread, I meant to change the subject before I sent!
>>
>>>>>>>>
>> hi all,
>>
>> I have this nagging question I'm hoping someone could clear up for me. There is so much information and discussion out there regarding HVM, PVM and PVHVM it is hard to get any concrete understanding of what I'm actually using.
>>
>> I thought I understood that my KVM deployment on CentOS 7.2 was creating PVM VMs.
> 
> KVM only has HVM.  PVM and PVHVM are Xen concepts.
> 
> Paolo
> 
>> Checking dmesg, lspci, lsmod of the running centos7 VMs all indications show the VMs are PVMs.
>>
>> But when I look at the XML of the VMs I see: <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
>>
>> Does that <type>hvm</type> mean I am mistaken?
>>
>> Thanks
>> <<<<<<
>>
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: CentOS 7.2 HVM, PVM and/or PVHVM
  2017-04-02 19:39     ` Paolo Bonzini
@ 2017-04-03 15:36       ` James Okken
  2017-04-03 16:59         ` Paolo Bonzini
  0 siblings, 1 reply; 8+ messages in thread
From: James Okken @ 2017-04-03 15:36 UTC (permalink / raw)
  To: Paolo Bonzini, kvm, kvm-owner

Thanks Paolo,

So are you saying that if I am running a very latency sensitive, real-time, voice and video over IP application, then fundamentally KVM is not the best way to go? I would be better off going with XEN?

If Xen, then would you suggest a PVM or PVHVM? (This application has proven to run well in Amazon, and I believe we used their PVHVM offering.

Still we are striving to work in KVM (also openstack-KVM one day)

thanks

-----Original Message-----
From: Paolo Bonzini [mailto:paolo.bonzini@gmail.com] On Behalf Of Paolo Bonzini
Sent: Sunday, April 02, 2017 3:40 PM
To: James Okken; kvm@vger.kernel.org; kvm-owner@vger.kernel.org
Subject: Re: CentOS 7.2 HVM, PVM and/or PVHVM



On 31/03/2017 23:20, James Okken wrote:
> Oh wow.!? Is that really the case?
> I'm surprised because I see these things in my centos7 KVM VMs (aren't they signs of a PVM or at least a PVHVM?

No, because:

> dmesg | grep -i virtual
> [    0.000000] Booting paravirtualized kernel on KVM
> [    0.398931] systemd[1]: Detected virtualization 'kvm'.

"Paravirtualized kernel" here means that the kernel knows it's running on KVM and is using some services from the hypervisor to improve performance or functionality.

This is not the same as Xen PV or PVH guests.  For example, Xen PV and and PVH guests access the PCI bus through the hypervisor (or don't have a PCI bus at all), have a Xen-specific mechanism to deliver interrupts, and so on.  None of this is true for KVM.  A KVM guest is a superset of what PC hardware looks like (albeit pretty old PC hardware).

Note that Xen HVM is also a superset of PC hardware, and the extra hardware includes a special PCI device that exposes Xen constructs for interrupts and shared memory (grant tables).

Likewise, this:

> lsmod | grep virt
> virtio_balloon         13664  0
> virtio_blk             18156  5
> virtio_console         28114  0
> virtio_net             28024  0
> virtio_pci             22913  0
> virtio_ring            21524  5 virtio_blk,virtio_net,virtio_pci,virtio_balloon virtio_console
> virtio                 15008  5 virtio_blk,virtio_net,virtio_pci,virtio_balloon virtio_console

is just a set of PCI devices whose design was optimized for virtualization.  But you don't need to use them, and in fact nothing would stop a hardware manufacturer from taking the same design and implement it as a real board.  Again, this is unlike Xen PV, PVH or even HVM where the disks, NICs etc. are not PCI devices and are tied to Xen's interrupt delivery mechanisms and to grant tables.

Thanks,

Paolo

> 
> lspci | grep -i virt
> 00:03.0 Ethernet controller: Red Hat, Inc Virtio network device
> 00:04.0 Communication controller: Red Hat, Inc Virtio console
> 00:06.0 SCSI storage controller: Red Hat, Inc Virtio block device
> 00:07.0 Unclassified device [00ff]: Red Hat, Inc Virtio memory balloon
> 00:09.0 Ethernet controller: Red Hat, Inc Virtio network device
> 
> Not to doubt anyone, I am just wanting to understand this fully.,
> 
> Thanks
> 
> --Jim
> 
> 
> 
> 
> -----Original Message-----
> From: Paolo Bonzini [mailto:paolo.bonzini@gmail.com] On Behalf Of 
> Paolo Bonzini
> Sent: Friday, March 31, 2017 7:14 AM
> To: James Okken; kvm@vger.kernel.org; kvm-owner@vger.kernel.org
> Subject: Re: CentOS 7.2 HVM, PVM and/or PVHVM
> 
> 
> 
> On 30/03/2017 17:44, James Okken wrote:
>> Sorry I just hijacked that thread, I meant to change the subject before I sent!
>>
>>>>>>>>
>> hi all,
>>
>> I have this nagging question I'm hoping someone could clear up for me. There is so much information and discussion out there regarding HVM, PVM and PVHVM it is hard to get any concrete understanding of what I'm actually using.
>>
>> I thought I understood that my KVM deployment on CentOS 7.2 was creating PVM VMs.
> 
> KVM only has HVM.  PVM and PVHVM are Xen concepts.
> 
> Paolo
> 
>> Checking dmesg, lspci, lsmod of the running centos7 VMs all indications show the VMs are PVMs.
>>
>> But when I look at the XML of the VMs I see: <type arch='x86_64' 
>> machine='pc-i440fx-rhel7.0.0'>hvm</type>
>>
>> Does that <type>hvm</type> mean I am mistaken?
>>
>> Thanks
>> <<<<<<
>>
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: CentOS 7.2 HVM, PVM and/or PVHVM
  2017-04-03 15:36       ` James Okken
@ 2017-04-03 16:59         ` Paolo Bonzini
  2017-04-03 17:22           ` James Okken
  0 siblings, 1 reply; 8+ messages in thread
From: Paolo Bonzini @ 2017-04-03 16:59 UTC (permalink / raw)
  To: James Okken, kvm, kvm-owner



On 03/04/2017 17:36, James Okken wrote:
> Thanks Paolo,
> 
> So are you saying that if I am running a very latency sensitive,
> real-time, voice and video over IP application, then fundamentally
> KVM is not the best way to go? I would be better off going with XEN?

No, I haven't said anything like that... Where did you infer it from? :)

In fact I said:

> the kernel knows it's running on KVM and is using some services from
> the hypervisor to improve performance or functionality.
> [virtio] is just a set of PCI devices whose design was optimized for
> virtualization

KVM has effectively all the benefits of paravirtualization while using
standard PC hardware and firmware.  The same holds for Xen too, there is
hardly any performance penalty from hardware emulation in HVM domains
compared to PVH, and both Xen PVH and Xen HVM should be faster than Xen PV.

KVM is used often with DPDK and other latency sensitive applications.  I
suggest you look into using nohz_full in the host and the guest, as well
as the Linux realtime patch.

Thanks,

Paolo

^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: CentOS 7.2 HVM, PVM and/or PVHVM
  2017-04-03 16:59         ` Paolo Bonzini
@ 2017-04-03 17:22           ` James Okken
  2017-04-03 17:26             ` Paolo Bonzini
  0 siblings, 1 reply; 8+ messages in thread
From: James Okken @ 2017-04-03 17:22 UTC (permalink / raw)
  To: Paolo Bonzini, kvm, kvm-owner

Sorry Paolo, it was my understanding inferred from other sources  that caused me to infer the wrong thing from what you said.
:)

Thank you for the advice. I will look into nohz_full in the host and the guest, as well as the Linux realtime patch

So may I infer from what you said that we can get better realtime performance by tweaking HVM VMs, both on KVM and XEN?


Thanks!

-----Original Message-----
From: Paolo Bonzini [mailto:pbonzini@redhat.com] 
Sent: Monday, April 03, 2017 12:59 PM
To: James Okken; kvm@vger.kernel.org; kvm-owner@vger.kernel.org
Subject: Re: CentOS 7.2 HVM, PVM and/or PVHVM



On 03/04/2017 17:36, James Okken wrote:
> Thanks Paolo,
> 
> So are you saying that if I am running a very latency sensitive, 
> real-time, voice and video over IP application, then fundamentally KVM 
> is not the best way to go? I would be better off going with XEN?

No, I haven't said anything like that... Where did you infer it from? :)

In fact I said:

> the kernel knows it's running on KVM and is using some services from 
> the hypervisor to improve performance or functionality.
> [virtio] is just a set of PCI devices whose design was optimized for 
> virtualization

KVM has effectively all the benefits of paravirtualization while using standard PC hardware and firmware.  The same holds for Xen too, there is hardly any performance penalty from hardware emulation in HVM domains compared to PVH, and both Xen PVH and Xen HVM should be faster than Xen PV.

KVM is used often with DPDK and other latency sensitive applications.  I suggest you look into using nohz_full in the host and the guest, as well as the Linux realtime patch.

Thanks,

Paolo

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: CentOS 7.2 HVM, PVM and/or PVHVM
  2017-04-03 17:22           ` James Okken
@ 2017-04-03 17:26             ` Paolo Bonzini
  0 siblings, 0 replies; 8+ messages in thread
From: Paolo Bonzini @ 2017-04-03 17:26 UTC (permalink / raw)
  To: James Okken, kvm, kvm-owner



On 03/04/2017 19:22, James Okken wrote:
> Sorry Paolo, it was my understanding inferred from other sources  that caused me to infer the wrong thing from what you said.
> :)
> 
> Thank you for the advice. I will look into nohz_full in the host and the guest, as well as the Linux realtime patch
> 
> So may I infer from what you said that we can get better realtime performance by tweaking HVM VMs, both on KVM and XEN?

For Xen, PVHVM and HVM are more or less the same.  However, PVHVM is a
bit less resource-intensive due to how Xen HVM works, and therefore it
is preferrable for recent Linux guests as far as I know.

Paolo

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2017-04-03 17:26 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-30 15:44 CentOS 7.2 HVM, PVM and/or PVHVM James Okken
2017-03-31 11:13 ` Paolo Bonzini
2017-03-31 21:20   ` James Okken
2017-04-02 19:39     ` Paolo Bonzini
2017-04-03 15:36       ` James Okken
2017-04-03 16:59         ` Paolo Bonzini
2017-04-03 17:22           ` James Okken
2017-04-03 17:26             ` Paolo Bonzini

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.