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

Re: [Xen-devel] [PATCH 0/4] Allow schedulers to be selectable through Kconfig

On 12/18/15 4:45 AM, Ian Campbell wrote:
> On Thu, 2015-12-17 at 14:59 -0600, Jonathan Creekmore wrote:
>> Add machinery to allow the schedulers to be individually selectable
>> through the Kconfig interface.
> So I don't want to pick on this series or schedulers specifically here, but
> instead discuss the general premise of configurability of hypervisor
> binaries, and this happens to be the first. I'm CCing Doug and "THE REST"
> Currently (even with the current switch to Kconfig thus far) we have a
> fairly small and manageable set of configurations which any given Xen
> binary can be in and in terms of what users are actually running an even
> smaller set I believe, most users fiddle with zero options and a small
> number with one or two. I'd hazard a guess that the vast majority of Xen
> binaries are using a single config today and that the second place is a
> fairly distant second.
> This means we have avoided the combinatorial explosion of configuration
> options which Linux suffers from (which result in things like randconfig
> build robots because no one can keep track of it all).
> Just to be clear: I'm not at all opposed to more configurability for expert
> users who have specific usecases, know what they are doing and are willing
> to take responsibility for developments deviating form the norm.
> However I am very wary of putting shiny looking nobs in front of the
> average user, since they will find them and they will inevitably play with
> them and we will end up in the situation where every bug report involves an
> additional RTT while we ask for their .config (ok, in reality we'd often
> ask at the same time we inevitably have to ask for logs and other key info,
> so I guess I'm exaggerating, but still its a worry I think).
> As well as support there is obviously a testing matrix impact.
> How would people feel about a CONFIG_STANDARD_FEATURESET[0] with the
> majority of tweakables depending on !STANDARD_FEATURESET? It would default
> Y with a help text which dissuades normal users from touching it ("Say Y,
> unless you are willing to pick up the pieces yourself. We do not routinely
> test or validate configurations without this option set. We expect you to
> offer to fix issues which you find. Beware of the leopard.").[1]
> I might even go so far as to suggest that !STANDARD_FEATURESET
> configurations would not be subject to security support (i.e. issues which
> can _only_ arise with that option disabled are't covered).
> The bar for adding a new option which does not depend on
> !STANDARD_FEATURESET would be _high_.
> Ian.
> [0] I really mean CONFIG_STANDARD_CONFIG, but that sounds dumb. I don't
> really intend for it to only control "features". CONFIG_STANDARD might be
> an alternative.
> http://www.goodreads.com/quotes/40705-but-the-plans-were-on-display-on-display-i-eventually
>     ;-)

So I know this is going to be a thread hijack but I think its important
for me to explain where Jonathan Creekmore and I are coming from with
our recently submitted patches.

We recently took over a project based on an old version of Xen that has
a lot of customization. Part of our goal was to understand those
modifications and re-implement them in a fashion that would be
acceptable to upstream. So for example in the code base we worked with
all other schedulers were entirely ripped out of the code base. Jonathan
has reworked this to make it possible to disable each scheduler
independently. Additionally Jonathan improved the way that extra
schedulers can be added in the future.

Effectively we want to engage the Xen community as much as possible and
come up with solutions that are workable for the community as well as
our needs. Now here's why I believe in this approach. I've looked at
some of the other XenProject derived projects (e.g. XenServer, Qubes,
OpenXT) and Linux distros shipping Xen (Ubuntu, Debian, Gentoo, Yocto,
etc) and I saw that they all contain a number of patches against
XenProject. To me this weakens the overall project by everyone
maintaining their own fork. Everyone's goal should be to work on
upstreaming changes in a fashion that is acceptable to the community in
an agnostic fashion. Recently I took Joanna Rutkowska to task for not
contributing work upstream and maintaining downstream changes and
expecting Xen to confirm to her project's needs [1]. But on the flip
side of the coin Ian Campbell has been helping Debian to upstream
changes they need [2].

In the end I really see the primary people that build Xen on their own
as project maintainers (XenServer, Qubes, OpenXT) or distro maintainers
(Ubuntu, Debian, Gentoo, Yocto) or "expert" users. Most people will use
Xen as it comes packaged for them already and the Kconfig changes give
the project/distro/experts the flexibility they need to build up Xen
without maintaining downstream patches. So these won't really be shiny
knobs for users to twiddle.

What provides the defaults that users should use are the defconfig
files. The reason this doesn't work out so well for Linux is that there
are really not defaults that work for everyone. I believe for a long
time the x86_64 defconfig was a setup for Linus' development laptop and
most of the other arches defconfigs were setup for their respective
maintainers as well. But in the case of Xen the defconfig will be the
defaults and we don't even require the user to run `make *config` so it
really is more of an "expert" option already vs Linux where you must
first run `make *config` before building your kernel.

[2] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=805508

Doug Goldstein

Attachment: signature.asc
Description: OpenPGP digital signature

Xen-devel mailing list



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