It's funny they had to fix it by copying the method from Windows though.

Nothing funny here, if your hardware is optimized by the hardware manufacturer for windows, getting better performance from that hardware by mimicking windows behavior seems logical, if not controversial.

More specifically, the power management mechanism in question(PCIe ASPM) requires, broadly speaking, two different components:

1. You need to detect boards that are capable of it, so that you don't try to shut down idle links in a system where that could cause crashes, losing touch with peripherals, or other havoc.

2. You need the actual logic for detecting idle PCIe links, and the appropriate driver support and so on for instructing the PCIe controller(s) to change link power states.

Part two is the bulk of the matter, and it already worked for some time now, if your board declared ASPM support or if you used ASPM force. Part one is comparatively simple; but the approach that Linux previously used was hobbled by the fact that boards frequently don't declare ASPM support even when they have it; but enough boards don't that just defaulting to force would be risky. To deal with this, the latest patch adds the heuristics that Windows uses to detect ASPM, since the method that is supposed to work frequently doesn't, but vendors aren't going to ship gear that doesn't support Windows...

Uhh you SEEM to know what you are talking about but unless i'm mistaken there is a flaw in your logic. you just said that the patch add the heuristics that Windows uses to detect ASPM which if they are having to use heuristics to detect the thing how EXACTLY is the OEM "helping" Windows? By making their crap crappy so heuristics works?

It sounds more like the race to the bottom has caused some low end ODMs to cut corners where they shouldn't have been cut. I've found that contrary to popular belief this

