|
|
Subscribe / Log in / New account

What's a CPU to do when it has nothing to do?

Please consider subscribing to LWN

Subscriptions are the lifeblood of LWN.net. If you appreciate this content and would like to see more of it, your subscription will help to ensure that LWN continues to thrive. Please visit this page to join up and keep LWN on the net.

October 5, 2018

This article was contributed by Tom Yates


Kernel Recipes

It would be reasonable to expect doing nothing to be an easy, simple task for a kernel, but it isn't. At Kernel Recipes 2018, Rafael Wysocki discussed what CPUs do when they don't have anything to do, how the kernel handles this, problems inherent in the current strategy, and how his recent rework of the kernel's idle loop has improved power consumption on systems that aren't doing anything.

The idle loop, one of the kernel subsystems that Wysocki maintains, controls what a CPU does when it has no processes to run. Precise to a fault, Wysocki defined his terms: for the purposes of this discussion, a CPU is an entity that can take instructions from memory and execute them at the same time as any other entities in the same system are doing likewise. On a simple, single-core single-processor system, that core is the CPU. If the processor has multiple cores, each of those cores is a CPU. If each of those cores exposes multiple interfaces for simultaneous instruction execution, which Intel calls "hyperthreading", then each of those threads is a CPU. [Rafael Wysocki]

A CPU is idle if there are no tasks for it to run. Or, again more precisely, the Linux kernel has a number of internal scheduling classes, including the special idle class. If there are no tasks to run on a given CPU in any of those classes save the idle class, the CPU is regarded as idle. If the hardware doesn't make allowance for this, then the CPU will have to run useless instructions until it is needed for real work. However, this is a wildly inefficient use of electricity, so most CPUs support a number of lower-power states into which the kernel can put them until they are needed to do useful work.

Idle states are not free to enter or exit. Entry and exit both require some time, and moreover power consumption briefly rises slightly above normal for the current state on entry to idle and above normal for the destination state on exit from idle. Although increasingly deep idle states consume decreasing amounts of power, they have increasingly large costs to enter and exit. This implies that for short idle periods, a fairly shallow idle state is the best use of system resources; for longer idle periods, the costs of a deeper idle state will be justified by the increased power savings while idle. It is therefore in the kernel's best interests to predict how long a CPU will be idle before deciding how deeply to idle it. This is the job of the idle loop.

In this loop, the CPU scheduler notices that a CPU is idle because it has no work for the CPU to do. The scheduler then calls the governor, which does its best to predict the appropriate idle state to enter. There are currently two governors in the kernel, called "menu" and "ladder". They are used in different cases, but they both try to do roughly the same thing: keep track of system state when a CPU idles and how long it ended up idling for. This is done in order to predict how long a freshly-idle CPU is likely to remain so, and thus what idle state is most appropriate for it.

This job is made particularly difficult by the CPU scheduler's clock tick. This is a timer that is run by the CPU scheduler for the purpose of time-sharing the CPU: if you are going to run multiple jobs on a single CPU, each job can only be run for a while, then periodically put aside in favor of another job. This tick doesn't need to run on a CPU that is idle, since there are no jobs between which the CPU should be shared. Moreover, if the tick is allowed to run on an otherwise-idle CPU, it will prevent the governor from selecting deep idle states by limiting the time for which the CPU is likely to remain idle. So in kernels 4.16 and older, the scheduler disables the tick before calling the governor. When the CPU is woken by an interrupt, the scheduler makes a decision about whether there's work to do and, if so, reactivates the tick.

If the governor predicts a long idle, and the idle period turns out to be long, the governor "wins": the CPU will enter a deep idle state and power will be saved. But if the governor predicts long idle and the period turns out to be short, the governor "loses" because the costs of entering a deep idle state are not repaid by power savings over the short idle period. Worse, if the governor predicts a short idle period, it loses regardless of the actual idle duration: if the actual duration is long, potential power savings have been missed out on, and if it's short, the costs of stopping and restarting the tick have been paid needlessly. Or to put it another way, because stopping and starting the tick have a cost, there is no point in stopping the tick if the governor is going to predict a short idle.

