From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: Oleg Nesterov <oleg@redhat.com>
Cc: Ingo Molnar <mingo@elte.hu>,
Ananth N Mavinakayanahalli <ananth@in.ibm.com>,
Anton Arapov <anton@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
Peter Zijlstra <peterz@infradead.org>,
Roland McGrath <roland@hack.frob.com>,
Srikar Dronamraju <srikar@linux.vnet.ibm.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/2] ptrace: fix set_task_blockstep()->update_debugctlmsr() logic
Date: Tue, 07 Aug 2012 17:29:38 +0200 [thread overview]
Message-ID: <50213462.5040304@linutronix.de> (raw)
In-Reply-To: <20120807151531.GC13476@redhat.com>
On 08/07/2012 05:15 PM, Oleg Nesterov wrote:
> It turns out, original code is even more buggy than I thought.
>
> Ironically, "task != current" case is more difficult and so far
> I do not see how we can handle this case correctly. I'll return
> to this a bit later, currently I am working on other patches.
maybe you could remove the autodectect mode and add helper for uprobe
which disables it.
>> For uprobes we never set the bit, we only need it cleared.
>
> Yes, at least at first step, and probably we will never need more.
>
>> We get here
>> via int 3 and do_debug() already clears TIF_BLOCKSTEP
>
> No, we get here via do_int3(), TIF_BLOCKSTEP is not cleared,
Yes, Sorry. my fault.
>> because the
>> CPU clears the bit in CPU.
>
> I am not sure. The manual says:
>
> If the BTF flag is set when the processor generates a debug
> exception, the processor clears the BTF flag along with the
> TF flag.
>
> but I am not sure "debug exception" also means "breakpoint exception".
>
>
>
> do_debug() does clear TIF_BLOCKSTEP, and "The processor cleared BTF"
> is true in this case. But it is called after single-step.
I was wrong here in regard to do_debug() since do_int3() is correct.
Anyway, I checked it on real hardware and I saw the CPU in do_int3()
with BTF set after executing int3 with TF flag set and the BTF bit.
>
> Oleg.
Sebastian
next prev parent reply other threads:[~2012-08-07 15:29 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-03 16:29 [PATCH 0/2] ptrace: DEBUGCTLMSR_BTF fixes Oleg Nesterov
2012-08-03 16:29 ` [PATCH 1/2] ptrace: introduce set_task_blockstep() helper Oleg Nesterov
2012-08-03 16:29 ` [PATCH 2/2] ptrace: fix set_task_blockstep()->update_debugctlmsr() logic Oleg Nesterov
2012-08-03 16:43 ` Sebastian Andrzej Siewior
2012-08-03 17:38 ` Oleg Nesterov
2012-08-03 18:28 ` Sebastian Andrzej Siewior
2012-08-07 15:13 ` Oleg Nesterov
2012-08-07 9:41 ` Sebastian Andrzej Siewior
2012-08-07 10:52 ` Sebastian Andrzej Siewior
2012-08-07 15:15 ` Oleg Nesterov
2012-08-07 15:29 ` Sebastian Andrzej Siewior [this message]
2012-08-07 15:31 ` Oleg Nesterov
2012-08-07 15:12 ` Oleg Nesterov
2012-08-06 16:14 ` [PATCH 0/2] ptrace: DEBUGCTLMSR_BTF fixes Sebastian Andrzej Siewior
2012-08-07 15:15 ` Oleg Nesterov
2012-08-07 15:38 ` Sebastian Andrzej Siewior
2012-08-07 15:46 ` Oleg Nesterov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=50213462.5040304@linutronix.de \
--to=bigeasy@linutronix.de \
--cc=ananth@in.ibm.com \
--cc=anton@redhat.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=oleg@redhat.com \
--cc=peterz@infradead.org \
--cc=roland@hack.frob.com \
--cc=srikar@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.