All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Jan Beulich" <JBeulich@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Lars Kurth <lars.kurth@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wei.liu2@citrix.com>,
	George Dunlap <George.Dunlap@eu.citrix.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Ian Jackson <Ian.Jackson@eu.citrix.com>, Tim Deegan <tim@xen.org>,
	Julien Grall <julien.grall@arm.com>,
	xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 21/23] x86: expose CONFIG_HVM
Date: Mon, 03 Sep 2018 05:35:33 -0600	[thread overview]
Message-ID: <5B8D1C8502000078001E489B@prv1-mh.provo.novell.com> (raw)
In-Reply-To: <226289fc-a631-8490-c9ca-f05a34ee4f07@citrix.com>

>>> On 31.08.18 at 22:09, <andrew.cooper3@citrix.com> wrote:
> On 30/08/18 07:21, Jan Beulich wrote:
>>>>>>> +
>>>>>>> +	  If unsure, say Y.
>>>>>>> +
>>>>>>>  
>>>>>>>  config SHADOW_PAGING
>>>>>> No double blank lines please.
>>>>>>
>>>>>> My previously voiced reservations wrt the shim remain. I continue
>>>>>> to disagree with Andrew that the symbol needs to be visible in a
>>>>>> shim-only config, and I continue to demand as a minimum that the
>>>>>> default here be N in that case if the symbol really is to remain visible.
>>>>> Conditionally influencing the default is fine.  Hiding the symbol is not.
>>>>>
>>>>> To be very very clear, I will nack/revert any patch which tries to
>>>>> insert a dependency here.  I find your reasoning to be wrong, and
>>>>> sufficiently short sighted and detrimental to users, that I'm not going
>>>>> to let the patch in.
>>>> Since iirc you didn't respond to my most recent comment on v1 here,
>>>> I would have very much hoped you'd explain your position a little
>>>> better than just claiming that the symbol becoming invisible with a
>>>> dependency added is a bad thing. I'm certainly open to (good)
>>>> arguments, but I'm not accepting a plain statement without proper
>>>> explanation.
>>> I'm not sure how to put this any more clearly.
>>>
>>> Our users cannot read *your* mind when they are trying to use `make
>>> menuconfig`.
>>>
>>> Since our users are not experts in Xen, the lack of an HVM option is
>>> going to cause confusion and questions to mailing lists/IRC, rather than
>>> the realisation that (obviously?) they needed to disable
>>> PV_SHIM_EXCLUSIVE first.
>> But that's an argument to remove support for "depends on" altogether
>> from the kconfig sources.
> 
> Nonsense.  That is not a remotely plausible interpretation of what I said.
> 
> Dependences are normal and expected for functionality built on top of
> each other.  What makes this easy and logical for people to navigate is
> that dependencies are normally a self-contained directed acyclic tree.
> 
> In this case, you're adding a link between a leaf at the bottom of the
> PV tree which chops off the entire HVM tree, and it is dependences like
> this which are confusing for users (who are not experts) to navigate.
> 
> If something is going to malfunction (fail to compile/crash on boot/etc)
> then a dependency is the correct tool to use.  Having a slightly fat
> binary with some unused code is not the same class of problem, and
> should not be treated as if they are the same.

And you are willing to exclude that no issues will slip in over time,
where shim-exclusive is taken to imply absence of HVM support?
A pretty obvious example could be the simple omission of an
is_{pv,hvm}_...() check somewhere.

>>> Finally (and minor in comparison), from the point of view of keeping our
>>> interfaces clean, we'll want Randconfig to occasionally test with both
>>> of them enabled.
>> Why, when the combination doesn't make sense?
> 
> Case in point, "x86: use VMLOAD for PV context switch".
> 
> A user wanting to run PVShim most efficiently on an AMD Fam17h (which
> has virtual vmload/save support) would enable nested virt and want to
> use vmload support.  Such a user would want both
> CONFIG_PV_SHIM_EXCLUSIVE and CONFIG_HVM enabled.

I doubt this is a suitable example. I have a hard time seeing anyone
wanting to pull in the whole HVM baggage just for this one piece of
optimization.