Wysocki considered trying to redesign the governor to work around this, but concluded that the essential problem is that the tick is stopped before the governor is invoked, thus before the recommended idle state is known. He therefore reworked the idle loop for kernel 4.17 so that the decision about stopping the tick is taken after the governor has made its recommendation of the idle state. If the recommendation is for a long idle, the tick is stopped so as not to wake the CPU prematurely. If the recommendation is for a short idle, the tick is left on to avoid paying the cost of turning it off. That means the tick is also a safety net that will wake the CPU in the event that the idle turns out to be longer than predicted and give the governor another chance to get it right.

When the idled CPU is woken by an interrupt, whether from the tick that was left running or by some other event, the scheduler immediately makes a decision about whether there's work to do. If there is, the tick is restarted if need be; but if there is not, the governor is immediately re-invoked. Since that means the governor can now be invoked both when the tick is running and when it is stopped, the governor had to be reworked to take this into account.

Re-examining the win/loss table from earlier, Wysocki expects things to be improved by this rework. If long idle is predicted, the tick is still stopped, so nothing changes; we win if the actual idle is long, and lose if it's short. But if short idle is predicted, we're better off: if the actual idle is short, we've saved the cost of stopping and restarting the tick, and if the actual idle is long, the unstopped timer will wake us up and give us another bite at the prediction cherry.

[Comparison graph]

Since game theory is no substitute for real-world data, Wysocki tested this on a number of systems. The graph above is characteristic of all the systems tested and shows power consumption against time on a system that is idle. The green line is with the old idle loop, the red is with the new: power consumption is less under the new scheme, and moreover it is much more predictable than before. Not all CPUs tested showed as large a gap between the green and red lines, but all showed a flat red line beneath a bumpy green one. As Wysocki put it, this new scheme predicts short idles less often than the old scheme did, but it is right about them being short more often.

In response to a question from the audience, Wysocki said that the work is architecture-independent. Intel CPUs will benefit from it particularly, because they have a comparatively large array of idle states from which the governor may select, giving the governor the best chance of doing well if it predicts correctly; but ARM CPUs, for example, will also benefit.

[CPU use]

A 20% drop in idle power consumption may seem small as victories go, but it's not. Any system that wants to be able to cope reasonably well with peak loads will need spare capacity in normal operation, which will manifest as idle time. The graph above shows CPU usage on my mail/talk/file-transfer/VPN/NTP/etc. server over the past year; the bright yellow is idle time. Saving 20% of that power will please my co-location provider very much indeed, and it's good for the planet, too.

