RE: [PATCH v2 char-misc 1/1] Drivers: hv: vmbus: Implement Direct Mode for stimer0

Michael Kelley (EOSG)
2018-01-26T17:34:28Z

> -----Original Message-----
> From: Greg KH [mailto:gregkh@linuxfoundation.org]
> Sent: Thursday, January 25, 2018 2:00 AM
> To: Michael Kelley (EOSG) <Michael.H.Kelley@microsoft.com>
> Cc: linux-kernel@vger.kernel.org; devel@linuxdriverproject.org; olaf@aepfle.de;
> apw@canonical.com; vkuznets@redhat.com; jasowang@redhat.com;
> leann.ogasawara@canonical.com; marcelo.cerri@canonical.com; Stephen Hemminger
> <sthemmin@microsoft.com>; KY Srinivasan <kys@microsoft.com>; x86@kernel.org;
> jrp@pun.org
> Subject: Re: [PATCH v2 char-misc 1/1] Drivers: hv: vmbus: Implement Direct Mode for stimer0
>
> On Mon, Jan 22, 2018 at 03:29:29PM -0700, mikelley@exchange.microsoft.com wrote:
> > +/*
> > + * If false, we're using the old mechanism for stimer0 interrupts
> > + * where it sends a VMbus message when it expires. The old
> > + * mechanism is used if Direct Mode is explicitly disabled
> > + * by the module parameter, or on older versions of Hyper-V
> > + * that don't support Direct Mode. While Hyper-V provides
> > + * four stimer's per CPU, Linux uses only stimer0.
> > + */
> > +static bool direct_mode_enabled = true;
> > +module_param(direct_mode_enabled, bool, 0444);
> > +MODULE_PARM_DESC(direct_mode_enabled,
> > + "Set to N to disable stimer Direct Mode.");
>
> Ick ick ick. How is a distro or user supposed to know if/when to enable
> this and not to enable it? This isn't ok, can you please make this
> "automatic" to always do the right thing based on what it is running on?

To be clear, this patch already does the "automatic" thing based on the
capabilities of the hypervisor. But it's often handy to be able to override
the automatic behavior without having to rebuild the kernel.

>
> Module parameters are not a good idea as they are impossible to maintain
> and document and use over time. Please never add new ones to the
> kernel.
>

Is there a better alternative for providing an "override" capability?
Having an override isn't super important in this case, so I'll drop the
parameter, but it would be nice to have something easier than a rebuild.

Michael

> thanks,
>
> greg k-h