lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <4D20FEF0.5020206@mozilla.com>
Date:	Sun, 02 Jan 2011 14:40:48 -0800
From:	Taras Glek <tglek@...illa.com>
To:	linux-kernel@...r.kernel.org
Subject: Measuring startup-time from userspace

Hi,
Does Linux provide a reasonable way to measure how long a process has 
existed for? The goal is to have a function that returns the number of 
milliseconds since process-creation.

We'd like to be able to have Firefox self-diagnose startup times. 
Unfortunately, it turns out that library loading time adds a lot to 
startup before application code runs, so a in-application timer would 
underestimate startup time.

It appears that the most precise solution is to read start time from 
/proc/self/stat. Unfortunately the time is in jiffies-since-startup and 
there don't seem to be any good counters to compare against (ie 
/proc/uptime doesn't provide enough resolution). So far the only 
workable solution seems to create a new thread/process. Then one can do 
(/proc/<newpid>/stat.starttime - /proc/self/stat.starttime) * 1000 / HZ
.

The question is, there way for a process to measure time-since-startup 
without horrible hacks like spawning a new processes?


Taras

ps. Perhaps /proc/timer_list contains enough info?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