Re: [PATCH v19 7/7] ptp: arm/arm64: Enable ptp_kvm for arm/arm64

From: Geert Uytterhoeven
Date: Wed May 26 2021 - 04:51:05 EST


Hi Marc,

On Wed, May 26, 2021 at 10:32 AM Marc Zyngier <maz@xxxxxxxxxx> wrote:
> On Wed, 26 May 2021 09:18:27 +0100,
> Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote:
> > On Wed, May 26, 2021 at 10:01 AM Marc Zyngier <maz@xxxxxxxxxx> wrote:
> > > On Wed, 26 May 2021 08:52:42 +0100,
> > > Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote:
> > > > On Tue, May 11, 2021 at 11:13 AM Marc Zyngier <maz@xxxxxxxxxx> wrote:
> > > > > On 2021-05-11 10:07, Geert Uytterhoeven wrote:
> > > > > > On Tue, Mar 30, 2021 at 4:56 PM Marc Zyngier <maz@xxxxxxxxxx> wrote:
> > > > > >> From: Jianyong Wu <jianyong.wu@xxxxxxx>
> > > > > >
> > > > > >> --- a/drivers/ptp/Kconfig
> > > > > >> +++ b/drivers/ptp/Kconfig
> > > > > >> @@ -108,7 +108,7 @@ config PTP_1588_CLOCK_PCH
> > > > > >> config PTP_1588_CLOCK_KVM
> > > > > >> tristate "KVM virtual PTP clock"
> > > > > >> depends on PTP_1588_CLOCK
> > > > > >> - depends on KVM_GUEST && X86
> > > > > >> + depends on (KVM_GUEST && X86) || (HAVE_ARM_SMCCC_DISCOVERY &&
> > > > > >> ARM_ARCH_TIMER)
> > > > > >
> > > > > > Why does this not depend on KVM_GUEST on ARM?
> > > > > > I.e. shouldn't the dependency be:
> > > > > >
> > > > > > KVM_GUEST && (X86 || (HAVE_ARM_SMCCC_DISCOVERY && ARM_ARCH_TIMER))
> > > > > >
> > > > > > ?
> > > > >
> > > > > arm/arm64 do not select KVM_GUEST. Any kernel can be used for a guest,
> > > > > and KVM/arm64 doesn't know about this configuration symbol.
> > > >
> > > > OK.
> > > >
> > > > Does PTP_1588_CLOCK_KVM need to default to yes?
> > > > Perhaps only on X86, to maintain the status quo?
> > >
> > > I think I don't really understand the problem you are trying to
> > > solve. Is it that 'make oldconfig' now asks you about this new driver?
> > > Why is that an issue?
> >
> > My first "problem" was that it asked about this new driver on
> > arm/arm64, while I assumed there were some missing dependencies
> > (configuring a kernel should not ask useless questions). That turned
> > out to be a wrong assumption, so there is no such problem here.
> >
> > The second problem is "default y": code that is not critical should
> > not be enabled by default. Hence my last question.
>
> I think consistency between architectures is important. Certainly,
> distributions depend on that, and we otherwise end-up with distro
> kernels missing functionalities.
>
> The notion of "critical" is also pretty relative. defconfig contains a

I'm not talking about defconfig, but about "default y" in defconfig.

> gazillion of things that are not critical to most people, for example,
> and yet misses a bunch of things that are needed to boot on some of my
> systems.

Perhaps those should be added, so those systems can be tested using
defconfig? At least for arm64, I think that's aligned with the
arm64 defconfig policy.

> That's just to say that I find it difficult to make that choice from
> the PoV of a kernel hacker. I'm personally more inclined to leave
> things enabled and let people *disable* things if they want to reduce
> the footprint of their kernel.

The standard question to respond to w.r.t. "default y" is: "Why is
your feature so special that it needs to be enabled by default?",
which implies "default y" is the exception, not the rule.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds