Walking the code I see that stack collection is done via the mbean interface which relies on safe-points to collect the stack. It would be nice if btrace would have support to collect this using AsyncGetCallTrace seeing as it gives more accurate stacks than mbean which relies off safe-points.