• Patrick Bellasi's avatar
    sched/core: Allow sched_setattr() to use the current policy · 1d6362fa
    Patrick Bellasi authored
    The sched_setattr() syscall mandates that a policy is always specified.
    This requires to always know which policy a task will have when
    attributes are configured and this makes it impossible to add more
    generic task attributes valid across different scheduling policies.
    Reading the policy before setting generic tasks attributes is racy since
    we cannot be sure it is not changed concurrently.
    
    Introduce the required support to change generic task attributes without
    affecting the current task policy. This is done by adding an attribute flag
    (SCHED_FLAG_KEEP_POLICY) to enforce the usage of the current policy.
    
    Add support for the SETPARAM_POLICY policy, which is already used by the
    sched_setparam() POSIX syscall, to the sched_setattr() non-POSIX
    syscall.
    Signed-off-by: default avatarPatrick Bellasi <patrick.bellasi@arm.com>
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Alessio Balsini <balsini@android.com>
    Cc: Dietmar Eggemann <dietmar.eggemann@arm.com>
    Cc: Joel Fernandes <joelaf@google.com>
    Cc: Juri Lelli <juri.lelli@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Morten Rasmussen <morten.rasmussen@arm.com>
    Cc: Paul Turner <pjt@google.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Quentin Perret <quentin.perret@arm.com>
    Cc: Rafael J . Wysocki <rafael.j.wysocki@intel.com>
    Cc: Steve Muckle <smuckle@google.com>
    Cc: Suren Baghdasaryan <surenb@google.com>
    Cc: Tejun Heo <tj@kernel.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Todd Kjos <tkjos@google.com>
    Cc: Vincent Guittot <vincent.guittot@linaro.org>
    Cc: Viresh Kumar <viresh.kumar@linaro.org>
    Link: https://lkml.kernel.org/r/20190621084217.8167-6-patrick.bellasi@arm.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    1d6362fa
core.c 183 KB