>> Anyway - I'm extending the Cc list to get the more general underlying
>> question resolved. To those who haven't followed the discussion from
>> the beginning: The question is whether senseless combinations of
>> Kconfig options should be permitted, or whether instead "depends on"
>> is a reasonable thing to use in such cases to prevent their (combined)
>> selection.
> 
> The people whose opinions matter most here are those who build/package
> Xen, who are not developers and therefore not experts in how the
> hypervisor fits together.
> 
> If it turns out that the majority of users disagree with me, then I'll
> withdraw my nack, but the reason I'm being such a pain in this regard is
> that this thread re-enforces my opinion that your judgement here is
> wrong, is actively detrimental to usability (which is far wider than
> just developer usability), and that the users will agree with me in this
> matter.

That's as much your anticipation of what they might want, as it is
mine to think that helping them to avoid bogus configurations is the
best we can do here.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

  reply	other threads:[~2018-09-03 11:35 UTC|newest]

Thread overview: 97+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-26 12:19 [PATCH v2 00/23] Make CONFIG_HVM work Wei Liu
2018-08-26 12:19 ` [PATCH v2 01/23] x86: change name of parameter for various invlpg functions Wei Liu
2018-08-27 13:49   ` Boris Ostrovsky
2018-08-27 13:54     ` Jan Beulich
2018-08-27 14:20   ` Jan Beulich
2018-08-30  1:26   ` Tian, Kevin
2018-09-03 13:46   ` Wei Liu
2018-09-04 13:42     ` Boris Ostrovsky
2018-08-26 12:19 ` [PATCH v2 02/23] xen: is_hvm_{domain, vcpu} should evaluate to false when !CONFIG_HVM Wei Liu
2018-08-27 14:24   ` Jan Beulich
2018-08-28  8:41     ` Wei Liu
2018-08-28 11:09       ` Julien Grall
2018-08-26 12:19 ` [PATCH v2 03/23] x86: enclose hvm_op and dm_op in CONFIG_HVM in relevant tables Wei Liu
2018-08-27 14:24   ` Jan Beulich
2018-08-26 12:19 ` [PATCH v2 04/23] x86/hvm: provide hvm_hap_supported Wei Liu
2018-08-27 14:25   ` Jan Beulich
2018-08-26 12:19 ` [PATCH v2 05/23] x86: provide stub for memory_type_changed Wei Liu
2018-08-27 14:28   ` Jan Beulich
2018-08-26 12:19 ` [PATCH v2 06/23] x86: don't call vpci function in physdev_op when !CONFIG_HAS_VPCI Wei Liu
2018-08-27 14:29   ` Jan Beulich
2018-08-28  8:45     ` Wei Liu
2018-08-28  9:08       ` Jan Beulich
2018-08-29 16:23         ` Wei Liu
2018-08-26 12:19 ` [PATCH v2 07/23] x86/vpmu: put HVM only code under CONFIG_HVM Wei Liu
2018-08-27 15:03   ` Jan Beulich
2018-08-26 12:19 ` [PATCH v2 08/23] xen/pt: io.c contains HVM only code Wei Liu
2018-08-27 15:04   ` Jan Beulich
2018-08-26 12:19 ` [PATCH v2 09/23] x86/pt: make it build with !CONFIG_HVM Wei Liu
2018-08-27 15:07   ` Jan Beulich
2018-08-30  1:29   ` Tian, Kevin
2018-08-26 12:19 ` [PATCH v2 10/23] x86/pt: split out HVM functions from vtd.c Wei Liu
2018-08-30  1:29   ` Tian, Kevin
2018-08-26 12:19 ` [PATCH v2 11/23] x86: XENMEM_resource_ioreq_server is HVM only Wei Liu
2018-08-27 15:13   ` Jan Beulich
2018-08-29 16:28     ` Wei Liu
2018-08-26 12:19 ` [PATCH v2 12/23] x86: monitor.o is currently " Wei Liu
2018-08-26 16:33   ` Razvan Cojocaru
2018-08-27 15:18   ` Jan Beulich
2018-08-27 15:23     ` Razvan Cojocaru
2018-08-29 16:42     ` Wei Liu
2018-08-29 17:43       ` Tamas K Lengyel
2018-08-29 18:09         ` Razvan Cojocaru
2018-08-30  7:14           ` Wei Liu
2018-08-26 12:19 ` [PATCH v2 13/23] x86: provide stubs, declarations and macros in hvm.h Wei Liu
2018-08-27 15:43   ` Jan Beulich
2018-09-03  9:45   ` Paul Durrant
2018-09-03  9:50     ` Wei Liu
2018-08-26 12:19 ` [PATCH v2 14/23] x86/mm: put nested p2m code under CONFIG_HVM Wei Liu
2018-08-27 15:56   ` Jan Beulich
2018-08-28  8:40     ` Wei Liu
2018-08-28  9:10       ` Jan Beulich
2018-08-26 12:19 ` [PATCH v2 15/23] x86/mm: put HVM only " Wei Liu
2018-08-26 16:39   ` Razvan Cojocaru
2018-08-27  9:03   ` Wei Liu
2018-08-28 10:41     ` Wei Liu
2018-08-28 10:53       ` Jan Beulich
2018-08-27 16:01   ` Jan Beulich
2018-08-28 10:41     ` Wei Liu
2018-08-26 12:19 ` [PATCH v2 16/23] x86/p2m/pod: make it build with !CONFIG_HVM Wei Liu
2018-08-28 10:47   ` Jan Beulich
2018-08-28 10:54     ` Wei Liu
2018-08-28 11:32       ` Jan Beulich
2018-08-26 12:19 ` [PATCH v2 17/23] x86/mm: put paging_update_nestedmode under CONFIG_HVM Wei Liu
2018-08-28 10:50   ` Jan Beulich
2018-08-30  7:42     ` Wei Liu
2018-08-30  8:35       ` Jan Beulich
2018-09-03 14:27         ` Wei Liu
2018-09-03 14:48           ` Jan Beulich
2018-08-26 12:19 ` [PATCH v2 18/23] x86/domctl: XEN_DOMCTL_debug_op is HVM only Wei Liu
2018-08-28 10:50   ` Jan Beulich
2018-08-26 12:19 ` [PATCH v2 19/23] x86: PIT emulation is common to both PV and HVM Wei Liu
2018-08-28 11:44   ` Jan Beulich
2018-08-28 13:19     ` Wei Liu
2018-08-28 14:36       ` Jan Beulich
2018-08-28 14:48         ` Wei Liu
2018-08-28 14:51           ` Andrew Cooper
2018-08-28 14:58             ` Wei Liu
2018-08-28 15:04               ` Jan Beulich
2018-08-28 15:17                 ` Wei Liu
2018-08-28 14:56           ` Wei Liu
2018-08-26 12:19 ` [PATCH v2 20/23] xen: connect guest creation with CONFIG_{HVM, PV} Wei Liu
2018-08-28 11:07   ` Julien Grall
2018-08-28 13:13     ` Wei Liu
2018-08-28 11:47   ` Jan Beulich
2018-08-28 13:15     ` Wei Liu
2018-08-26 12:19 ` [PATCH v2 21/23] x86: expose CONFIG_HVM Wei Liu
2018-08-28 11:50   ` Jan Beulich
2018-08-28 12:14     ` Andrew Cooper
2018-08-28 13:33       ` Jan Beulich
2018-08-29 16:56         ` Andrew Cooper
2018-08-30  6:21           ` Jan Beulich
2018-08-30  6:57             ` Juergen Gross
2018-08-31 20:09             ` Andrew Cooper
2018-09-03 11:35               ` Jan Beulich [this message]
2018-08-26 12:19 ` [PATCH v2 22/23] x86/pvshim: disable HVM for PV shim Wei Liu
2018-08-26 12:19 ` [PATCH v2 23/23] xen: decouple HVM and IOMMU capabilities Wei Liu
2018-08-28 11:56   ` Jan Beulich

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=5B8D1C8502000078001E489B@prv1-mh.provo.novell.com \
    --to=jbeulich@suse.com \
    --cc=George.Dunlap@eu.citrix.com \
    --cc=Ian.Jackson@eu.citrix.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=cardoe@cardoe.com \
    --cc=julien.grall@arm.com \
    --cc=lars.kurth@citrix.com \
    --cc=sstabellini@kernel.org \
    --cc=tim@xen.org \
    --cc=wei.liu2@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.