The patch imitates a nonstandard behavior -- if it sees BIOS claiming that ASPM is disabled, it leaves devices in whatever state BIOS left it instead of following what BIOS claims about device. This is certainly a bug in BIOS, and possibly a bug in Windows that happened to cancel the BIOS bug. However very likely that incompetent hardware or BIOS vendors (I am pretty sure, it's a certain company known as "the largest BIOS vendor") first produced wrong BIOS behavior, and Microsoft seized the opportunity to e

The hardware only work on way. I don't see how any of this is Microsoft's fault. They just had bigger paid staff to look into every single board out there, or to tell the manufacturers look, do it this way and we will support your products. Who is going to say NO to 80% market share?

Well I read it as 'MSFT realizes the standards don't mean shit to ODMs and worked around it" while the Linux guys try to stick to the standards and it bit them in the ass. Building and repairing PCs 6 days a week frankly this does NOT surprise me because if you've looked at the BIOS some of these ODMs put out frankly shoddy shit is the ONLY word to describe it!

I had to tell a customer just last week he was either gonna have to have me order an EXACTLY identical stick for his desktop or simply do without a stick because the POS BIOS on the eMachines would not allow you to run dual sticks unless they were a perfect match! all because some ODM decided that having a simple switch in BIOS for single or dual mode was just too much bother. I've also run into OEMs that put dual core HSFs on quads, fans so shitty I'm surprised they run at all, PSUs that are so close to the absolute max limit on the machine that literally a single fan or DVD burner would have overloaded the thing, it seems like if it can save them 2c and it'll pass POST that is all they give a shit about.

I'm all for having low prices but when the design decisions actually shorten the life of the machine and risk all kinds of errors and hassles for the user that's where i draw the line. Some of the low end Dells and eMachines are so badly built frankly i'm amazed they make it to the end of warranty, talk about junk!

What surprised me is that the list of problematic boards included a fair number of what are usually boring-but-respectable Intel retail boards. Those are usually the ones you go for if you don't mind mediocre features for the price class; but don't want any exciting personality quirks...

You'll probably laugh for me saying this as its not a brand people think of, but you want good solid boards you really ought to look at the ECS business class. Nothing crazy, no triple crossfire or factory OCing or anything, just really good built boards with solid caps that are stable as hell and take frankly insane levels of punishment.

I was so impressed by the ones I built for construction trailers (where the funk is beyond belief) I based my own machine around a socket AM3 ECS board instead of my usual

I am thankful it was not 'copied' from Apple. Apple would've sued the whole linux/Linux/GNU/FOSS in South Korea, Germany, Japan and of course the US and would have asked to ban the import of, er, things.

Yes, because contributing a few open source project gives you the right to employ VERY proprietary methods and approaches to the vast majority of what you do. Filling baseless patent suits is perfectly acceptable so long as you have at least one open source project.

WebKit is made up of KHTML code (which is now very little) and the parts that Apple added. Under the GPL, Apple is not required to release code that is not a derivative of the original code. But they open sourced everything they did. They were under no obligations to do this.

As for CUPS, they could have not done anything at all. Instead they bought it and kept it going. They were under no obligations to do either.

Yes, they contribute, but not as much as you seem to imply. Apple is a company based in a very proprietary model, and that's hard to dispute.

I would consider adding the majority of WebKit code as a lot. The problem is in your logi

As I understand it, WebKit is a derivative of KHTML, there is no way to gradually change the license. Now in WebKit there might be little from the original KHTML code, but of course the present KHTML is also very different from the one that Apple forked. Note that WebKit is now an open source project that receives contributions from many companies that are direct Apple rivals. If Apple was the starter of the WebKit name, was because they clearly failed to join an already stablished community of developers.

As I understand it, WebKit is a derivative of KHTML, there is no way to gradually change the license. Now in WebKit there might be little from the original KHTML code, but of course the present KHTML is also very different from the one that Apple forked.

Part of WebKit is derived from KHTML. Parts of WebKit have no origin from KHTML and were developed by Apple namely everything except JavaScriptCore and WebCore. The GPL and the LGPL does not specify that you must code all unrelated to the original under the GPL. Apple released all other parts under BSD which is not copyleft but more permissive.

Note that WebKit is now an open source project that receives contributions from many companies that are direct Apple rivals. If Apple was the starter of the WebKit name, was because they clearly failed to join an already stablished community of developers. It's not like is difficult to gain an account to access the KDE repositories (I have one, and just contributed very minor things) or the mailing lists.

Huh? Apple forked WebKit from KHTML and massively developed it to the point that other companies contribute to it. And you cite Apple for contributing too much t

Huh? Apple forked WebKit from KHTML and massively developed it to the point that other companies contribute to it. And you cite Apple for contributing too much to their own project? Do you also blame Mozilla for doing too much for FireFox?

What? Sorry, I don't understand what you mean, or what relation has with what you quoted.

And again my point is they are under no obligation to do any of this. They could have open sourced everything they have done and stopped development. A point you have never addressed.

I didn't address that because I never denied nor confirmed this. From the beggining I was only writing about the size of the contributions.

Again, you are replying to things I wasn't writing about. My point is mainly this: Apple contributed to WebKit, of course, but many people mistakenly see it as a project created solely by Apple, and developed only by Apple.

In all your posts, you again and again bring up 2 points: Apple contributes because they have to due to the GPL. And Apple doesn't contribute that much. Your first point is rather disingenuous as Apple doesn't have to contribute to open source at all. As for the amount of code Apple contributes to WebKit [webkit.org], WebKit says "Apple employees have contributed the majority of work on WebKit since it became an independent project.". You seem to be confusing number of contributors with amount of contribution. Ap

Apple also only contributes to projects under licenses that bless proprietary forks. While there is nothing wrong with this, there is something wrong if such contributions amount to an attack on established copyleft projects. For example, webkit vs Gecko. LLVM vs GCC. Google does this too, intentionally wielding Apache license projects to weaken GPL projects. Worth meditating on the probability that "don't be evil" really means "unless it suits us". However. There is still a huge amount of value in contribu

Congrats to Garrett; he has some balls admitting to such "collaboration".
I really hope I can get more than an hour out of my SSD-only laptop. Granted its going on 3 years old, but the battery is less than 2!

Garrett was also in large part responsible for fixing a running problem [lwn.net] with booting on UEFI systems, particularly notebooks. (That wasn't the only patch that needed to be written, but it did provide the foundation. It's also one of the funniest developer commentaries for a patch I've ever seen.) I've seen his name attached to Linux development for a while, but it's only recently that I've come to understand just how much of the deep internal architecture he understands and has helped to fix.

I don't find it funny, just common sense. It sounds like ASPM is very poorly documented, so if Windows is doing a decent job of implementing the functionality, then reverse-engineering, or at least guessing at how Windows does it, seems like a valid approach.

I think it's more a case of the manufacturers supporting windows than the other way around. Of course Linux doesn't get that level of support because of the lower user base. Apple solves the problem by making their own hardware.

It's actually about the Windows logo sticker on the side of your laptop. To get that, the IHV (hardware vendor) has to pass a suite of tests which are defined entirely by Microsoft. Since you (the IHV) really want to get that Winlogo sticker, you pretty much have to do it the way Windows wants it by definition. Of course, IHVs can and do push back on test requirements, but the tests are basically black boxes and it's far easier to just make the tests pass than to complain and make Microsoft change something

Really? When did Apple start making graphics cards, expansions cards, motherboards, etc.? As far as I'm aware they don't make any of the affected components, nor do they design or make the logic responsible for negotiating power.

How much you want to bet that Apple gets ALL the specs for that hardware? They don't get the bullshit that linux developers have to tolerate. They've got the money to spend and the hardware vendors kiss their ass and build it to their (Apple's) specs not the other way around. Sure they don't actually manufacture it but you can bet they ain't buying it off the shelf.

It's not poorly documented. It is poorly implemented by most hardware manufacturers. The OS is supposed to be able to query the system and ask if it supports the power saving features, but most hardware just ignores it (making it appear as though it doesn't). From what I understand, Microsoft no longer asks if it supports it, it simply asks "what are you" and then looks it up in an internal database to see if it's compatible. It's a *VERY* ugly hack, but unfortunately it appears to be the only way to fix it because hardware manufacturers are lazy.

That's fascinating. It would be cooler if the protocols were rigorously followed, but things being as they are, that's still kind of neat. All kinds of fancy algorithms and 30+ years of moore's law, and fundamental aspects of modern computing technology still depend on simple lookup tables.

Making hardware do something it's not meant to do is pretty much the definition of hacking. Since the boards tell the OS that they don't support power-saving, that falls under the definition of hacking to me. It's like the processors/gfx cards that have all the functionality of the more expensive model but with a jumper missing.

That's a wrong impression given by a poorly written article summary. If you read the patch submission, the only involvement of Windows here was using a presentation about their OS as a way to clarify the minimal documentation about this area. Nothing was copied from Windows.

If the firmware has given us control of PCIe capabilities then it's
valid for an operating system to configure ASPM more aggressively than
the firmware did. A small number of devices object to this and exhibit
various failure modes. Windows provides a mechanism to disable ASPM in
the driver, indicated by the Needs=PciASPMOptOut statement in the.inf
file. Trawling through Windows drivers has indicated the following set
of hardware that disables ASPM in Windows but doesn't currently disable
it in Linux. It makes sense for us to mimic Windows in this situation.
(V2: send the version that actually builds)

It's funny they had to fix it by copying the method from Windows though.

Unfortunately (as is too often the case) the "bug" was an interaction between the linux kernel and the absolutely fucked state of the BIOS in general, and ACPI in particular.

Because not all boards support PCIe Active State Power Management(a part of the PCIe spec that provides for powering down an unused link to save power), and bad things can happen if you try to use it on a board that doesn't, a board that does support it is supposed to advertise that fact. In practice, a large swath of boards where it works just fine were failing to declare that. The Linux Kernel obligingly didn't try to use it(unless ASPM=force was used). Since what is supposed to happen apparently usually doesn't, they've had to examine the mechanism used by Windows systems to infer whether or no ASPM is good to go, reasoning that vendors are unlikely to ship BIOSes where the Windows default behavior causes horrible things to happen.

It's funny they had to fix it by copying the method from Windows though.

A number of motherboard manufacturers decided not to "advertise" that they supported ASPM and somehow MS knows of this before anyone else. I agree with the approach linux took: mimic Windows behavior to help locate the bug.

It's funny they had to fix it by copying the method from Windows though.

The issue is that essential documentation is kept secret from the public, shared by vendors only with Microsoft, most probably due to licensing/pricing pressure from Microsoft. Smells like yet another antitrust time bomb to me.

My Acer Aspire One [wikipedia.org] lasts that long running Ubuntu, with the 6 cell battery; rated life is 7 hours. I would like to have a fair comparison against a similar netbook design from Apple, but they don't have one.

Modding AC down was a disservice. This happened and they went all Fox News over it. Though it was sort of a reasonable thing to expect given the evidence they gathered (a reference to Linux in a beta client, if I recall correctly), this shows why it's a good idea not to be overly aggressive in your guesswork when you're dealing with news.

Yes. It sickes me that Slashdot has followed Phoronix's lead in calling this a Linux bug. It isn't. The bug is in hardware not reporting that it is ASPM (Active State Power Management) capable.

As I understand it, the history of this thing is like:
1. Linux implements ASPM
2. This causes some hardware to fail, because it isn't ASPM capable
3. Linux is fixed to detect if the hardware reports ASPM capability, and doesn't use ASPM if the hardware says it doesn't support that
4. Michael Larabel of Phoronix notices that Linux power consumption has risen on some hardware, calls it a bug in Linux
5. Folks investigate, figure out that some hardware reports no ASPM capability, even though it is ASPM capable, and implement a kernel parameter to force Linux to use ASPM, even if the hardware says it doesn't support it
6. Michael Larabel keeps talking about the Linux power regression writes post after post about how it still hasn't been fixed
7. Someone figures out how Windows detects ASPM support on hardware that doesn't report it, and implements the same heuristic in Linux
8. Now, Slashdot claims the Linux bug has been fixed, even though it wasn't a bug in Linux, and Linux has had a workaround for almost as long as we've known about the issue

Seriously, guys. Bad reporting. This is _not_ what I come to Slashdot for. There are hundreds of sites that will give me half truths, common misconceptions, and the occasional nugget of truth. Strive to be better than those.

True, but/. is not where the users go. So the headline should be corrected, and the summary changed to explain that a kernel patch will emulate Window's handling of a BIOS bug to improve power usage on laptops.

You can argue of semantic word games all day, but for a lot of users a "problem" was fixed. It might not have been a "bug" "in" Linux, but the end result was that battery life under Linux suffered, and that has now been fixed.

As I understand it, that kind of problem is exactly what motivated the kernel change that Phoronix called a regression. All hell would break loose on some systems if ASPM was enabled, so the kernel developers disabled it by default. That change led to increased stability at the cost of decreased energy efficiency. If the regression is fixed, it should mean systems like yours can use ASPM safely now.

It probably is. He is likely to be using something very old and unpatched, Intel has blacklisted L0's on their buggy chips for a while, and even the fix for L1's is not that new and is available on the latest stable kernels.

Possibly already fixed: "Some drivers (e.g. the e1000 network driver) have already switched off the ASPM where the PCI-E v1.1 feature is known to not work" Phoronix [phoronix.com] If not, report it and that driver will get ASPM blacklisted.

This is making Linux look bad without reason. Before the whole "Linux Power Regression" coming up and being advertised as a problem by Phoronix, I did enjoy reading the occasional article (Benchmarks, etc.) by Phoronix, but after this whole thing I have lost complete respect for Phoronix.

It's not a Linux bug but BIOS misbehaving. Linux is simply playing it safe.

And if it weren't for Phoronix "advertising the problem" it most likely still would be sitting there, not getting attention. So you've lost complete respect for them, because they highlighted a problem in Linux, that needed to be fixed, and it got fixed?

Be that as it may, things appear to work fine on Windows. On Linux they don't. Hence the problem is Linux's problem. It's unfortunate that we have to work around boneheaded hardware and Microsoft's insistence on not documenting anything publicly. However that's the way things are. We can complain all we want about hardware manufacturers doing things wrong, but unless we can convince them to fix it (and 1% of their users whining about something that works just fine in Windows is not likely to get anywher

Just out of curiosity, have you tried any of the boot loaders intended for Mac OS X on your version of Fedora? Boot loaders like Chameleon load custom DSDT tables into memory and transparently present them to the OS.

> Be that as it may, things appear to work fine on Windows. On Linux they don't.

The reverse is also true.

The fact that Microsoft is an industry strangling monopoly on the PC platform really doesn't alter this. Anyone that claims otherwise is an idiot or a liar.

Broke due to actively monopoly sabotage is a bit different than merely broken. This aspect of the situation should be front and center whenever it's the case. It should not be quietly swept under the rug.

No. Battery life goes from 8hrs to 5hrs because Linux is actually "following the spec".

Hacks and reverse engineering should not be necessary.

In an ideal world, yes.

However, there are several truths. First, most developers are crap. Yes, even you. This goes for hardware developers as well.

You'll find all sorts of hacks in Windows just to work around developer problems. For proof - see Vista - Microsoft basically redid a bunch of stuff to be cleaner and removed the hacks, and things broke horribly. All Window

That is due to i915_enable_rc6 defaulting to off. In 3.2 they should be changing it to default to on again as they've fixed the lockup bugs that it was causing. See the developers blog for more; http://dodonov.net/blog/ [dodonov.net]