Messages in this thread | | | Date | Wed, 15 Apr 2015 09:35:32 +0200 | From | Ingo Molnar <> | Subject | Re: [PATCH 2/3] sched, timer: Use atomics for thread_group_cputimer to improve scalability |
| |
* Ingo Molnar <mingo@kernel.org> wrote:
> So after your changes we still have a separate: > > struct task_cputime { > cputime_t utime; > cputime_t stime; > unsigned long long sum_exec_runtime; > }; > > Which then weirdly overlaps with a different structure on a different > abstraction level: > > struct thread_group_cputimer { > atomic64_t utime; > atomic64_t stime; > atomic64_t sum_exec_runtime; > int running; > }; > > So I think it would be more obvious what's going on if we introduced > an atomic task_cputime structure: > > struct task_cputime_atomic { > atomic64_t utime; > atomic64_t stime; > atomic64_t sum_exec_runtime; > }; > > and put that into 'struct thread_group_cputimer': > > struct thread_group_cputimer { > struct task_cputime_atomic cputime_atomic; > int running; > }; > > Maybe even factor out the main update and reading methods into > expressively named helper inlines?
Btw., feel free to preserve your original series and turn this factoring out into 1-2 extra patches on top of it: so that we preserve your testing on the original series, and see the structure (and cost) of the factoring out of the new data type.
Thanks,
Ingo
| |