lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 23 Nov 2020 09:41:23 +1100
From:   Balbir Singh <>
To:     "Joel Fernandes (Google)" <>
Cc:     Nishanth Aravamudan <>,
        Julien Desfossez <>,
        Peter Zijlstra <>,
        Tim Chen <>,
        Vineeth Pillai <>,
        Aaron Lu <>,
        Aubrey Li <>,,,,,,,,
        Phil Auld <>,
        Valentin Schneider <>,
        Mel Gorman <>,
        Pawan Gupta <>,
        Paolo Bonzini <>,,
        Chen Yu <>,
        Christian Brauner <>,
        Agata Gruza <>,
        Antonio Gomez Iglesias <>,,,,,,,,
        Alexandre Chartre <>,,,
        Dhaval Giani <>,
        Junaid Shahid <>,,, Ben Segall <>,
        Josh Don <>, Hao Luo <>,
        Tom Lendacky <>,
        Aubrey Li <>,
        "Paul E. McKenney" <>,
        Tim Chen <>
Subject: Re: [PATCH -tip 10/32] sched: Fix priority inversion of cookied task
 with sibling

On Tue, Nov 17, 2020 at 06:19:40PM -0500, Joel Fernandes (Google) wrote:
> From: Peter Zijlstra <>
> The rationale is as follows. In the core-wide pick logic, even if
> need_sync == false, we need to go look at other CPUs (non-local CPUs) to
> see if they could be running RT.
> Say the RQs in a particular core look like this:
> Let CFS1 and CFS2 be 2 tagged CFS tags. Let RT1 be an untagged RT task.
> rq0            rq1
> CFS1 (tagged)  RT1 (not tag)
> CFS2 (tagged)
> Say schedule() runs on rq0. Now, it will enter the above loop and
> pick_task(RT) will return NULL for 'p'. It will enter the above if() block
> and see that need_sync == false and will skip RT entirely.
> The end result of the selection will be (say prio(CFS1) > prio(CFS2)):
> rq0             rq1
> CFS1            IDLE
> When it should have selected:
> rq0             r1
> IDLE            RT
> Joel saw this issue on real-world usecases in ChromeOS where an RT task
> gets constantly force-idled and breaks RT. Lets cure it.
> NOTE: This problem will be fixed differently in a later patch. It just
>       kept here for reference purposes about this issue, and to make
>       applying later patches easier.

The changelog is hard to read, it refers to above if(), whereas there
is no code snippet in the changelog. Also, from what I can see following
the series, p->core_cookie is not yet set anywhere (unless I missed it),
so fixing it in here did not make sense just reading the series.


Powered by blists - more mailing lists