If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

Linux 3.9 Still Toying With PCI-E ASPM, Hot-Plugging

Phoronix: Linux 3.9 Still Toying With PCI-E ASPM, Hot-Plugging

The PCI pull request for the Linux 3.9 kernel reveals that more hot-plugging work is about to land plus developers are still working on the handling of PCI Express ASPM (Active State Power Management), the cause of the major Linux kernel power regression of 2011...

Just wondering, why is there still being messed around with ACPI and PCI-E ASPM? They are standards, just build it and go would be my first impression. What makes it so hard? Many quirks? Involves many changes in current infrastructure? Hard to get right? Bad specifications? Few developers? Far stretching yet unknown consequences? Unexpected behaviour? Many corner cases?

Just wondering, why is there still being messed around with ACPI and PCI-E ASPM? They are standards, just build it and go would be my first impression. What makes it so hard? Many quirks? Involves many changes in current infrastructure? Hard to get right? Bad specifications? Few developers? Far stretching yet unknown consequences? Unexpected behaviour? Many corner cases?

What?

The standard is there but the problem is Linux, Mac and Windows don't follow the standard exactly (More so Windows). So if the manufacturer makes a device according to the standard, they test it under windows and windows' ACPI is buggy or doesnt follow the standard instead of everyone getting together and saying "Microsfot F*cking support the standard properly!" they just work around the bugs or follow Windows ACPI as "the standard". (I'm reminded of Daniel Stone's video "Why would you ever fix something when you can just work around it?")

The net effect is when the device is then run under Linux and the kernel supports THE standard but then the hardware DOESNT support the standard, you end up having to add in quirks and work arounds and crap like that.

The standard is there but the problem is Linux, Mac and Windows don't follow the standard exactly (More so Windows). So if the manufacturer makes a device according to the standard, they test it under windows and windows' ACPI is buggy or doesnt follow the standard instead of everyone getting together and saying "Microsfot F*cking support the standard properly!" they just work around the bugs or follow Windows ACPI as "the standard". (I'm reminded of Daniel Stone's video "Why would you ever fix something when you can just work around it?")

The net effect is when the device is then run under Linux and the kernel supports THE standard but then the hardware DOESNT support the standard, you end up having to add in quirks and work arounds and crap like that.

Except in this case, it's really not MS's fault. It's the hardware manufacturers that are ignoring the standard and just getting the cheapest crap out there that boots into Windows.

MS is at fault for not sticking to the standard (if they have a problem to the ACPI standard they can just suggest a fix in the next ACPI update. We're on like ACPI 5.1 or something like that already)

And the manufacturers are at fault for instead of letting MS know their ACPI layer is buggy and pressuring them to fix it, they choose to just work around the bugs, which gives MS zero reason to ever fix their ACPI layer

MS is at fault for not sticking to the standard (if they have a problem to the ACPI standard they can just suggest a fix in the next ACPI update. We're on like ACPI 5.1 or something like that already)

And the manufacturers are at fault for instead of letting MS know their ACPI layer is buggy and pressuring them to fix it, they choose to just work around the bugs, which gives MS zero reason to ever fix their ACPI layer

MS does stick to the standard. It's the standard that sucks, it's too huge to be clear. It's like HTML - Webkit, Firefox, etc. all try to stick to the standard, but there are plenty of corner cases which aren't well defined and cause incompatibilities.

Yeah, MS could probably help fix it if they really tried. But it's not really their job to fix a crappy standard, and they aren't the ones who screwed it up.