Re: [PATCH 6/8] x86: add MULTIUSER dependency for KVM

From: Radim KrÄmÃÅ
Date: Wed Jul 19 2017 - 12:13:40 EST


2017-07-19 16:18+0200, Arnd Bergmann:
> On Wed, Jul 19, 2017 at 4:11 PM, Radim KrÄmÃÅ <rkrcmar@xxxxxxxxxx> wrote:
> > 2017-07-19 14:53+0200, Arnd Bergmann:
> >> KVM tries to select 'TASKSTATS', which had additional dependencies:
> >>
> >> warning: (KVM) selects TASKSTATS which has unmet direct dependencies (NET && MULTIUSER)
> >>
> >> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> >> ---
> >
> > Hm, do you know why Kconfig warns instead of propagating the
> > dependencies?
>
> Kconfig propagates 'depends on' dependencies, but cannot turn a 'select'
> into 'depends on', as those two mean different things.
>
> Another solution to the problem would be to use 'depends on TASKSTATS'.

Good point, 'select' seems misused here.

There is no reason to depend on TASKSTATS (nor NET+MULTIUSER), we only
suggest to enable it with KVM. KVM uses sched_info_on() to handle any
any possible resulting configuration, c9aaa8957f20 ("KVM: Steal time
implementation").

KVM would work as intended if 'select' would not enable the option if
its dependencies failed (instead of unconditionally forcing the option).

Is the preferred way to encode it:

'default y if KVM' in config TASK_DELAY_ACCT
(that adds a non-local and enigmatic dependency and also needlessly
expands the possible configuration space)

or

'select TASKSTATS if NET && MULTIUSER' in config KVM
(that is going to break when dependencies of TASKSTATS change again)

?

thanks.