Date: Fri, 19 Nov 2010 12:35:17 GMT From: KOIE Hidetaka <koie@suri.co.jp> To: freebsd-gnats-submit@FreeBSD.org Subject: amd64/152405: wrong user time is reported when CPU frequency throttled. Message-ID: <201011191235.oAJCZHVW062120@www.freebsd.org> Resent-Message-ID: <201011191240.oAJCe644085316@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 152405 >Category: amd64 >Synopsis: wrong user time is reported when CPU frequency throttled. >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-amd64 >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Nov 19 12:40:06 UTC 2010 >Closed-Date: >Last-Modified: >Originator: KOIE Hidetaka >Release: 9.0-CURRENT >Organization: surigiken >Environment: FreeBSD guriandgura 9.0-CURRENT FreeBSD 9.0-CURRENT #0: Wed Nov 17 15:11:51 JST 2010 root@guriandgura:/usr/obj/museum/freebsd/sys/GURIANDGURA amd64 SVN revision is 215415. >Description: when CPU frequency is throttled down, time command reports too low CPU usage like this: 4.849u 0.000s 0:09.13 53.0% 9+5026k 0+0io 0pf+0w 100% is expected, because the process is extreamly CPU-intensive. wall clock is precise. systat -vm 1 shows collect user time (25% in 4-core system). >How-To-Repeat: koie@guriandgura% cat loop.c int main() { unsigned long x = 0xffffffffUL; printf("%lx\n", x); while (--x > 0) ; return 0; } koie@guriandgura% gcc46 -O loop.c -o loop loop.c: In function 'main': loop.c:5:5: warning: incompatible implicit declaration of built-in function 'printf' [enabled by default] >Fix: I don't know. >Release-Note: >Audit-Trail: >Unformatted: >>>sysctl dev.cpu.0.freq=1800 koie@guriandgura% date ; time ./loop ; date Fri Nov 19 16:58:27 JST 2010 ffffffff 4.828u 0.000s 0:04.96 97.1% 5+2771k 0+0io 0pf+0w Fri Nov 19 16:58:32 JST 2010 >>>sysctl dev.cpu.0.freq=1000 koie@guriandgura% date ; time ./loop ; date Fri Nov 19 16:58:54 JST 2010 ffffffff 4.838u 0.008s 0:09.08 53.1% 9+5037k 0+0io 0pf+0w NOTE: 53.1% / 97.1% = 0.546. 1000 / 1800 = 0.555. NOTE: koie@guriandgura% sysctl kern.sched kern.eventtimer kern.sched.cpusetsize: 8 kern.sched.preemption: 1 kern.sched.topology_spec: <groups> <group level="1" cache-level="0"> <cpu count="4" mask="0xf">0, 1, 2, 3</cpu> <children> <group level="2" cache-level="2"> <cpu count="2" mask="0x3">0, 1</cpu> </group> <group level="2" cache-level="2"> <cpu count="2" mask="0xc">2, 3</cpu> </group> </children> </group> </groups> kern.sched.steal_thresh: 2 kern.sched.steal_idle: 1 kern.sched.steal_htt: 1 kern.sched.balance_interval: 127 kern.sched.balance: 1 kern.sched.affinity: 1 kern.sched.idlespinthresh: 16 kern.sched.idlespins: 10000 kern.sched.static_boost: 160 kern.sched.preempt_thresh: 64 kern.sched.interact: 30 kern.sched.slice: 12 kern.sched.name: ULE kern.eventtimer.choice: LAPIC(400) i8254(100) RTC(0) kern.eventtimer.et.LAPIC.flags: 15 kern.eventtimer.et.LAPIC.frequency: 100006412 kern.eventtimer.et.LAPIC.quality: 400 kern.eventtimer.et.i8254.flags: 1 kern.eventtimer.et.i8254.frequency: 1193182 kern.eventtimer.et.i8254.quality: 100 kern.eventtimer.et.RTC.flags: 17 kern.eventtimer.et.RTC.frequency: 32768 kern.eventtimer.et.RTC.quality: 0 kern.eventtimer.periodic: 0 kern.eventtimer.timer: LAPIC kern.eventtimer.idletick: 0 kern.eventtimer.singlemul: 2 koie@guriandgura%
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201011191235.oAJCZHVW062120>