From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1031028AbbD1UAj (ORCPT ); Tue, 28 Apr 2015 16:00:39 -0400 Received: from g4t3427.houston.hp.com ([15.201.208.55]:42009 "EHLO g4t3427.houston.hp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1030826AbbD1UAf (ORCPT ); Tue, 28 Apr 2015 16:00:35 -0400 From: Jason Low To: Peter Zijlstra , Ingo Molnar , Thomas Gleixner Cc: linux-kernel@vger.kernel.org, "Paul E. McKenney" , Andrew Morton , Oleg Nesterov , Frederic Weisbecker , Mel Gorman , Rik van Riel , Steven Rostedt , Preeti U Murthy , Mike Galbraith , Davidlohr Bueso , Waiman Long , Aswin Chandramouleeswaran , Scott J Norton , Jason Low Subject: [PATCH v2 0/5] sched, timer: Improve scalability of itimers Date: Tue, 28 Apr 2015 13:00:19 -0700 Message-Id: <1430251224-5764-1-git-send-email-jason.low2@hp.com> X-Mailer: git-send-email 1.7.9.5 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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