All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Bone <pbone@mozilla.com>
To: linux-kernel@vger.kernel.org
Subject: Scheduling for heterogeneous computers
Date: Tue, 8 Mar 2022 20:21:41 +1100	[thread overview]
Message-ID: <20220308092141.GF748856@aluminium> (raw)


Are there plans for power-aware scheduling on heterogeneous computers that
processes & threads can opt-in to?

Several mainstream devices now offer power-aware heterogeneous scheduling:

 * Lots of ARM (and therefore android) devices offer big.LITTLE cores.
 * Apple's M1 CPU has "gold" and "silver" cores.  The gold cores are faster
   and have more cache.  I think there are other microarchitectual
   differences.
 * Intel's Alder Lake CPUs have P and E cores.  I'm told that the E cores
   don't save power though since each core type still gets the same work
   done per Watt, it's just that the P cores are bigger and faster.
 * Multicore CPUs that offer frequency scaling could get some power savings
   by switching off turbo boost and similar features.  They wonThe work/watt
   improves at the cost of throughput & responsiveness.

I'm aware that Linux does some Energy Aware Scheduling
https://docs.kernel.org/scheduler/sched-energy.html, however what I'm
looking for is an API that processes (but ideally threads) can opt in-to
(and out-of (unlike nice)) to say that the work they're currently doing is
bulk work.  It needs to get done but it doesn't have a deadline and
therefore can be done on a smaller / more power efficient core.  The idea is
that the same work gets done eventually, but for a background task (eg
Garbage Collection) it can be done in a greener or more
battery-charge-extending way.

MacOS has added an API for this as:
    pthread_set_qos_class_self_np()
    https://developer.apple.com/documentation/apple-silicon/tuning-your-code-s-performance-for-apple-silicon?preferredLanguage=occ

Windows has:
    ThreadPowerThrottling
    https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setthreadinformation

I'm not aware of anything for Linux and I've been unable to find anything.
Are there any plans to implement this?  

Cheers.



             reply	other threads:[~2022-03-08  9:21 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-08  9:21 Paul Bone [this message]
2022-03-21 12:16 ` Scheduling for heterogeneous computers Qais Yousef
     [not found]   ` <CANdLaqA6aHr3K0apZLsXVbx1_zZvK6iMvX+HVcu7888HOeEjhg@mail.gmail.com>
2022-05-25 15:29     ` Qais Yousef
2022-05-27  5:45       ` Paul Bone
2022-06-01 15:18         ` Qais Yousef

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220308092141.GF748856@aluminium \
    --to=pbone@mozilla.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.