kern/179827: [hwpmc] process-mode counters aren't correctly read on multi-core machines
hiren panchasara
hiren.panchasara at gmail.com
Sat Jun 22 19:21:27 UTC 2013
On Sat, Jun 22, 2013 at 10:10 AM, Adrian Chadd <adrian at freebsd.org> wrote:
> The following reply was made to PR kern/179827; it has been noted by GNATS.
>
> From: Adrian Chadd <adrian at freebsd.org>
> To: hiren panchasara <hiren at freebsd.org>
> Cc: bug-followup at freebsd.org
> Subject: Re: kern/179827: [hwpmc] process-mode counters aren't correctly
> read on multi-core machines
> Date: Sat, 22 Jun 2013 10:03:46 -0700
>
> You can't do sleep() ; that yields the CPU.
>
> Replace it with a busy loop that constantly does some math.
Okay, so some random thing off of internet:
int main()
{
float a , b , sq , sinx , cosx , tanx;
int x = 4;
int y=30;
for (int i=0; i<INT_MAX; i++) {
sq = sqrt(x);
y = 30*(3.142/180);
sinx=sin(y);
cosx=cos(y);
tanx=tan(y);
}
return 0;
}
and this is how it looks:
-bash-4.2$ pmcstat -p instructions -w 1 ./sin
CSW:SWO:1: cpu=3 proc=0xfffffe0047d58000 (16888, pmcstat) pp=0
PMC:OPS:1: start pmc=0xfffffe02e8fd6300 mode=3 ri=21
CSW:SWI:1: cpu=18 proc=0xfffffe0047f504b8 (16889, pmcstat) pp=0xfffffe005dbd8a00
CSW:SWO:1: cpu=3 proc=0xfffffe0047d58000 (16888, pmcstat) pp=0
CSW:SWI:1: cpu=18 ri=21 new=0
CSW:SWO:1: cpu=18 proc=0xfffffe0047f504b8 (16889, sin) pp=0xfffffe005dbd8a00
CSW:SWO:1: cpu=18 ri=21 tmp=126573151
CSW:SWI:1: cpu=22 proc=0xfffffe0047f504b8 (16889, sin) pp=0xfffffe005dbd8a00
CSW:SWI:1: cpu=22 ri=21 new=126573151
CSW:SWO:1: cpu=22 proc=0xfffffe0047f504b8 (16889, sin) pp=0xfffffe005dbd8a00
CSW:SWO:1: cpu=22 ri=21 tmp=54706956
CSW:SWI:1: cpu=23 proc=0xfffffe0047f504b8 (16889, sin) pp=0xfffffe005dbd8a00
CSW:SWI:1: cpu=23 ri=21 new=181280107
CSW:SWO:1: cpu=23 proc=0xfffffe0047f504b8 (16889, sin) pp=0xfffffe005dbd8a00
CSW:SWO:1: cpu=23 ri=21 tmp=43038450
CS
W:# p/instructionSWIs
:1: cpu=20 proc=0xfffffe0047f504b8 (16889, sin) pp=0xfffffe005dbd8a00
PMC:OPS:1: rw id=-16579051 flags=0x20
CSW:SWI:1: cpu=20 ri=21 new=224318557
PMC:OPS:2: rw id=21 -> old d5ed45d
22431855CSW7 :SWO:1: cpu=9 proc=0xfffffe0047d58000 (16888, pmcstat) pp=0
PMC# p/instruction:Os
PS:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=9 proc=0xfffffe0047d58000 (16888, pmcstat) pp=0
PMC# p/instruction:OPs
S:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=9 proc=0xfffffe0047d58000 (16888, pmcstat) pp=0
PMC# p/instruction:Os
PS:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=9 proc=0xfffffe0047d58000 (16888, pmcstat) pp=0
PMC# p/instruction:OPs
S:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=23 proc=0xfffffe0047d58000 (16888,
pmcstat) pp=0
PMC# p/instruction:Os
PS:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=23 proc=0xfffffe0047d58000 (16888,
pmcstat) pp=0
PMC# p/instruction:Os
PS:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=23 proc=0xfffffe0047d58000 (16888,
pmcstat) pp=0
PMC# p/instruction:OPs
S:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=23 proc=0xfffffe0047d58000 (16888,
pmcstat) pp=0
PMC# p/instruction:Os
PS:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=23 proc=0xfffffe0047d58000 (16888,
pmcstat) pp=0
PMC# p/instruction:OPs
S:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=23 proc=0xfffffe0047d58000 (16888,
pmcstat) pp=0
PMC# p/instruction:OPs
S:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=4 proc=0xfffffe0047d58000 (16888, pmcstat) pp=0
PMC# p/instruction:Os
PS:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=4 proc=0xfffffe0047d58000 (16888, pmcstat) pp=0
PMC# p/instruction:Os
PS:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=4 proc=0xfffffe0047d58000 (16888, pmcstat) pp=0
PMC# p/instruction:Os
PS:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=4 proc=0xfffffe0047d58000 (16888, pmcstat) pp=0
PMC# p/instruction:OPs
S:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW:SWO:1: cpu=4 proc=0xfffffe0047d58000 (16888, pmcstat) pp=0
0
PMC# p/instruction:Os
PS:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=4 proc=0xfffffe0047d58000 (16888, pmcstat) pp=0
PMC# p/instruction:OPs
S:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=4 proc=0xfffffe0047d58000 (16888, pmcstat) pp=0
PMC# p/instruction:Os
PS:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW:SWO:1: cpu=4 proc=0xfffffe0047d58000 (16888, pmcstat) pp=0
0
P# p/instructionMC:s
OPS:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=18 proc=0xfffffe0047d58000 (16888,
pmcstat) pp=0
PMC# p/instruction:OPs
S:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=18 proc=0xfffffe0047d58000 (16888,
pmcstat) pp=0
PMC# p/instruction:Os
PS:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=18 proc=0xfffffe0047d58000 (16888,
pmcstat) pp=0
PMC# p/instruction:Os
PS:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=18 proc=0xfffffe0047d58000 (16888,
pmcstat) pp=0
PMC# p/instruction:Os
PS:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW:SWO:1: cpu=18 proc=0xfffffe0047d58000 (16888, pmcstat) pp=0
0
PMC# p/instruction:Os
PS:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW:SWO:1: cpu=18 proc=0xfffffe0047d58000 (16888, pmcstat) pp=0
0
PMC# p/instruction:OPs
S:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=18 proc=0xfffffe0047d58000 (16888,
pmcstat) pp=0
PMC# p/instruction:Os
PS:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=18 proc=0xfffffe0047d58000 (16888,
pmcstat) pp=0
PMC# p/instruction:OPs
S:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=18 proc=0xfffffe0047d58000 (16888,
pmcstat) pp=0
PMC# p/instruction:OPs
S:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=18 proc=0xfffffe0047d58000 (16888,
pmcstat) pp=0
PMC# p/instruction:Os
PS:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=18 proc=0xfffffe0047d58000 (16888,
pmcstat) pp=0
PMC# p/instruction:OPs
S:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=18 proc=0xfffffe0047d58000 (16888,
pmcstat) pp=0
PMC# p/instruction:Os
PS:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=18 proc=0xfffffe0047d58000 (16888,
pmcstat) pp=0
PMC# p/instruction:Os
PS:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=18 proc=0xfffffe0047d58000 (16888,
pmcstat) pp=0
PMC# p/instruction:Os
PS:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=18 proc=0xfffffe0047d58000 (16888,
pmcstat) pp=0
PMC# p/instruction:Os
PS:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=18 proc=0xfffffe0047d58000 (16888,
pmcstat) pp=0
PMC# p/instruction:Os
PS:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=18 proc=0xfffffe0047d58000 (16888,
pmcstat) pp=0
PMC# p/instruction:OPs
S:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=18 proc=0xfffffe0047d58000 (16888,
pmcstat) pp=0
PMC# p/instruction:Os
PS:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=18 proc=0xfffffe0047d58000 (16888,
pmcstat) pp=0
PMC# p/instruction:OPs
S:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=18 proc=0xfffffe0047d58000 (16888,
pmcstat) pp=0
PMC# p/instruction:Os
PS:1: rw id=-16579051 flags=0x20
PMC:OPS:2: rw id=21 -> old d5ed45d
CSW0 :SWO:1: cpu=18 proc=0xfffffe0047d58000 (16888,
pmcstat) pp=0
PMC# p/instruction:OPs
S:1: rw id=-16579051 flags=0x20
CSW:SWO:1: cpu=20 proc=0xfffffe0047f504b8 (16889, sin) pp=0
PMC:OPS:2: rw id=21 -> old 2f0d3df576
20186130869PM7
C:OPS:1: stop pmc=0xfffffe02e8fd6300 mode=3 ri=21
CSW:SWO:1: cpu=7 proc=0xfffffe0047d58000 (16888, pmcstat) pp=0
More information about the freebsd-bugs
mailing list