From: Juergen Gross <jgross@suse.com>
To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
xen-devel@lists.xenproject.org,
"Luis R. Rodriguez" <mcgrof@suse.com>,
David Vrabel <david.vrabel@citrix.com>,
Jan Beulich <JBeulich@suse.com>
Subject: Re: RFC: xen config changes v4
Date: Fri, 27 Feb 2015 13:36:33 +0100 [thread overview]
Message-ID: <54F064D1.8030604@suse.com> (raw)
In-Reply-To: <alpine.DEB.2.02.1502271215060.23507@kaball.uk.xensource.com>
On 02/27/2015 01:24 PM, Stefano Stabellini wrote:
> On Fri, 27 Feb 2015, Juergen Gross wrote:
>> On 02/27/2015 11:11 AM, Stefano Stabellini wrote:
>>> On Fri, 27 Feb 2015, Juergen Gross wrote:
>>>> 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.
>>>
>>> This is not a convincing explanation. Debian, Ubuntu and Fedora seems
>>> to be able to cope with it just fine.
>>>
>>> Why do you want to do that, even though it will cause a performance
>>> regression and a maintenance pain? You haven't provided a reason yet.
>>>
>>
>> Either we are talking about different things, or I really don't
>> understand your problem here. I don't want to disable something. I
>> just want to enable kernels without PARAVIRT to run under Xen better
>> than today. Being it 32 bit non-PAE kernels as Ian pointed out or
>> distro kernels like e.g. SLES and probably RHEL.
>>
>> Using PV frontends is completely orthogonal to other PV enhancements
>> like PARAVIRT_CLOCK, HVMOP_pagetable_dying or PV IPIs. So why do you
>> object enabling the PV frontends for those kernels?
>
> I am for it. I would like to avoid two user visible XEN enablement
> options (XEN_FRONTEND vs. XEN_PVHVM) for x86_64 and PAE HVM guests to
> avoid configurations with just XEN_FRONTEND, that can be considered a
> performance regression compared to what we have now (on x86_64 and PAE).
Would you be okay with making this an expert configuration alternative
for PAE/x86_64? This would enable the possibility to use PV drivers for
native-performance-tuned kernels. I would explicitly mention the better
alternative XEN_PVHVM in the Kconfig help text.
Juergen
next prev parent reply other threads:[~2015-02-27 12:36 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
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 [this message]
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=54F064D1.8030604@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.