[We would like to thank LWN's travel sponsor, The Linux Foundation, for assistance with travel funding for Kernel Recipes.]

Index entries for this article
GuestArticlesYates, Tom
ConferenceKernel Recipes/2018


(Log in to post comments)

What's a CPU to do when it has nothing to do?

Posted Oct 5, 2018 19:40 UTC (Fri) by Cyberax (✭ supporter ✭, #52523) [Link]

> What's a CPU to do when it has nothing to do?
Mine Bitcoin!

/me runs and hides

What's a CPU to do when it has nothing to do?

Posted Oct 5, 2018 19:49 UTC (Fri) by atai (subscriber, #10977) [Link]

Please the kernel community, do not accept any patch coming out of the above comment to mine coins during idle...

What's a CPU to do when it has nothing to do?

Posted Oct 5, 2018 20:04 UTC (Fri) by Cyberax (✭ supporter ✭, #52523) [Link]

Hey, it would a great example of use for the new Zinc crypto library!

Why, you can even allow attaching eBPF programs to the idle loop to customize it.

What's a CPU to do when it has nothing to do?

Posted Oct 6, 2018 10:26 UTC (Sat) by smurf (subscriber, #17840) [Link]

You don't need a patch for that – just run the mining process with SCHED_IDLE priority.

At least, that's the theory. In practice it is no longer possible to mine bitcoins with the CPU.

What's a CPU to do when it has nothing to do?

Posted Oct 6, 2018 15:37 UTC (Sat) by zlynx (guest, #2285) [Link]

Even at IDLE priority running compute heavy code is silly these days. I have a 5960x system that goes from about 20 watts idle to over 200W if I start something like Prime95. 500W if I use the GPU. Plus the power to run the AC in here.

The cost of power runs up quickly.

In the Pentium III days I used to run SETI and Folding @Home but not in the last 10+ years.

What's a CPU to do when it has nothing to do?

Posted Oct 11, 2018 16:24 UTC (Thu) by nilsmeyer (guest, #122604) [Link]

In the single CPU / fixed clock and power days that didn’t really make a difference since power use would be fixed.

What's a CPU to do when it has nothing to do?

Posted Oct 5, 2018 20:14 UTC (Fri) by halla (subscriber, #14185) [Link]

This is a joke, of course, but I've been approached to add miner code to Krita's windows and macos binaries -- it would be good for 20k pounds a month!

Nothing doing, of course.

What's a CPU to do when it has nothing to do?

Posted Oct 5, 2018 20:40 UTC (Fri) by josh (subscriber, #17465) [Link]

Would you mind posting examples of what such a request looks like? I'm curious how they ask, and how much they seem to understand what they're doing is wrong (e.g. the degree to which they help you hide it).

(Bonus if you're willing to name companies asking. And if anyone has samples of what such code looks like, to put into scanners and similar.)

What's a CPU to do when it has nothing to do?

Posted Oct 5, 2018 21:39 UTC (Fri) by simcop2387 (subscriber, #101710) [Link]

I'd love to see the request too (regardless of redactions). I'd be willing to bet it's some kind of Monero or Zcash miner that they're using since those two make it easier to cash it out later. I also highly doubt they'd actually be paying 20k/month (even if they promise it) too. I'd bet it's something like "We'll pay you up to 20k/month*" with fine print stating that you have to get them 2mil/month with the miners to get that much.

What's a CPU to do when it has nothing to do?

Posted Oct 5, 2018 22:23 UTC (Fri) by halla (subscriber, #14185) [Link]

It was in 2017, the offer basically was to add their miner to the installer, and the subject guaranteed 20,000 euros a month; the actual text was a little less certain. I would have to dig through my old backups because early 2018 my server died, and I only have mail folder zips from before then, but not on this laptop.

What's a CPU to do when it has nothing to do?

Posted Oct 6, 2018 8:41 UTC (Sat) by pkern (subscriber, #32883) [Link]

Will this work eventually be usable to support Modern Suspend rather than S3 sleep?

What's a CPU to do when it has nothing to do?

Posted Oct 6, 2018 15:31 UTC (Sat) by zlynx (guest, #2285) [Link]

I think Linux is already there. What is Modern Suspend aka Connected Standby other than the low power modes that the hardware already has? Nothing I can see.

Do some experiments. If I log into my laptop remotely with SSH and SIGSTOP my already idle GUI session and then wait 10 minutes, Power History shows only about half a watt usage. Maybe less, the graph is small.

The screen is off, the NVMe drive is idle, the networking idles, the CPU idles, the PCIe bus goes into low power. There's nothing else to do. I suppose the system could place the RAM into low power refresh.

Other systems like Windows suspend user processes and offer ways to opt out for email or browser notifications to get a bit of runtime every two minutes. But that does not need any kernel support.

What's a CPU to do when it has nothing to do?

Posted Oct 6, 2018 17:37 UTC (Sat) by pkern (subscriber, #32883) [Link]

Okay. So that means that we need userspace support for this, rather than kernel. That's good news, I guess.

What's a CPU to do when it has nothing to do?

Posted Oct 6, 2018 18:47 UTC (Sat) by mjg59 (subscriber, #23239) [Link]

Well, we also need drivers that are actually able to power down hardware as much as possible. Suspend should be drawing significantly less than half a watt.

What's a CPU to do when it has nothing to do?

Posted Oct 6, 2018 18:56 UTC (Sat) by zlynx (guest, #2285) [Link]

Half a watt on a 90 KWh battery is 180 hours. Which is about a week. Which honestly, seems to be about how long my Dell can sit around suspended.

Are you sure you can do better than half a watt?

What's a CPU to do when it has nothing to do?

Posted Oct 6, 2018 19:05 UTC (Sat) by mjg59 (subscriber, #23239) [Link]

I think you mean Wh rather than KWh, but I'd still expect things to be better than that (eg, that's a loss of 15% of your battery after a day suspended, which seems excessive)

What's a CPU to do when it has nothing to do?

Posted Oct 6, 2018 19:11 UTC (Sat) by zlynx (guest, #2285) [Link]

Yes I did mean Wh, although a KWh laptop battery would be amazing. :-)

Things might be better than 0.5W in actual suspend. Remember when I said it looked like 0.5W I was talking about the laptop as it was idling. Fully powered on, with a connected SSH session, but no activity happening.

What's a CPU to do when it has nothing to do?

Posted Oct 6, 2018 19:21 UTC (Sat) by pkern (subscriber, #32883) [Link]

To be honest, 15% is pretty much what I would expect from S3 sleep. (It feels like even more.) At least on regular consumer hardware.

What's a CPU to do when it has nothing to do?

Posted Oct 8, 2018 3:42 UTC (Mon) by jfred (guest, #126493) [Link]

Your original comment says that's half a watt over 10 minutes, which would be 3 watts in an hour. Wouldn't that make the runtime on a 90 Wh battery 30 hours rather than 180?

What's a CPU to do when it has nothing to do?

Posted Oct 8, 2018 3:46 UTC (Mon) by jfred (guest, #126493) [Link]

Err... scratch that. It's been a while since I've worked with this stuff. (Whoops!)

What's a CPU to do when it has nothing to do?

Posted Oct 7, 2018 21:22 UTC (Sun) by isoma (guest, #127702) [Link]

To me, Linux's version of Modern Standby would means making the power consumption under system power state “freeze” (aka “s2idle”) end up very close to S1 ACPI sleep (the state you get from writing “standby” to /sys/power/state). Modern Standby means I can let my laptop / tablet go to sleep and see it instantly wake up with one button press - even on a USB keyboard or Bluetooth mouse. I can have that today, at the expense of battery life. On my laptop (XPS 13 Developer Edition) the “freeze” state power consumption is a lot higher than I'd like it to be. I'd imagine it's a common story on lots of PC devices that use Linux: idle power use is low, but it could be lots lower. Some improvements fit best into userland. After (say) 96 hours in freeze / idle, the system might want to look at battery use and consider using deep S3 / S4 sleep with scheduled wakeups. Maybe also wake up to poll the network. Once idle laptops and tablets are using about the same power as S1 sleep, we can one day look forward to convenience similar to Windows and iOS: beeps on new email; vibration for alerts we're interested in; waking the screen up to let us know about a video call from a friend. One day.

What's a CPU to do when it has nothing to do?

Posted Oct 8, 2018 9:06 UTC (Mon) by rjw@sisk.pl (subscriber, #39252) [Link]

Generally speaking, suspend-to-idle (s2idle) is what Linux does instead of Modern Standby. On some systems it actually works quite well (I have a Dell XPS13 9360 on which s2idle is as energy-efficient as ACPI S3, for example), but usually subject to some tuning. For instance, you need to ensure that the latest Intel graphics firmware is installed and loaded by the driver (i915) for it to be really energy-efficient. Work on documentation to help set it up and diagnose is in progress.

However, this presentation was not about system-wide suspend at all, but rather about what happens if the system is idle and not suspended (that is a valid use case too, especially for servers).

On laptops it usually is a good idea to set up user space to suspend the whole system when it has been idle for a certain amount of time (either via s2idle or via ACPI S3 if supported), but what happens before it is suspended does matter too.

What's a CPU to do when it has nothing to do?

Posted Oct 8, 2018 9:36 UTC (Mon) by zlynx (guest, #2285) [Link]

It would be nice if Microsoft could get this standby stuff to work the way it is supposed to. You'd think that with their own Window 10 OS and their own Surface Pro hardware they'd have it perfect. But it will work fine for a while then suddenly the Surface decides to burn 50% of its battery in 30 minutes for no apparent reason.

What's a CPU to do when it has nothing to do?

Posted Oct 8, 2018 14:59 UTC (Mon) by drag (guest, #31333) [Link]

> Other systems like Windows suspend user processes and offer ways to opt out for email or browser notifications to get a bit of runtime every two minutes. But that does not need any kernel support.

Sounds like a job for systemd --user.

Maybe systemd can be made aware of power levels and 'pause' notification processes. Then at pre-defined times it can 'pulse' the system, wake up the notification processes and give them a time window so they can do their checks, then put them back to sleep.

That would be something very cool to have.

What's a CPU to do when it has nothing to do?

Posted Oct 18, 2018 8:51 UTC (Thu) by Wol (subscriber, #4433) [Link]

My big bugbear is the laptop going to sleep while the network is maxed out. It's better now, but I had a load of files trashed in transit by that.

I now have my laptop configured "don't sleep if plugged in", and I have to remember to make sure it's plugged in before I try anything like that. If I'm doing a 20min file transfer (over 100Mb ethernet!), it's a real pain to babysit the laptop to prevent it sleeping.

Cheers,
Wol

What's a CPU to do when it has nothing to do?

Posted Oct 18, 2018 18:26 UTC (Thu) by raven667 (subscriber, #5198) [Link]

This may not solve it for you, but maybe will for someone else, there is a command line utility that can help with that, systemd-inhibit runs a command and inhibits sleep/shutdown until the command completes, so if you did 'systemd-inhibit cp -r /foo /bar' it wouldn't go to sleep when you walk away.

What's a CPU to do when it has nothing to do?

Posted Oct 19, 2018 16:44 UTC (Fri) by flussence (subscriber, #85566) [Link]

You're describing cron.

What's a CPU to do when it has nothing to do?

Posted Oct 28, 2018 21:45 UTC (Sun) by farnz (subscriber, #17727) [Link]

How does cron know that there are processes that want to wake the system from deep sleep, and ensure that they're all told to run at once the moment the system is out of sleep for any reason?

AFAICT, cron only solves the other side of the problem - waking from sleep on a timetable.

What's a CPU to do when it has nothing to do?

Posted Oct 8, 2018 9:23 UTC (Mon) by eru (subscriber, #2753) [Link]

Please, folks, don't use red-vs-green in diagrams! I honestly thought for a while the descriptions were reversed by mistake. Red-green color blindness is fairly common in males. (I'm perhaps partway one such: I see what I think is red and green, and these usually agree with what other people say the colors are, but some diagrams like these, and of course the test pictures with numbers hidden in dots trip me up).

What's a CPU to do when it has nothing to do?

Posted Oct 8, 2018 11:35 UTC (Mon) by tonyblackwell (guest, #43641) [Link]

round vs square graph points...
but I guess the point is valid.

What's a CPU to do when it has nothing to do?

Posted Oct 8, 2018 16:22 UTC (Mon) by eru (subscriber, #2753) [Link]

I was confused by this line in the text " The green line is with the old idle loop, the red is with the new", while my eyes seemed to tell me the red was the worse result.

What's a CPU to do when it has nothing to do?

Posted Oct 8, 2018 15:34 UTC (Mon) by cdamian (subscriber, #1271) [Link]

I have a red weakness and the first graph was fine.
The second one was much harder to read, but I got it from the context.

What's a CPU to do when it has nothing to do?

Posted Oct 9, 2018 17:23 UTC (Tue) by naptastic (guest, #60139) [Link]

The red line on that graph is suspiciously flat. Is anyone already testing this independently? Also, what's this going to do to latency-sensitive workloads, such as realtime A/V?

What's a CPU to do when it has nothing to do?

Posted Oct 9, 2018 20:07 UTC (Tue) by rweikusat2 (subscriber, #117920) [Link]

Calling "realtime A/V" "latency-sensitive" is a bit off. It's not latency-sensitive but real time: Data has to be processed at a certain frequency to avoid output distortion, ie, neither faster nor slower. There's no reason to assume these changes should affect it provided the frequency is high to enough that the CPU isn't considered idle because of the interval between two blobs of data. Considering that CD audio has a frequency of 44.1khz, ie a sample about every 2.3E-5s, this seems unlikely.

What's a CPU to do when it has nothing to do?

Posted Oct 9, 2018 20:52 UTC (Tue) by bfields (subscriber, #19510) [Link]

Just an obvious nitpick: the CPU as far as I know doesn't process audio samples one at a time, it moves them in batches in and out of buffers, so the sample rate isn't the same thing as the frequency with which the CPU has to wake up to process the audio stream.

What's a CPU to do when it has nothing to do?

Posted Oct 10, 2018 12:16 UTC (Wed) by rweikusat2 (subscriber, #117920) [Link]

This doesn't make much of a difference: Something needs to supply a steady stream of samples with the intended frequency and with only minor delays due to buffering. Ultimatively, this means sending data in fairly small batches over a bus to some peripheral device, this being done in the kernel and consuming CPU time.

If you want some numbers on this, the second section of this text

https://www.edn.com/design/consumer/4376143/Fundamentals-...

provides a short overview.

The patch described in the text tweaks the handling of a CPU which is already considered idle. The kernel decidedly shouldn't consider a CPU working with some audio stream idle and if it did, this change wouldn't make matters worse.

What's a CPU to do when it has nothing to do?

Posted Oct 10, 2018 20:23 UTC (Wed) by flussence (subscriber, #85566) [Link]

USB2 isn't exactly a shining model of CPU efficiency to begin with though.

snd-hda-intel would be better to look at here, because that actually has improved power efficiency over the years by using huge DMA buffers; a system playing audio through pulseaudio and otherwise idle shows very low numbers in powertop.

What's a CPU to do when it has nothing to do?

Posted Oct 10, 2018 21:46 UTC (Wed) by rweikusat2 (subscriber, #117920) [Link]

If this is supposed to have any relation to the text(s) I wrote, I have no idea what this could possibly be.

What's a CPU to do when it has nothing to do?

Posted Oct 11, 2018 2:35 UTC (Thu) by bfields (subscriber, #19510) [Link]

You said: "The kernel decidedly shouldn't consider a CPU working with some audio stream idle"

The kernel certainly can consider a CPU working with an audio stream to be idle, and you can probably verify this by experimenting with powertop while playing audio.

What's a CPU to do when it has nothing to do?

Posted Oct 11, 2018 8:22 UTC (Thu) by cladisch (✭ supporter ✭, #50193) [Link]

That "something" that transmit samples is hardware. In the case of USB audio, the host controller has a pipeline of packets to be sent. When doing playback from a file, it's possible to use a large pipeline (with a corresponding large latency); a smaller limit on the delay is required only when the samples must be generated in real time.

What's a CPU to do when it has nothing to do?

Posted Oct 11, 2018 14:46 UTC (Thu) by bfields (subscriber, #19510) [Link]

"That "something" that transmit samples is hardware. In the case of USB audio, the host controller has a pipeline of packets to be sent. When doing playback from a file, it's possible to use a large pipeline (with a corresponding large latency); a smaller limit on the delay is required only when the samples must be generated in real time."

Yes. And even then it's still common to buffer a few milliseconds worth, which is more than enough for the CPU to drop to a lower-power state. Though in practice of course that depends on how much processing it takes to generate the sound.

What's a CPU to do when it has nothing to do?

Posted Oct 18, 2018 9:06 UTC (Thu) by Wol (subscriber, #4433) [Link]

Simply put, are you playing a CD, or running the monitors for a concert.

If you're playing a CD, you can have a 5 second lag and, provided the output buffer always has something in it, no-one will notice. If you're running the monitors, it only takes something like 5 milli-seconds (don't know the figure) lag between the analog and digital audio, and the band will be getting headaches.

Cheers,
Wol

What's a CPU to do when it has nothing to do?

Posted Oct 18, 2018 9:31 UTC (Thu) by farnz (subscriber, #17727) [Link]

Further, with the CD example, you can start playing when the buffer has one CD Audio frame in it (1/75th of a second), and run the CD reader at a higher speed until you have 5 seconds of data in the buffer, before slowing it back to 1x to keep the buffer filled. If a hiccup happens, you have 5 seconds to recover before the user hears an issue.

This gets you no lag (you play the moment you've read a single frame), and a 5 second buffer against read issues, system overload etc. Obviously, you can't do this unless you can (as in the CD example) read ahead and have data waiting. Plus, when it's time to stop, you can just drop the buffer and stop immediately.

Monitor audio is problematic not because you can't tolerate delay, but because you can neither tolerate delay nor read ahead into the future; thus, you can't build up a 5 second safety buffer.

What's a CPU to do when it has nothing to do?

Posted Oct 18, 2018 14:46 UTC (Thu) by bfields (subscriber, #19510) [Link]

Not an expert, so I may be misusing these numbers, but I believe the numbers under /sys/devices/system/cpu/cpu0/cpuidle/*/latency are times in microseconds to return from the various states. On my system the vary between 2μ and 166μ. So I think it's possible to enter c-states even when waking up every millisecond?

What's a CPU to do when it has nothing to do?

Posted Oct 19, 2018 1:58 UTC (Fri) by leemeans (guest, #127765) [Link]

What i'm very puzzled is that in this article you said that
Intel CPUs will benefit from it particularly, .....; but ARM CPUs, for example, will also benefit.

Why here we have a 'but' for ARM architecture.

Besides , before this sentence i read that 'Wysocki said that the work is architecture-independent. '. Is that implies this work will make Intel CPUs benefit from it much but ARM doesn't ? Or maybe not ?


Copyright © 2018, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds