Messages in this thread | | | Date | Thu, 06 Mar 2014 14:36:17 -0500 | From | Rik van Riel <> | Subject | Re: [PATCH 4/6] cputime: Fix jiffies based cputime assumption on steal accounting |
| |
On 03/06/2014 12:56 PM, Frederic Weisbecker wrote: > The steal guest time accounting code assumes that cputime_t is based on > jiffies. So when CONFIG_NO_HZ_FULL=y, which implies that cputime_t > is based on nsecs, steal_account_process_tick() passes the delta in > jiffies to account_steal_time() which then accounts it as if it's a > value in nsecs. > > As a result, accounting 1 second of steal time (with HZ=100 that would > be 100 jiffies) is spuriously accounted as 100 nsecs. > > As such /proc/stat may report 0 values of steal time even when two > guests have run concurrently for a few seconds on the same host and > same CPU. > > In order to fix this, lets convert the nsecs based steal delta to > cputime instead of jiffies by using the right conversion API. > > Given that the steal time is stored in cputime_t and this type can have > a smaller granularity than nsecs, we only account the rounded converted > value and leave the remaining nsecs for the next deltas. > > Reported-by: Huiqingding <huding@redhat.com> > Reported-by: Marcelo Tosatti <mtosatti@redhat.com> > Cc: Ingo Molnar <mingo@kernel.org> > Cc: Marcelo Tosatti <mtosatti@redhat.com> > Cc: Peter Zijlstra <peterz@infradead.org> > Cc: Thomas Gleixner <tglx@linutronix.de> > Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Acked-by: Rik van Riel <riel@redhat.com>
| |