Messages in this thread | | | Subject | Re: [PATCH v2] sched, timer: Use atomics for thread_group_cputimer to improve scalability | From | Jason Low <> | Date | Thu, 19 Mar 2015 10:21:01 -0700 |
| |
On Mon, 2015-03-02 at 13:49 -0800, Jason Low wrote: > On Mon, 2015-03-02 at 11:03 -0800, Linus Torvalds wrote: > > On Mon, Mar 2, 2015 at 10:42 AM, Jason Low <jason.low2@hp.com> wrote: > > > > > > This patch converts the timers to 64 bit atomic variables and use > > > atomic add to update them without a lock. With this patch, the percent > > > of total time spent updating thread group cputimer timers was reduced > > > from 30% down to less than 1%. > > > > NAK. > > > > Not because I think this is wrong, but because somebody needs to look > > at the effects on 32-bit architectures too. > > Okay, I will run some tests to see how this change affects the > performance of itimers on 32 bit systems.
Hi Linus,
I tested this patch on a 32 bit ARM system with 4 cores. Using the generic 64 bit atomics, I did not see any performance change with this patch, and the relevant functions (account_group_*_time(), ect...) don't show up in perf reports.
One factor might be because locking/cacheline contention isn't as apparent on smaller systems to begin with, and lib/atomic64.c also mentions that "this is expected to used on systems with small numbers of CPUs (<= 4 or so)".
| |