Re: x86: do_debug PTRACE_SINGLESTEP broken by 08d68323d1f0c34452e614263b212ca556dae47f

2009-12-21 Thread Jan Kiszka
Oleg Nesterov wrote:
 On 12/18, Roland McGrath wrote:
 Please find the trivial test-case below. It hangs, because
 PTRACE_SINGLESTEP doesn't trigger the trap.
 2.6.33-rc1 x86-64 works for me with either -m64 or -m32 version of that test.

 (not sure this matters, but I did the testing under kvm)
 Apparently it does.  You should hack some printks into do_debug() and see
 how kvm is differing from real hardware.  (Actually you can probably do
 this with a notifier added by a module, not that you are shy about
 recompiling!)

 Probably kvm's emulation of the hardware behavior wrt the DR6 bits is not
 sufficiently faithful.  Conceivably, kvm is being consistent with some
 older hardware and we have encoded assumptions that only newer hardware
 meets.  But I'd guess it's just a plain kvm bug.
 
 OK, thanks.
 
 Hmm. Now I see how wrong I was when I said this code is obviously wrong ;)
 
 I'll add the debugging printk's and report the output. Sorry for delay,
 can't do this today.

Can't reproduce, runs fine here with with 2.6.33-rc1 as both hostguest
and qemu-kvm latest git. Host uses kvm-intel.

Can you specify your setup in more details? Which host kernel did you
use, which qemu-kvm version? Are you on AMD or Intel? Any specific guest
kernel config switch that may influence this?

Jan



signature.asc
Description: OpenPGP digital signature


Re: x86: do_debug PTRACE_SINGLESTEP broken by 08d68323d1f0c34452e614263b212ca556dae47f

2009-12-21 Thread Jan Kiszka
Oleg Nesterov wrote:
 On 12/21, Jan Kiszka wrote:
 Oleg Nesterov wrote:
 Hmm. Now I see how wrong I was when I said this code is obviously wrong ;)
 
 Yes, it is easy to blame the code you don't understand.
 
 My apologies to all.
 
 I'll add the debugging printk's and report the output. Sorry for delay,
 can't do this today.
 Can't reproduce, runs fine here with with 2.6.33-rc1 as both hostguest
 and qemu-kvm latest git. Host uses kvm-intel.
 
 Everything runs fine under 2.6.32 as a _host_ kernel. Previously I did
 the testing under 2.6.26.5-45.fc9.

Makes sense: that kernel (most probably) predates any debug register
virtualization in kvm.

 
 Sorry for noise, thanks all for your help.

Never mind.

Jan



signature.asc
Description: OpenPGP digital signature