All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: Masahiro Yamada <masahiroy@kernel.org>
Cc: "Valdis Klētnieks" <valdis.kletnieks@vt.edu>,
	"Michal Marek" <michal.lkml@markovi.net>,
	"David S. Miller" <davem@davemloft.net>,
	Networking <netdev@vger.kernel.org>,
	"Linux Kbuild mailing list" <linux-kbuild@vger.kernel.org>,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>
Subject: Re: Kconfig, DEFAULT_NETSCH, and shooting yourself in the foot..
Date: Sun, 3 Jan 2021 10:20:11 -0800	[thread overview]
Message-ID: <20210103102011.444ecaa4@hermes.local> (raw)
In-Reply-To: <CAK7LNAQU61eccDfh_jX_cnZHnyxfbfgBGu1845QM8XbBTJPnsw@mail.gmail.com>

On Sun, 3 Jan 2021 15:30:30 +0900
Masahiro Yamada <masahiroy@kernel.org> wrote:

> On Sun, Jan 3, 2021 at 5:14 AM Valdis Klētnieks <valdis.kletnieks@vt.edu> wrote:
> >
> > Consider the following own goal I just discovered I scored:
> >
> > [~] zgrep -i fq_codel /proc/config.gz
> > CONFIG_NET_SCH_FQ_CODEL=m
> > CONFIG_DEFAULT_FQ_CODEL=y
> > CONFIG_DEFAULT_NET_SCH="fq_codel"
> >
> > Obviously, fq_codel didn't get set as the default, because that happens
> > before the module gets loaded (which may never happen if the sysadmin
> > thinks the DEFAULT_NET_SCH already made it happen)
> >
> > Whoops. My bad, probably - but....
> >
> > The deeper question, part 1:
> >
> > There's this chunk in net/sched/Kconfig:
> >
> > config DEFAULT_NET_SCH
> >         string
> >         default "pfifo_fast" if DEFAULT_PFIFO_FAST
> >         default "fq" if DEFAULT_FQ
> >         default "fq_codel" if DEFAULT_FQ_CODEL
> >         default "fq_pie" if DEFAULT_FQ_PIE
> >         default "sfq" if DEFAULT_SFQ
> >         default "pfifo_fast"
> > endif
> >
> > (And a similar chunk right above it with a similar issue)
> >
> > Should those be "if (foo=y)" so =m can't be chosen? (I'll be
> > happy to write the patch if that's what we want)
> >
> > Deeper question, part 2:
> >
> > Should there be a way in the Kconfig language to ensure that
> > these two chunks can't accidentally get out of sync?  There's other
> > places in the kernel where similar issues arise - a few days ago I was
> > chasing a CPU governor issue where it looked like it was possible
> > to set a default that was a module and thus possibly not actually loaded.
> >  
> 
> 
> If there is a restriction where a modular discipline cannot be the default,
> I think you can add 'depends on FOO = y'.
> 
> 
> 
> For example,
> 
> 
> choice
>            prompt "Default"
> 
>            config DEFAULT_FOO
>                   bool "Use foo for default"
>                   depends on FOO = y
> 
>            config DEFAULT_BAR
>                   bool "Use bar for default"
>                   depends on BAR = y
> 
>            config DEFAULT_FALLBACK
>                   bool "fallback when nothing else is builtin"
> 
> endchoice
> 
> 
> 
> 
> 

You can use a qdisc that is a module, it just has to be available when device
is loaded. Typically that means putting it in initramfs.

  reply	other threads:[~2021-01-03 18:21 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-02 20:14 Kconfig, DEFAULT_NETSCH, and shooting yourself in the foot Valdis Klētnieks
2021-01-03  6:30 ` Masahiro Yamada
2021-01-03 18:20   ` Stephen Hemminger [this message]
2021-01-03 18:34     ` Valdis Klētnieks

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=20210103102011.444ecaa4@hermes.local \
    --to=stephen@networkplumber.org \
    --cc=davem@davemloft.net \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=masahiroy@kernel.org \
    --cc=michal.lkml@markovi.net \
    --cc=netdev@vger.kernel.org \
    --cc=valdis.kletnieks@vt.edu \
    /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.