From: Juergen Gross <jgross@suse.com>
To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: "Luis R. Rodriguez" <mcgrof@suse.com>,
David Vrabel <david.vrabel@citrix.com>,
Jan Beulich <JBeulich@suse.com>,
xen-devel@lists.xenproject.org,
Boris Ostrovsky <boris.ostrovsky@oracle.com>
Subject: Re: RFC: xen config changes v4
Date: Fri, 27 Feb 2015 10:55:57 +0100 [thread overview]
Message-ID: <54F03F2D.8050209@suse.com> (raw)
In-Reply-To: <alpine.DEB.2.02.1502270930230.23507@kaball.uk.xensource.com>
On 02/27/2015 10:41 AM, Stefano Stabellini wrote:
> On Fri, 27 Feb 2015, Juergen Gross wrote:
>> On 02/26/2015 06:42 PM, Stefano Stabellini wrote:
>>> On Thu, 26 Feb 2015, Luis R. Rodriguez wrote:
>>>> On Thu, Feb 26, 2015 at 11:08:20AM +0000, Stefano Stabellini wrote:
>>>>> On Thu, 26 Feb 2015, David Vrabel wrote:
>>>>>> On 26/02/15 04:59, Juergen Gross wrote:
>>>>>>>
>>>>>>> So we are again in the situation that pv-drivers always imply the
>>>>>>> pvops
>>>>>>> kernel (PARAVIRT selected). I started the whole Kconfig rework to
>>>>>>> eliminate this dependency.
>>>>>>
>>>>>> Yes. Can you produce a series that just addresses this one issue.
>>>>>>
>>>>>> In the absence of any concrete requirement for this big Kconfig reorg
>>>>>> I
>>>>>> I don't think it is helpful.
>>>>>
>>>>> I clearly missed some context as I didn't realize that this was the
>>>>> intended goal. Why do we want this? Please explain as it won't come
>>>>> for free.
>>>>>
>>>>>
>>>>> We have a few PV interfaces for HVM guests that need PARAVIRT in Linux
>>>>> in order to be used, for example pv_time_ops and HVMOP_pagetable_dying.
>>>>> They are critical performance improvements and from the interface
>>>>> perspective, small enough that doesn't make much sense having a separate
>>>>> KConfig option for them.
>>>>>
>>>>>
>>>>> In order to reach the goal above we necessarily need to introduce a
>>>>> differentiation in terms of PV on HVM guests in Linux:
>>>>>
>>>>> 1) basic guests with PV network, disk, etc but no PV timers, no
>>>>> HVMOP_pagetable_dying, no PV IPIs
>>>>> 2) full PV on HVM guests that have PV network, disk, timers,
>>>>> HVMOP_pagetable_dying, PV IPIs and anything else that makes sense.
>>>>>
>>>>> 2) is much faster than 1) on Xen and 2) is only a tiny bit slower than
>>>>> 1) on native x86
>>>>
>>>> Also don't we shove 2) down hvm guests right now? Even when everything is
>>>> built in I do not see how we opt out for HVM for 1) at run time right now.
>>>>
>>>> If this is true then the question of motivation for this becomes even
>>>> stronger I think.
>>>
>>> Yes, indeed there is no way to do 1) at the moment. And for good
>>> reasons, see above.
>>
>> Hmm, after checking the code I'm not convinced:
>>
>> - HVMOP_pagetable_dying is obsolete on modern hardware supporting
>> EPT/HAP
>
> That might be true, but what about older hardware?
> Even on modern hardware a few workloads still run faster on shadow.
> But if HVMOP_pagetable_dying is the only reason to keep PARAVIRT for HVM
> guests, then I agree with you that we should remove it.
>
>
>> - PV IPIs are not needed on single-vcpu guests
>>
>> - PARAVIRT_CLOCK doesn't need PARAVIRT (in fact the SUSEs kernel configs
>> for all x86_64 kernels have CONFIG_PARAVIRT_CLOCK=y)
>>
>> So I think we really should enable building Xen frontends without
>> PARAVIRT, implying at least no XEN_PV and no XEN_PVH.
>>
>> I'll have a try setting up patches.
>
> If we are doing this as a performance improvement, I would like to see a
> couple of benchmarks (kernbench, hackbench) to show that on a
> single-vcpu guest and multi-vcpu guest (let's say 4 vcpus) disabling
> PARAVIRT leads to better performance on Xen on EPT hardware.
This is not meant to be a performance improvement. It is meant to enable
a standard distro kernel configured without PARAVIRT to be able to run
as a HVM guest using the pv-drivers.
Juergen
next prev parent reply other threads:[~2015-02-27 9:56 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-26 1:53 RFC: xen config changes v4 Luis R. Rodriguez
2015-02-26 4:59 ` Juergen Gross
2015-02-26 10:08 ` David Vrabel
2015-02-26 11:08 ` Stefano Stabellini
2015-02-26 17:29 ` Luis R. Rodriguez
2015-02-26 17:42 ` Stefano Stabellini
2015-02-26 18:48 ` Luis R. Rodriguez
2015-02-27 6:14 ` Juergen Gross
2015-02-27 21:33 ` Luis R. Rodriguez
2015-02-27 10:04 ` Ian Campbell
2015-02-27 6:09 ` Juergen Gross
2015-02-27 9:41 ` Stefano Stabellini
2015-02-27 9:55 ` Juergen Gross [this message]
2015-02-27 10:11 ` Stefano Stabellini
2015-02-27 10:30 ` Ian Campbell
2015-02-27 11:27 ` Stefano Stabellini
2015-02-27 11:30 ` Juergen Gross
2015-02-27 12:24 ` Stefano Stabellini
2015-02-27 12:36 ` Juergen Gross
2015-02-27 13:38 ` Stefano Stabellini
2015-02-27 14:30 ` Juergen Gross
2015-02-27 17:53 ` Luis R. Rodriguez
2015-02-27 18:27 ` Konrad Rzeszutek Wilk
2015-03-02 9:55 ` Stefano Stabellini
2015-03-02 16:07 ` Konrad Rzeszutek Wilk
2015-03-02 17:07 ` Stefano Stabellini
2015-03-02 17:30 ` Konrad Rzeszutek Wilk
2015-03-02 21:15 ` Luis R. Rodriguez
2015-03-03 6:59 ` Juergen Gross
2015-03-02 21:08 ` Luis R. Rodriguez
2015-03-02 20:39 ` Luis R. Rodriguez
2015-03-06 17:17 ` Luis R. Rodriguez
2015-03-06 18:02 ` Konrad Rzeszutek Wilk
2015-03-06 18:08 ` Luis R. Rodriguez
2015-03-06 18:24 ` Roger Pau Monné
2015-02-27 12:48 ` Ian Campbell
2015-02-27 18:18 ` Konrad Rzeszutek Wilk
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=54F03F2D.8050209@suse.com \
--to=jgross@suse.com \
--cc=JBeulich@suse.com \
--cc=boris.ostrovsky@oracle.com \
--cc=david.vrabel@citrix.com \
--cc=mcgrof@suse.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=xen-devel@lists.xenproject.org \
/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.