Messages in this thread | | | From | Jason Low <> | Subject | [PATCH v2 0/5] sched, timer: Improve scalability of itimers | Date | Tue, 28 Apr 2015 13:00:19 -0700 |
| |
This patchset improves the scalability of itimers, thread_group_cputimer and addresses a performance issue we found while running a database workload where more than 30% of total time is spent in the kernel trying to acquire the thread_group_cputimer spinlock.
While we're modifying sched and timer, patch 1 also updates all existing usages of ACCESS_ONCE with the new READ_ONCE and WRITE_ONCE APIs in those areas.
Jason Low (5): sched, timer: Remove usages of ACCESS_ONCE in the scheduler sched, numa: Document usages of mm->numa_scan_seq sched, timer: Use atomics in thread_group_cputimer to improve scalability sched, timer: Provide an atomic task_cputime data structure sched, timer: Use the atomic task_cputime in thread_group_cputimer
include/linux/init_task.h | 5 +- include/linux/sched.h | 29 +++++++++---- kernel/fork.c | 5 +-- kernel/sched/auto_group.c | 2 +- kernel/sched/auto_group.h | 2 +- kernel/sched/core.c | 4 +- kernel/sched/cputime.c | 2 +- kernel/sched/deadline.c | 2 +- kernel/sched/fair.c | 26 +++++++++--- kernel/sched/proc.c | 4 +- kernel/sched/rt.c | 2 +- kernel/sched/sched.h | 2 +- kernel/sched/stats.h | 15 ++----- kernel/sched/wait.c | 4 +- kernel/time/posix-cpu-timers.c | 87 +++++++++++++++++++++++++--------------- 15 files changed, 113 insertions(+), 78 deletions(-)
-- 1.7.2.5
| |