linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Thomas Gleixner <tglx@linutronix.de>
To: Andy Lutomirski <luto@amacapital.net>,
	Peter Zijlstra <peterz@infradead.org>
Cc: Andy Lutomirski <luto@kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	x86@kernel.org, Steven Rostedt <rostedt@goodmis.org>,
	Brian Gerst <brgerst@gmail.com>, Juergen Gross <JGross@suse.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Arnd Bergmann <arnd@arndb.de>,
	"Paul E. McKenney" <paulmck@kernel.org>
Subject: Re: [patch 4/8] x86/entry: Move irq tracing on syscall entry to C-code
Date: Sat, 29 Feb 2020 15:44:10 +0100	[thread overview]
Message-ID: <87lfolfo79.fsf@nanos.tec.linutronix.de> (raw)
In-Reply-To: <87sgixb00q.fsf@nanos.tec.linutronix.de>

Thomas Gleixner <tglx@linutronix.de> writes:
> Andy Lutomirski <luto@amacapital.net> writes:
>>> On Feb 26, 2020, at 12:17 AM, Peter Zijlstra <peterz@infradead.org> wrote:
>>> On Tue, Feb 25, 2020 at 09:43:46PM -0800, Andy Lutomirski wrote:
>>>> Your earlier patches suggest quite strongly that tracing isn't safe
>>>> until enter_from_user_mode().  But trace_hardirqs_off() calls
>>>> trace_irq_disable_rcuidle(), which looks [0] like a tracepoint.
>>>> 
>>>> Did you perhaps mean to do this *after* enter_from_user_mode()?
>>> 
>>> aside from the fact that enter_from_user_mode() itself also has a
>>> tracepoint, the crucial detail is that we must not trace/kprobe the
>>> function calling this.
>>> 
>>> Specifically for #PF, because we need read_cr2() before this. See later
>>> patches.
>>
>> Indeed. I’m fine with this patch, but I still don’t understand what
>> the changelog is about.
>
> Yeah, the changelog is not really helpful. Let me fix that.
>
>> And I’m still rather baffled by most of the notrace annotations in the
>> series.
>
> As discussed on IRC, this might be too broad, but then I rather have the
> actual C-entry points neither traceable nor probable in general and
> relax this by calling functions which can be traced and probed.
>
> My rationale for this decision was that enter_from_user_mode() is marked
> notrace/noprobe as well, so I kept the protection scope the same as we
> had in the ASM maze which is marked noprobe already.

I have second thoughts vs. tracing in this context.

While the tracer itself seems to handle this correctly, what about
things like BPF programs which can be attached to tracepoints and
function trace entries?

Is that really safe _before_ context tracking has updated RCU state?

Thanks,

        tglx



  reply	other threads:[~2020-02-29 14:44 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-25 22:08 [patch 0/8] x86/entry: Consolidation - Part II Thomas Gleixner
2020-02-25 22:08 ` [patch 1/8] x86/entry/64: Trace irqflags unconditionally on when returing to user space Thomas Gleixner
2020-02-27 19:49   ` Borislav Petkov
2020-02-27 22:45   ` Frederic Weisbecker
2020-02-28  8:58   ` Alexandre Chartre
2020-02-25 22:08 ` [patch 2/8] x86/entry/common: Consolidate syscall entry code Thomas Gleixner
2020-02-27 19:57   ` Borislav Petkov
2020-02-27 22:52   ` Frederic Weisbecker
2020-02-28  8:59   ` Alexandre Chartre
2020-02-25 22:08 ` [patch 3/8] x86/entry/common: Mark syscall entry points notrace/nokprobe Thomas Gleixner
2020-02-27 23:15   ` Frederic Weisbecker
2020-02-28  8:59   ` Alexandre Chartre
2020-02-25 22:08 ` [patch 4/8] x86/entry: Move irq tracing on syscall entry to C-code Thomas Gleixner
2020-02-26  5:43   ` Andy Lutomirski
2020-02-26  8:17     ` Peter Zijlstra
2020-02-26 11:20       ` Andy Lutomirski
2020-02-26 19:51         ` Thomas Gleixner
2020-02-29 14:44           ` Thomas Gleixner [this message]
2020-02-29 19:25             ` Andy Lutomirski
2020-02-29 23:58               ` Steven Rostedt
2020-03-01 10:16                 ` Thomas Gleixner
2020-03-01 14:37                   ` Andy Lutomirski
2020-03-01 15:21                     ` Thomas Gleixner
2020-03-01 16:00                       ` Andy Lutomirski
2020-03-01 18:12                         ` Thomas Gleixner
2020-03-01 18:26                           ` Paul E. McKenney
2020-03-01 18:54                             ` Andy Lutomirski
2020-03-01 19:30                               ` Paul E. McKenney
2020-03-01 19:39                                 ` Andy Lutomirski
2020-03-01 20:18                                   ` Paul E. McKenney
2020-03-02  0:35                                   ` Steven Rostedt
2020-03-02  6:47                                     ` Masami Hiramatsu
2020-03-02  1:10                               ` Joel Fernandes
2020-03-02  2:18                                 ` Andy Lutomirski
2020-03-02  2:36                                   ` Joel Fernandes
2020-03-02  5:40                                     ` Andy Lutomirski
2020-03-02  8:10                               ` Thomas Gleixner
2020-03-01 18:23                         ` Steven Rostedt
2020-03-01 18:20                       ` Steven Rostedt
2020-02-27 23:11   ` Frederic Weisbecker
2020-02-28  9:00   ` Alexandre Chartre
2020-02-25 22:08 ` [patch 5/8] x86/entry/common: Provide trace/kprobe safe exit to user space functions Thomas Gleixner
2020-02-26  5:45   ` Andy Lutomirski
2020-02-26  8:15     ` Peter Zijlstra
2020-02-27 15:43   ` Alexandre Chartre
2020-02-27 15:53     ` Thomas Gleixner
2020-02-25 22:08 ` [patch 6/8] x86/entry: Move irq tracing to syscall_slow_exit_work Thomas Gleixner
2020-02-26  5:47   ` Andy Lutomirski
2020-02-27 16:12   ` Alexandre Chartre
2020-02-25 22:08 ` [patch 7/8] x86/entry: Move irq tracing to prepare_exit_to_user_mode() Thomas Gleixner
2020-02-26  5:50   ` Andy Lutomirski
2020-02-26 19:53     ` Thomas Gleixner
2020-02-26 20:07       ` Andy Lutomirski
2020-02-25 22:08 ` [patch 8/8] x86/entry: Move irqflags tracing to do_int80_syscall_32() Thomas Gleixner
2020-02-27 16:46   ` Alexandre Chartre
2020-02-28 13:49     ` Thomas Gleixner

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=87lfolfo79.fsf@nanos.tec.linutronix.de \
    --to=tglx@linutronix.de \
    --cc=JGross@suse.com \
    --cc=arnd@arndb.de \
    --cc=brgerst@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=luto@kernel.org \
    --cc=paulmck@kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=x86@kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).