On Mon, Aug 15, 2016 at 11:19:01AM +0200, Stanislaw Gruszka wrote: > > Is this really equivalent though? It updates one task instead of all > > tasks in the group and there is no guarantee that tsk == current. > > Oh, my intention was to update runtime on current. >
Ok, so minimally that would need addressing. However, then I would worry that two tasks in a group calling the function at the same time would see different results because each of them updated a different task. Such a situation is inherently race-prone anyway but it's a large enough functional difference to be worth calling out. Minimally, I don't think such a patch is a replacement for Giovanni's which is functionally equivalent to the current code but could be layered on top if it is proven to be ok. > > Glancing at it, it should monotonically increase but it looks like it > > would calculate stale data. > > Yes, until the next tick on a CPU, the patch does not count partial > runtime of thread running on that CPU. However that was the behaviour > before commit d670ec13178d0 - that how old thread_group_sched_runtime() > function worked: > Sure, but does this patch not reintroduce the "SMP wobble" and the problem of "the diff of 'process' should always be >= the diff of 'thread'" ? -- Mel Gorman SUSE Labs