Re: dtrace not working on bhyve VM without invariant_tsc

From: Eric van Gyzen <eric_at_vangyzen.net>
Date: Tue, 10 Dec 2019 10:06:26 -0600
> On Dec 9, 2019, at 8:27 PM, Ryan Stone <rysto32_at_gmail.com> wrote:
> 
> I have a bhyve VM guest on my laptop where dtrace just constantly
> aborts whenever I try to use it:
> 
> [rstone_at_ebpf dtrace]sudo dtrace -s fdcopy.d
> Assertion failed: (buf->dtbd_timestamp >= first_timestamp), file
> /usr/home/rstone/git/bsd-worktree/ebpf-import/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c,
> line 3026.
> Abort trap
> 
> I believe that the problem is caused by dtrace unconditionally using
> rdtsc() to implement dtrace_gethrtime(), assuming that the values will
> be stable for a given CPU.  The VM's vcpus seem to be getting migrated
> frequently.
> 
> Should dtrace instead be using the system timecounter?  That should
> stand a much better chance of being monotonically increasing.

I’ve seen TSC issues with OneFS under bhyve on certain CPUs.  Pinning the VM to CPUs 1-N (i.e. avoiding CPU 0) worked around it.  You might try that as a workaround.

Eric
Received on Tue Dec 10 2019 - 15:06:34 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:22 UTC