Am 2026-07-14 00:28, schrieb Ali Mashtizadeh:
Hello Alexander,I believe this is related to a bug I'm looking into, otherwise you may be using a counter that's not really a counter. We probably need to remove that assert for some of the memory counters.With process mode counters we eventually don't re-enable the pmc on a context switch and you will eventually just see zeros for the incremental counts. That's probably what's happening here is that when it queries the PMC it goes from some positive number to zero in the next sample. Also explains why you don't see this problem with sleep because it takes a few context switches for it to show up.Not sure when this bug was introduced but it seems to be fairly old and I wasn't readily hitting it in some cases.Do you mind sharing the pmcstat command you tested with?
cpuset -l 1 pmcstat -p inst_retired.any_p -p cpu_clk_unhalted.thread_p -p br_misp_retired.all_branches \ /tmp/lame-off/lame/frontend/lame --quiet -b 320 /tmp/corpus.wav /tmp/o.mp3
CPU Intel Xeon X5675 (Westmere-EP) from inside a jail Bye, Alexander.
Best, AliOn Sun, Jul 12, 2026 at 9:19 AM Alexander Leidinger <[email protected]> wrote:Hi, I wanted to do some pmc based sampling in a jail and this crashed the kernel. Not directly, a "sleep 1" test was ok. The real application resulted in: ---snip---__curthread () at /space/system/usr_src/sys/amd64/include/pcpu_aux.h:5757 __asm("movq %%gs:%c1,%0" : "=r" (td) (kgdb) #0 __curthread () at /space/system/usr_src/sys/amd64/include/pcpu_aux.h:57 td = <optimized out> #1 doadump (textdump=textdump@entry=1) at /space/system/usr_src/sys/kern/kern_shutdown.c:399 error = 0 coredump = <optimized out> #2 0xffffffff8056183c in kern_reboot (howto=260) at /space/system/usr_src/sys/kern/kern_shutdown.c:519 once = 0 __pc = 0x0 #3 0xffffffff80561d5d in vpanic (fmt=<optimized out>, ap=ap@entry=0xfffffe0797916c90) at /space/system/usr_src/sys/kern/kern_shutdown.c:974 buf = "[pmc,1762] negative increment cpu=1 ri=17 newvalue=45d4906d saved=fffff616cee9 incr=ffff00004fbdc184", '\000' <repeats 155 times> __pc = 0x0 __pc = 0x0 __pc = 0x0 other_cpus = {__bits = {16777213, 0 <repeats 15 times>}} td = 0xfffff80a4c988000 bootopt = <unavailable> newpanic = <optimized out> #4 0xffffffff80561ba3 in panic (fmt=<unavailable>) at /space/system/usr_src/sys/kern/kern_shutdown.c:887 ap = {{gp_offset = 48, fp_offset = 48, overflow_arg_area = 0xfffffe0797916cc8, reg_save_area = 0xfffffe0797916c60}} #5 0xffffffff8455ae47 in pmc_hook_handler (td=0xfffff80a4c988000, function=<optimized out>, arg=<optimized out>) at /space/system/usr_src/sys/dev/hwpmc/hwpmc_mod.c:1759 __pc = 0x0 __pc = 0x0 __pc = 0x0 __pc = 0x0 cpu = <optimized out> #6 0xffffffff80596d8d in sched_ule_sswitch (td=0xfffff80a4c988000, flags=<optimized out>) at /space/system/usr_src/sys/kern/sched_ule.c:2389 __pc = 0x0 __pc = 0x0 __pc = 0x0 cpuid = <optimized out> tdq = <optimized out> ts = 0xfffff80a4c988720 preempted = <optimized out> mtx = 0xfffffe0065b291c0 srqflag = <optimized out> newtd = 0xfffff80df74e4780 pickcpu = <optimized out> #7 0xffffffff8056e8c8 in mi_switch (flags=flags@entry=517) at /space/system/usr_src/sys/kern/kern_synch.c:526 __pc = 0x0 __pc = 0x0 __pc = 0x0 __pc = 0x0 __pc = 0x0 td = 0xfffff80a4c988000 new_switchtime = <optimized out> runtime = <optimized out> ---snip--- Core available. Bye, Alexander. --http://www.Leidinger.net [email protected]: PGP 0x8F31830F9F2772BF http://www.FreeBSD.org [email protected] : PGP 0x8F31830F9F2772BF
-- http://www.Leidinger.net [email protected]: PGP 0x8F31830F9F2772BF http://www.FreeBSD.org [email protected] : PGP 0x8F31830F9F2772BF
signature.asc
Description: OpenPGP digital signature
