[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <56D9E72D.5060308@windriver.com>
Date: Fri, 4 Mar 2016 13:51:09 -0600
From: Chris Friesen <chris.friesen@...driver.com>
To: lkml <linux-kernel@...r.kernel.org>,
Frederic Weisbecker <fweisbec@...il.com>
Subject: question about logic of steal_account_process_tick() ?
I'm trying to wrap my head around how steal_account_process_tick() interacts
with account_process_tick().
Suppose we have CONFIG_VIRT_CPU_ACCOUNTING_GEN=y and CONFIG_NO_HZ_IDLE, with a
cpu hog on cpu0 to prevent it going idle.
As I understand it, account_process_tick() will be called once per tick to
decide whether that tick should be allocated against user/system/idle. However,
it first calls steal_account_process_tick() and then returns if that returns a
nonzero value.
The thing is, steal_account_process_tick() returns units of cputime, which I
think is nanoseconds on x86_64. So if we have a tiny amount of stolen time it
seems like that will prevent a whole tick from being accounted into
user/system/idle.
I feel like I must be missing something here, can someone tell me what it is?
Chris
Powered by blists - more mailing lists