Steps to reproduce:
sudo dtrace -n 'fbt::ip_output:entry /execname == "iperf3" && arg5 != NULL/ { @flowid = quantize(((struct inpcb *)arg5)->inp_flowid); }' -c 'cpuset -l 1 iperf3 -c 10.0.0.2 -u -l 1460 -n 4G -b 0'
dtrace: error on enabled probe ID 1 (ID 45872: fbt:kernel:ip_output:entry): CHERI exception in action #5 at DIF offset 36
This occurs on a slightly older CheriBSD then current dev, which I'm using for benchmarking, should be in dev as well though.
As discussed offline, this can be worked around by using args[5] instead.
fbt::ip_output:entry
/execname == "iperf3" && args[5] != NULL/
{
@flowid = quantize(((struct inpcb *)args[5])->inp_flowid);
}
I believe there is a related bug when storing a pointer in a self->foo variable as in:
fbt::netisr_select_cpuid:entry { self->cpuidp = (u_int *)args[4]; }
fbt::netisr_select_cpuid:return /self->cpuidp/ { trace( *(self->cpuidp) ); }
Steps to reproduce:
This occurs on a slightly older CheriBSD then current dev, which I'm using for benchmarking, should be in dev as well though.
As discussed offline, this can be worked around by using
args[5]instead.I believe there is a related bug when storing a pointer in a
self->foovariable as in: