Karol Herbst
2022-Aug-19 15:44 UTC
[Nouveau] [RFC 0/2] Stop the abuse of Linux-* _OSI strings
On Fri, Aug 19, 2022 at 4:25 PM Mario Limonciello <mario.limonciello at amd.com> wrote:> > 3 _OSI strings were introduced in recent years that were intended > to workaround very specific problems found on specific systems. > > The idea was supposed to be that these quirks were only used on > those systems, but this proved to be a bad assumption. I've found > at least one system in the wild where the vendor using the _OSI > string doesn't match the _OSI string and the neither does the use. > > So this brings a good time to review keeping those strings in the kernel. > There are 3 strings that were introduced: > > Linux-Dell-Video > -> Intended for systems with NVIDIA cards that didn't support RTD3 > Linux-Lenovo-NV-HDMI-Audio > -> Intended for powering on NVIDIA HDMI device > Linux-HPI-Hybrid-Graphics > -> Intended for changing dGPU output > > AFAIK the first string is no longer relevant as nouveau now supports > RTD3. If that's wrong, this can be changed for the series. >Nouveau always supported RTD3, because that's mainly a kernel feature. When those were introduced we simply had a bug only hit on a few systems. And instead of helping us to debug this, this workaround was added :( We were not even asked about this. I am a bit curious about the other two though as I am not even sure they are needed at all as we put other work arounds in place. @Lyude Paul might know more about these.
Limonciello, Mario
2022-Aug-19 16:00 UTC
[Nouveau] [RFC 0/2] Stop the abuse of Linux-* _OSI strings
On 8/19/2022 10:44, Karol Herbst wrote:> On Fri, Aug 19, 2022 at 4:25 PM Mario Limonciello > <mario.limonciello at amd.com> wrote: >> >> 3 _OSI strings were introduced in recent years that were intended >> to workaround very specific problems found on specific systems. >> >> The idea was supposed to be that these quirks were only used on >> those systems, but this proved to be a bad assumption. I've found >> at least one system in the wild where the vendor using the _OSI >> string doesn't match the _OSI string and the neither does the use. >> >> So this brings a good time to review keeping those strings in the kernel. >> There are 3 strings that were introduced: >> >> Linux-Dell-Video >> -> Intended for systems with NVIDIA cards that didn't support RTD3 >> Linux-Lenovo-NV-HDMI-Audio >> -> Intended for powering on NVIDIA HDMI device >> Linux-HPI-Hybrid-Graphics >> -> Intended for changing dGPU output >> >> AFAIK the first string is no longer relevant as nouveau now supports >> RTD3. If that's wrong, this can be changed for the series. >> > > Nouveau always supported RTD3, because that's mainly a kernel feature. > When those were introduced we simply had a bug only hit on a few > systems. And instead of helping us to debug this, this workaround was > added :( We were not even asked about this.My apologies, I was certainly part of the impetus for this W/A in the first place while I was at my previous employer. Your comment re-affirms to me that at least the first patch is correct.> > I am a bit curious about the other two though as I am not even sure > they are needed at all as we put other work arounds in place. @Lyude > Paul might know more about these. >If the other two really aren't needed anymore, then yeah we should just tear all 3 out. If that's the direction we go, I would appreciate some commit IDs to reference in the commit message for tearing them out so that if they end up backporting to stable we know how far they should go.
Lyude Paul
2022-Aug-22 21:18 UTC
[Nouveau] [RFC 0/2] Stop the abuse of Linux-* _OSI strings
On Fri, 2022-08-19 at 17:44 +0200, Karol Herbst wrote:> On Fri, Aug 19, 2022 at 4:25 PM Mario Limonciello > <mario.limonciello at amd.com> wrote: > > > > 3 _OSI strings were introduced in recent years that were intended > > to workaround very specific problems found on specific systems. > > > > The idea was supposed to be that these quirks were only used on > > those systems, but this proved to be a bad assumption. I've found > > at least one system in the wild where the vendor using the _OSI > > string doesn't match the _OSI string and the neither does the use. > > > > So this brings a good time to review keeping those strings in the kernel. > > There are 3 strings that were introduced: > > > > Linux-Dell-Video > > -> Intended for systems with NVIDIA cards that didn't support RTD3 > > Linux-Lenovo-NV-HDMI-Audio > > -> Intended for powering on NVIDIA HDMI device > > Linux-HPI-Hybrid-Graphics > > -> Intended for changing dGPU output > > > > AFAIK the first string is no longer relevant as nouveau now supports > > RTD3. If that's wrong, this can be changed for the series. > > > > Nouveau always supported RTD3, because that's mainly a kernel feature. > When those were introduced we simply had a bug only hit on a few > systems. And instead of helping us to debug this, this workaround was > added :( We were not even asked about this. > > I am a bit curious about the other two though as I am not even sure > they are needed at all as we put other work arounds in place. @Lyude > Paul might know more about these.Some of the _OSI strings are totally fine. From my recollection: [ 0.242993] ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio) ^ this one is needed to do a couple of ACPI tricks at startup to get the PCIe device for audio on nvidia's GPU to be detected properly [ 0.242993] ACPI: Added _OSI(Linux-HPI-Hybrid-Graphics) I don't actually know how necessary this is, but I'm hesistant to call this one bad as it may be related to the funny mux configurations that I'm learning may exist on HP machines.>-- Cheers, Lyude Paul (she/her) Software Engineer at Red Hat