ksummit.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
From: Linus Torvalds <torvalds@linux-foundation.org>
To: "Luis R. Rodriguez" <mcgrof@kernel.org>
Cc: Michal Hocko <mhocko@kernel.org>,
	Christoph Hellwig <hch@infradead.org>,
	Cristina Moraru <cristina.moraru09@gmail.com>,
	ksummit <ksummit-discuss@lists.linuxfoundation.org>
Subject: Re: [Ksummit-discuss] [TECH TOPIC] is Kconfig a bit hard sometimes?
Date: Tue, 27 Jun 2017 12:27:10 -0700	[thread overview]
Message-ID: <CA+55aFyvssxg63UoQ-rOaf1TMacJ6T5jyLkWECosQJ_N=9gaaQ@mail.gmail.com> (raw)
In-Reply-To: <20170627184448.GU21846@wotan.suse.de>

On Tue, Jun 27, 2017 at 11:44 AM, Luis R. Rodriguez <mcgrof@kernel.org> wrote:
>
> Such things exist now:
>
> make kvmconfig
> make xenconfig

Not really. Not for normal users. Those are literally only for the
special cases that are *not* normal.

> So you mean a menu of the defconfigs ?

No. The defconfigs are useless. They are fundamentally broken, excatly
because there is never one config that can work.

They do need to be of the "kvmconfig" type, but for sane subconfirurations.

So I'd look for something like

    make modernpcconfig # enable minimal modern PC workstation stuff
    make f25config  # enable minimal stuff required for F25
    make amdconfig # enable the core modern AMD stuff

or something like that.

But it's not going to happen, because everybody thinks *their* code is
so supremely important, so the "minimal config" is literally a doomed
concept ;(

> Sensible defaults per subsystem would help.

No. We've tried. The only sensible default (and that I try to enforce)
is "new featrures default to 'n'"

Why? Exactly because of that "everybody thinks *their* code is
important". Developers always think "I have to enable my code". It
doesn't matter how stupid or esoteric their code is, the developer by
definition thinks their own code is supremely important, and
particularly all the new cool features.

So subsystem defaults are always completely broken, unless I come
along and swear at people who think their new cool feature is
important.

Which I do regularly. And I'm sure I miss things, because I just don't see them.

> If you have a set of requirements but need to fold in a large lump of
> other desirables then surely a SAT solver can help.

No. The SAT solver will only hurt, because it will bring in all those
irrelevant people who are interested in SAT solving, not in making
things easy for users.

It should be perfectly sufficient to just have a series of 'select
XYZ' statements, and yes, update them manually, but since the point is
to go for minimal, automation by definition just breaks it. It will
just make people select big things and leave it at that.

> Actually ideally something like udevadm dumping respective kconfig symbols
> should give you what kconfig a system needs at a specific boot time.

So we already have localmodconfig that uses other things to figure out
what is needed, but no, it's not good enough.

Partly it's not good enough because realistically there are base
configs that you want enabled whether they are used or not. For
example, enabling USB without enabling USB_STORAGE is kind of crazy in
this day and age. But USB storage is not required for booting in most
circumstances, it's just reuired for occasional day-to-day things.

Also, one problem really is that distro configurations by definition
will be pretty damn large. If you want that config, then use the
distro config. But if you want anything else, then udevadm isn't going
to help you at all, because it's not going to show you any of the
stuff that just worked because it was built in and never neeed any
action at all.


>   * Arnd noted a kconfig "Suggests" tag seems appropriate, he seems to have
>     volunteered to work on it :)

Yeah, that's not goping to work either, simply because what is
suggested in one context makes no sense at all in another.

Are you doing a PC workstation kind of thing like many developers are?
Very different from qwhen you're doing an embedded thing or a server
or whatever.

>   * David Howells noted he'd prefer to have a cache of enabled features.
>     He also volunteered this ;)

I do that. There's a reason "make defconfig" reads your
/etc/kernel-config. It's just that it's machine-specific.

