[PATCH v2 0/5] sched, timer: Improve scalability of itimers

Jason Low
2015-04-28T20:00:39Z

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