After resuming a ptracee with PTRACE_SINGLESTEP, in the following ptrace stop retrieving the dr6 value for the tracee gets a value that does not include DR_STEP (it is in fact always DR6_RESERVED). I bisected this to the 13cb73490f475f8e7669f9288be0bcfa85399b1f merge. I did not bisect further.
I don't see any handling to ever set DR_STEP in virtual_dr6, so I think this code is just broken. Sorry for not testing this when I was CCd on the original patch series :) - Kyle