And it's there exactly so that you can make your machine-specific
config *once*, and then it's there, and it never affects anybody else
(unless you share your /etc directory, but that's crazy).

But even with that, I find our config stuff annoying. Upgrading
hardware or distros is always just painful, because it means
re-generating a new machine-specific configuration (either because the
hardware changed, or because the distro baseline requirements
changed).

                    Linus

  reply	other threads:[~2017-06-27 19:27 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-27 13:58 Sergey Senozhatsky
2017-06-27 17:18 ` Linus Torvalds
2017-06-27 18:44   ` Luis R. Rodriguez
2017-06-27 19:27     ` Linus Torvalds [this message]
2017-06-27 20:53       ` Kees Cook
2017-06-27 21:16       ` Olof Johansson
2017-06-27 21:36         ` Linus Torvalds
2017-06-27 23:10           ` Serge E. Hallyn
2017-06-28  0:09             ` Luis R. Rodriguez
2017-06-28  0:14               ` Linus Torvalds
2017-06-28  0:26                 ` Luis R. Rodriguez
2017-06-28  3:54                   ` Stephen Hemminger
     [not found]                 ` <CAFhKne-o0S8fMo_XD_aUk2Rf7VbDhgO+PT_bjnM-9WpKfnWBvw@mail.gmail.com>
     [not found]                   ` <CAFhKne8FE=17wNdp=Svf2Z2tADok6htfYqTABEiZUrCOyeMaYg@mail.gmail.com>
2017-06-28 13:35                     ` Matthew Wilcox
2017-06-28 17:56                 ` Geert Uytterhoeven
2017-06-29 10:02                   ` Mauro Carvalho Chehab
2017-06-28  0:11             ` Linus Torvalds
2017-06-29 10:23           ` Mauro Carvalho Chehab
2017-06-28 12:58     ` Dan Carpenter
2017-06-30 17:11   ` Steven Rostedt
2017-06-30 17:52   ` Darren Hart
2017-06-30 17:58     ` Darren Hart
2017-07-01 17:24     ` Hannes Reinecke
2017-06-27 20:41 ` Kees Cook
2017-07-06 14:40 ` Dan Carpenter
2017-07-06 14:41   ` [Ksummit-discuss] [PATCH 1/2] kconfig: add a silent option to conf_write() Dan Carpenter
2017-07-06 15:08     ` Steven Rostedt
2017-07-06 14:42   ` [Ksummit-discuss] [PATCH 2/2] kconfig: new command line kernel configuration tool Dan Carpenter
2017-07-07  5:55     ` Krzysztof Kozlowski
2017-07-07  9:02       ` Dan Carpenter
2017-07-09  3:56         ` Linus Walleij
2017-07-09  8:31           ` Geert Uytterhoeven
2017-07-09 17:03             ` Randy Dunlap
2017-07-09 19:43               ` Geert Uytterhoeven
2017-07-09 17:32             ` Frank Rowand
2017-07-10  9:44     ` Geert Uytterhoeven
2017-07-10 11:15       ` Dan Carpenter
2017-07-06 16:41   ` [Ksummit-discuss] [TECH TOPIC] is Kconfig a bit hard sometimes? Linus Torvalds
2017-07-06 17:11     ` Randy Dunlap
2017-07-07 11:36     ` Dan Carpenter
2017-07-10 17:15       ` Luck, Tony
2017-07-10 17:33         ` Alexandre Belloni
2017-07-10 18:28           ` Linus Torvalds
2017-07-10 19:44             ` Randy Dunlap
2017-07-11  6:21             ` Valentin Rothberg
2017-07-06 21:19   ` Laurent Pinchart

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='CA+55aFyvssxg63UoQ-rOaf1TMacJ6T5jyLkWECosQJ_N=9gaaQ@mail.gmail.com' \
    --to=torvalds@linux-foundation.org \
    --cc=cristina.moraru09@gmail.com \
    --cc=hch@infradead.org \
    --cc=ksummit-discuss@lists.linuxfoundation.org \
    --cc=mcgrof@kernel.org \
    --cc=mhocko@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox