Re: [PATCH 3/3] context_tracking,x86: remove extraneous irq disable & enable from context tracking on syscall entry

From: Rik van Riel
Date: Fri May 01 2015 - 12:55:06 EST


On 05/01/2015 12:45 PM, Ingo Molnar wrote:
>
> * Rik van Riel <riel@xxxxxxxxxx> wrote:
>
>> On 05/01/2015 12:37 PM, Ingo Molnar wrote:
>>
>>> Also note that this bit in context_tracking_enter():
>>>
>>> if (state == CONTEXT_USER) {
>>> trace_user_enter(0);
>>> vtime_user_enter(current);
>>> }
>>>
>>>
>>> is related to precise time measurement of user/kernel execution
>>> times, it's not needed by the scheduler at all, it's just exported
>>> to tooling. It's not fundamental to the scheduler.
>>
>> Any objections to the idea from the other thread to simply keep the
>> time accumulating in buffers in local_clock() units, and only update
>> the task vtime once a second or so?
>
> So I really think per syscall overhead is the wrong thing to do for
> anything that a common distro enables.
>
> I see very little use for such precise, high-freq measurements on
> normal systems - and abnormal systems could enable it dynamically just
> like they can enable syscall auditing.
>
> I.e. I don't mind the occasional crazy piece of code, as long as it
> does not hurt the innocent.

Then how should/could we keep a rough idea of user / system / guest
time when running without a periodic timer tick?

These statistics are useful, and gathering them in a low impact
way (local_clock read + variable read + subtraction + addition +
store) may be acceptable overhead.

This is a few function calls, one tsc read, a possible cache
line miss, and an unlikely branch.

--
All rights reversed
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/