From: John Stultz <john.stultz@linaro.org>
To: Oleg Nesterov <oleg@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
"Eric W. Biederman" <ebiederm@xmission.com>,
Tomas Janousek <tjanouse@redhat.com>,
Tomas Smetana <tsmetana@redhat.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 0/3] de_thread() should update ->real_start_time
Date: Tue, 11 Jun 2013 11:14:36 -0700 [thread overview]
Message-ID: <51B7690C.8090805@linaro.org> (raw)
In-Reply-To: <20130611171300.GA7920@redhat.com>
On 06/11/2013 10:13 AM, Oleg Nesterov wrote:
> On 06/10, John Stultz wrote:
>
>>> simply change copy_process
>>>
>>> - do_posix_clock_monotonic_gettime(&p->start_time);
>>> + get_monotonic_boottime(&p->start_time);
>>>
>>> ?
>>>
>>> Afaics, this will only affect do_acct_process() and bacct_add_tsk(),
>>> but do we really want to exclude the suspended time in this case?
>> So bacct_add_tsk seems easy to change, since its just:
>> do_posix_clock_monotonic_gettime(&uptime);
>> ts = timespec_sub(uptime, tsk->start_time);
>>
>> So grabbing the monotonic boot time for uptime would provide the same
>> relative delta.
> Not really, or I misunderstood monotonic/boottime interaction.
>
> IIUC, monotonic doesn't grow during suspend, so the delta can grow if
> we use get_monotonic_boottime() in copy_process() and bacct_add_tsk()
> and the system was suspended in between. Right?
Oh right. Good point. The suspend time may not be constant between the
calculations.
> But perhaps this is fine and even more correct?
Hrmm.. Looking closer at what the calculations are used for, I worry
changing to counting suspend time in elapsed run time would be a
userland visible behaivor change that might be problematic.
That said, elapsed run time as it exists now is not really a useful
measurement, since you get different results depending on the situation:
ie, a VM that doesn't get much cpu time vs a system that suspends
frequently. In one case, you seem to have been running for a long time,
but not getting much cpu runtime, where as the other you might appear to
get quite a bit of the possible execution time.
This all goes back to issues around what suspend-state really is. Where
in previously it was viewed to be user-controlled and considered closer
to the system temporarily being off - thus the intent was to make
suspend invisible/hidden to the system itself, but more recently, with
systems suspending quite frequently suspend state is more
invisible/hidden to the end user, and is closer to a deep idle state.
Back in the day folks were up in arms that someone could "cheat" their
way to large uptime values by leaving their system suspended. But, if I
could do it again, I'd probably push for CLOCK_MONOTONIC (as exported to
userland) and all of these user-visible metrics to include suspend time.
So I think it probably *makes more sense* to include suspend_time in the
elapsed runtime value being exported via bacct_add_tsk() and
do_acct_process(), but I unfortunately worry now any such change would
risk breaking userland expectations.
The *actual* risk may be quite minor, so this could be one of those:
"Let the tree fall and if no one is there to hear it, fine" interface
breaks, but I'm not sure I'm eager enough to be the one proposing it. :)
thanks
-john
next prev parent reply other threads:[~2013-06-11 18:14 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-10 18:33 [PATCH 0/3] de_thread() should update ->real_start_time Oleg Nesterov
2013-06-10 18:33 ` [PATCH 1/3] de_thread: mt-exec " Oleg Nesterov
2013-06-10 18:33 ` [PATCH 2/3] uptime_proc_show: use get_monotonic_boottime() Oleg Nesterov
2013-06-10 18:33 ` [PATCH 3/3] do_sysinfo: " Oleg Nesterov
2013-06-10 19:48 ` [PATCH 0/3] de_thread() should update ->real_start_time John Stultz
2013-06-11 17:13 ` Oleg Nesterov
2013-06-11 18:14 ` John Stultz [this message]
2013-06-11 20:06 ` Oleg Nesterov
2013-06-10 20:18 ` John Stultz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=51B7690C.8090805@linaro.org \
--to=john.stultz@linaro.org \
--cc=akpm@linux-foundation.org \
--cc=ebiederm@xmission.com \
--cc=linux-kernel@vger.kernel.org \
--cc=oleg@redhat.com \
--cc=tjanouse@redhat.com \
--cc=tsmetana@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox