[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] xen/arm: Remove EXPERT dependancy

Hi Stefano,

On 23/10/2020 17:57, Stefano Stabellini wrote:
On Fri, 23 Oct 2020, Julien Grall wrote:
Hi Stefano,

On 22/10/2020 22:17, Stefano Stabellini wrote:
On Thu, 22 Oct 2020, Julien Grall wrote:
On 22/10/2020 02:43, Elliott Mitchell wrote:
Linux requires UEFI support to be enabled on ARM64 devices.  While many
ARM64 devices lack ACPI, the writing seems to be on the wall of
potentially taking over.  Some common devices may need ACPI table

Presently I think it is worth removing the dependancy on CONFIG_EXPERT.

The idea behind EXPERT is to gate any feature that is not considered to be
stable/complete enough to be used in production.

Yes, and from that point of view I don't think we want to remove EXPERT
from ACPI yet. However, the idea of hiding things behind EXPERT works
very well for new esoteric features, something like memory introspection
or memory overcommit.

Memaccess is not very new ;).

It does not work well for things that are actually
required to boot on the platform.

I am not sure where is the problem. It is easy to select EXPERT from the
menuconfig. It also hints the user that the feature may not fully work.

Typically ACPI systems don't come with device tree at all (RPi4 being an
exception), so users don't really have much of a choice in the matter.

And they typically have IOMMUs.

  From that point of view, it would be better to remove EXPERT from ACPI,
maybe even build ACPI by default, *but* to add a warning at boot saying
something like:

"ACPI support is experimental. Boot using Device Tree if you can."

That would better convey the risks of using ACPI, while at the same time
making it a bit easier for users to boot on their ACPI-only platforms.

Right, I agree that this make easier for users to boot Xen on ACPI-only
platform. However, based on above, it is easy enough for a developper to
rebuild Xen with ACPI and EXPERT enabled.

So what sort of users are you targeting?

Somebody trying Xen for the first time, they might know how to build it
but they might not know that ACPI is not available by default, and they
might not know that they need to enable EXPERT in order to get the ACPI
option in the menu. It is easy to do once you know it is there,
otherwise one might not know where to look in the menu.

Right, EXPERT can now be enabled using Kconfig. So it is not very different from an option Foo has been hidden because the dependency Bar has not been selected.

It should be easy enough (if it is not we should fix it) to figure out the dependency when searching the option via menuconfig.

I am sort of okay to remove EXPERT.

OK. This would help (even without building it by default) because as you
go and look at the menu the first time, you'll find ACPI among the
options right away.

To be honest, this step is probably the easiest in the full process to get Xen build and booted on Arm.

I briefly looked at Elliot's v2, and I can't keep thinking that we are trying to re-invent EXPERT for ACPI because we think the feature is *more* important than any other feature gated by EXPERT.

In fact, all the features behind EXPERT are important. But they have been gated by EXPERT because they are not mature enough.

We already moved EXPERT from a command line option to a menuconfig option. So it should be easy enough to enable it now. If it still not the case, then we should improve it.

But I don't think ACPI is mature enough to deserve a different treatment. It would be more useful to get to the stage where ACPI can work without any crash/issue first.

But I still think building ACPI by default
is still wrong because our default .config is meant to be (security)
supported. I don't think ACPI can earn this qualification today.

Certainly we don't want to imply ACPI is security supported. I was
looking at SUPPORT.md and it is only says:

EXPERT and DEBUG Kconfig options are not security supported. Other
Kconfig options are supported, if the related features are marked as
supported in this document.

So technically we could enable ACPI in the build by default as ACPI for
ARM is marked as experimental. However, I can see that it is not a
great idea to enable by default an unsupported option in the kconfig, so
from that point of view it might be best to leave ACPI disabled by
default. Probably the best compromise at this time.
From my understanding, the goal of EXPERT was to gate such features. With your suggestion, it is not clear to me what's the difference between "experimental" and option gated by "EXPERT".

Do you mind clarifying?


Julien Grall



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.