Re: [PATCH] KVM: deprecate KVM_WERROR in favor of general WERROR

Sean Christopherson
2023-10-10T23:46:58Z

On Tue, Oct 10, 2023, Jakub Kicinski wrote:
> On Tue, 10 Oct 2023 11:04:18 +0300 Jani Nikula wrote:
> > > If you do invest in build testing automation, why can't your automation
> > > count warnings rather than depend on WERROR? I don't understand.
> >
> > Because having both CI and the subsystem/driver developers enable a
> > local WERROR actually works in keeping the subsystem/driver clean of
> > warnings.
> >
> > For i915, we also enable W=1 warnings and kernel-doc -Werror with it,
> > keeping all of them warning clean. I don't much appreciate calling that
> > anti-social.
>
> Anti-social is not the right word, that's fair.
>
> Werror makes your life easier while increasing the blast radius
> of your mistakes. So you're trading off your convenience for risk
> of breakage to others. Note that you can fix issues locally very
> quickly and move on. Others have to wait to get your patches thru
> Linus.
>
> > >> I disagree. WERROR simply doesn't provide the same coverage. E.g. it can't be
> > >> enabled for i386 without tuning FRAME_WARN, which (a) won't be at all obvious to
> > >> the average contributor and (b) increasing FRAME_WARN effectively reduces the
> > >> test coverage of KVM i386.
> > >>
> > >> For KVM x86, I want the rules for contributing to be clearly documented, and as
> > >> simple as possible. I don't see a sane way to achieve that with WERROR=y.
> >
> > The DRM_I915_WERROR config depends on EXPERT and !COMPILE_TEST, and to
> > my knowledge this has never caused issues outside of i915 developers and
> > CI.
>
> Ack, I think you do it right. I was trying to establish a precedent
> so that we can delete these as soon as they cause an issue, not sooner.

So isn't the underlying problem simply that KVM_WERROR is enabled by default for
some configurations? If that's the case, then my proposal to make KVM_WERROR
always off by default, and "depends on KVM && EXPERT && !KASAN", would make this
go away, no?