linux-man.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: bugzilla-daemon-590EEB7GvNiWaY/ihj7yzEB+6BGkLq7r@public.gmane.org
To: linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: [Bug 67291] New: Confusing/wrong description of CLOCK_*_CPUTIME_ID
Date: Wed, 18 Dec 2013 15:53:35 +0000	[thread overview]
Message-ID: <bug-67291-11311@https.bugzilla.kernel.org/> (raw)

https://bugzilla.kernel.org/show_bug.cgi?id=67291

            Bug ID: 67291
           Summary: Confusing/wrong description of CLOCK_*_CPUTIME_ID
           Product: Documentation
           Version: unspecified
          Hardware: All
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P1
         Component: man-pages
          Assignee: documentation_man-pages-ztI5WcYan/vQLgFONoPN62D2FQJk+8+b@public.gmane.org
          Reporter: nyh-TS7m/3hpY0sOpacJJkBjfT4kX+cae0hd@public.gmane.org
        Regression: No

clock_gettime(2) mention CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID,
but fail to mention the most important thing: That they measure "CPU time" as
defined by Posix (see
http://pubs.opengroup.org/onlinepubs/009696899/basedefs/xbd_chap03.html#tag_03
), i.e., they measure not wall-clock time but rather the amount of time the
thread or process actually ran on the CPU.

Worse, clock_gettime(2) contains several confusing, or perhaps even wrong,
statements about these clocks:

1. At one point it says "CLOCK_PROCESS_CPUTIME_ID:            High-resolution
per-process timer from the CPU.". The phrase "from the CPU" seems to imply some
CPU feature (e.g., TSC) is used, rather than to correctly suggest that CPU time
(i.e., execution time) is being measured.

2. Another paragraph says "The CLOCK_PROCESS_CPUTIME_ID and
CLOCK_THREAD_CPUTIME_ID clocks are realized on many platforms using timers from
the  CPUs  (TSC on i386, AR.ITC on Itanium).  These registers may differ
between CPUs and as a consequence these clocks may return bogus  results if a
process is migrated to another CPU.". Is this really correct? Why would Linux
have any trouble accounting the processes's runtime (using the current cpu's
TSC) before migrating?

-- 
You are receiving this mail because:
You are watching the assignee of the bug.
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

             reply	other threads:[~2013-12-18 15:53 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-18 15:53 bugzilla-daemon-590EEB7GvNiWaY/ihj7yzEB+6BGkLq7r [this message]
     [not found] ` <bug-67291-11311-3bo0kxnWaOQUvHkbgXJLS5sdmw4N0Rt+2LY78lusg7I@public.gmane.org/>
2013-12-27 20:40   ` [Bug 67291] Confusing/wrong description of CLOCK_*_CPUTIME_ID bugzilla-daemon-590EEB7GvNiWaY/ihj7yzEB+6BGkLq7r
2013-12-27 20:49   ` bugzilla-daemon-590EEB7GvNiWaY/ihj7yzEB+6BGkLq7r

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=bug-67291-11311@https.bugzilla.kernel.org/ \
    --to=bugzilla-daemon-590eeb7gvniway/ihj7yzeb+6bgklq7r@public.gmane.org \
    --cc=linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    /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;
as well as URLs for NNTP newsgroup(s).