This is the mail archive of the
mailing list for the Cygwin project.
Re: uptime not reporting CPU usage on Windows 7 (Possibly only when running in VMWare)
- From: Andrew DeFaria <Andrew at DeFaria dot com>
- To: cygwin at cygwin dot com
- Date: Sat, 01 Jan 2011 11:51:32 -0500
- Subject: Re: uptime not reporting CPU usage on Windows 7 (Possibly only when running in VMWare)
- References: <email@example.com> <4D1CA8C0.firstname.lastname@example.org> <email@example.com> <AANLkTi=+Ps6YkQcvRMOcOCFpJEo_ZQHvMb1A2qS=M90e@mail.gmail.com> <firstname.lastname@example.org> <AANLkTimQzaxEOqyUVr6REL_xFsqYYYZ_HbRAhe-DtzsR@mail.gmail.com> <email@example.com> <AANLkTimg7zB__vPeJnQJUWf8vRb_O932xTrmf6oDyvy9@mail.gmail.com> <firstname.lastname@example.org> <AANLkTimtrk5boR8q2iPnFu=_viuJK_nggN=4HauZ4rnw@mail.gmail.com> <email@example.com> <AANLkTimJAiDp34-Hvzrd2CSdD3RQBzGaw5q6QG1nezm7@mail.gmail.com>
On 01/01/2011 09:08 AM, Andy Koppe wrote:
On 31 December 2010 18:22, Andrew DeFaria wrote:
While I did eventually "get it" it does not follow that I was happy with
it or that I didn't think it could be done better.
I do not imply the devs are ignorant - just busy perhaps.
Good. If you'd also contemplated the possibility that the current
state was deliberately decided on as the least bad solution,
You mean like your responses? ;-)
have written your complaint in more temperate language.
And it also should not be such a surprise that if you're not sure of the
intent you could first assume it isn't malicious and if you think it is
then ask for clarification instead of running with your assumptions of
mal intent as if you know the intent more than the original speaker!
IMHO *that* would fall under the confines of temperance!
Any other negative things are things you're making up in
your own mind.
It shouldn't be such a surprise that words can be read differently
than they were intended if they're not chosen carefully.
Finally! I agreed to disagree about 2 posts ago... Glad to see you've
made it here...
Well, if you take the 0% at face value even though you know the
machine is doing something, you're being rather silly.
There is absolutely no reason to assume that 0% doesn't mean 0%. Yeah sure
you can do some measurements and the like and pretty quickly come to the
realization that 0% doesn't really mean 0%?
If you can't accept that 0% is easier to recognise as fake than
current load, we'll just have to agree to disagree.
I didn't suggest this.
But really, why are your fighting me on this?
Yeah, I'm wondering that myself.
Why not simply make it better or at least make it something
that nobody could mistake for simply a machine is not busy?
Because it's not that simple. Removing /proc/loadavg would be nice,
but would break any stuff that expects it to be there.
Since 0's "in range" it's not really a leap to assume that apps would
view it as "this machine's not busy at all". I mean as a human I "get
it" when I see 0 consistently when I *know*, by looking at other
measures such as TaskMgr/Process Explorer, that the machine is indeed
busy. I can, as a human, make that judgment call that 0's in this case
must mean that Cygwin's uptime isn't reporting load average correctly
possibly due to some challenges on Windows. But to a script or other app
this would probably not be detected and instead the script or app will
simply assume that 0 means not busy. IMHO it would be far better to
report -1 and have the script or app fail to call attention to the fact
that 0 does not mean not busy in the Cygwin/Windows case.
out-of-range values would also make some sense, but would break stuff
that depends on the values being in range.
Actually I came here looking for a solution, which Cyrille Lefevre has
already provided me. I wouldn't mind contributing however if this is the
level of professional discourse I should expect I think I'll just use
what I have and move onward.
If you want to contribute something more than opinions to this thread,
you could go and trawl the mail archives for why the 0/0/0 solution
was chosen. According to the changelog, it was added in 2002. Perhaps
things have changed since then.
Great, well then couldn't uptime (and top, etc.) use that?
Also, load information is in
fact already available from /proc/stat. Here's how to interpret it:
http://www.linuxhowtos.org/System/procstat.htm. That's what 'top' uses
As I'm sure you've read in the description, the numbers in the file
are aggregates since system startup. (On Cygwin, they're in
A percentage calculated directly from that obviously isn't what you
asked for, and it would become near-constant pretty quickly, so it
would be no use for seeing how your system is currently doing.
'top' obtains the current load by calculating the differences between
successive /proc/stat readings. That's why it pauses for a second
before starting to display data. Pausing like that is not an option
for the /proc/loadavg driver, because programs expect reads from that
file to return immediately.
Here's an idea though that might provide a sufficiently useful
/proc/loadavg without having a background process polling the
performance counters. Read the counters whenever /proc/loadavg or
/proc/stat is read, and keep the readings for the last fifteen minutes
in a buffer, while discarding readings that are needlessly close
together. Use those readings to calculate the 1min/5min/15min
Obviously the averages will be rubbish if /proc/loadavg hasn't been
read for a while, but the more often it's read, the better it gets. In
particular, if you just left 'top' running, you'd get increasingly
(Disclaimer: I'm not going to implement that.)
Andrew DeFaria <http://defaria.com>
Suicide is the most sincere form of self-criticism.
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple