lists.openwall.net   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  linux-cve-announce  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:   Thu, 6 Oct 2022 17:31:11 -0400
From:   Waiman Long <longman@...hat.com>
To:     Peter Zijlstra <peterz@...radead.org>
Cc:     linux-kernel@...r.kernel.org,
        Linus Torvalds <torvalds@...ux-foundation.org>,
        Lai Jiangshan <jiangshanlai@...il.com>,
        Juri Lelli <juri.lelli@...hat.com>,
        Ingo Molnar <mingo@...hat.com>,
        Vincent Guittot <vincent.guittot@...aro.org>,
        Dietmar Eggemann <dietmar.eggemann@....com>,
        Steven Rostedt <rostedt@...dmis.org>,
        Ben Segall <bsegall@...gle.com>, Mel Gorman <mgorman@...e.de>,
        Daniel Bristot de Oliveira <bristot@...hat.com>,
        Valentin Schneider <vschneid@...hat.com>,
        Tejun Heo <tj@...nel.org>, Zefan Li <lizefan.x@...edance.com>,
        Johannes Weiner <hannes@...xchg.org>,
        Will Deacon <will@...nel.org>
Subject: Re: [PATCH v10 0/5] sched: Persistent user requested affinity

On 9/22/22 14:00, Waiman Long wrote:
> v10:
>   - Squash patches 4, 5 & 6 together into a single patch as suggested
>     by PeterZ.
>
> v9:
>   - Fix non-SMP config build errors in patch 4 reported by kernel test
>     robot.
>   - Disable user_cpus_ptr masking also when any of the SCA_MIGRATE_*
>     flags are set.
>
> v8:
>   - Add patches "sched: Introduce affinity_context structure" and
>     "sched: Always clear user_cpus_ptr in do_set_cpus_allowed()" as
>     suggested by PeterZ.
>   - Better handle cpuset and sched_setaffinity() race in patch 5.
>
> v7:
>   - Make changes recommended by Peter such as making scratch_mask
>     allocation earlier and using percpu variable to pass information.
>
> The user_cpus_ptr field is added by commit b90ca8badbd1 ("sched:
> Introduce task_struct::user_cpus_ptr to track requested affinity")
> which uses it narrowly to allow keeping cpus affinity intact with
> asymmetric cpu setup.
>
> This patchset extends user_cpus_ptr to store user requested cpus affinity
> via the sched_setaffinity() API. With that information available, it will
> enable cpuset and other callers of set_cpus_allowed_ptr() like hotplug
> to keep cpus afinity as close to what the user wants as possible within
> the cpu list constraint of the current cpuset. Otherwise some change
> to the cpuset hierarchy or a hotplug event may reset the cpumask of
> the tasks in the affected cpusets to the default cpuset value even if
> those tasks have cpus affinity explicitly set by the users before.
>
> It also means that once sched_setaffinity() is called successfully,
> user_cpus_ptr will remain allocated until the task exits except in some
> rare circumstances.
>
> Waiman Long (5):
>    sched: Add __releases annotations to affine_move_task()
>    sched: Use user_cpus_ptr for saving user provided cpumask in
>      sched_setaffinity()
>    sched: Enforce user requested affinity
>    sched: Handle set_cpus_allowed_ptr(), sched_setaffinity() & other
>      races
>    sched: Always clear user_cpus_ptr in do_set_cpus_allowed()
>
>   kernel/sched/core.c     | 231 +++++++++++++++++++++++++---------------
>   kernel/sched/deadline.c |   7 +-
>   kernel/sched/sched.h    |  22 +++-
>   3 files changed, 169 insertions(+), 91 deletions(-)
>
Peter, do you have any further suggestion on how to improve this series?

Thanks,
Longman

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