linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Cc: Steven Rostedt <rostedt@goodmis.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Christoph Hellwig <hch@infradead.org>,
	Gregory Haskins <ghaskins@novell.com>,
	Arnaldo Carvalho de Melo <acme@ghostprotocols.net>,
	"William L. Irwin" <sparclinux@vger.kernel.org>,
	Steven Rostedt <srostedt@redhat.com>
Subject: Re: [RFC PATCH 10/11] mcount tracer show task comm and pid
Date: Wed, 9 Jan 2008 17:45:38 +0100	[thread overview]
Message-ID: <20080109164538.GJ17739@elte.hu> (raw)
In-Reply-To: <20080107044506.GA1798@Krystal>


* Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote:

> static inline int vmalloc_fault(unsigned long address)
> {
>         unsigned long pgd_paddr;
>         pmd_t *pmd_k;
>         pte_t *pte_k;
>         /*
>          * Synchronize this task's top level page-table
>          * with the 'reference' page table.
>          *
> ---->    * Do _not_ use "current" here. We might be inside
>          * an interrupt in the middle of a task switch..
>          */
>         pgd_paddr = read_cr3();
>         pmd_k = vmalloc_sync_one(__va(pgd_paddr), address);
>         if (!pmd_k)
>                 return -1;
>         pte_k = pte_offset_kernel(pmd_k, address);
>         if (!pte_present(*pte_k))
>                 return -1;
>         return 0;
> }
> 
> At context switch on x86, loading the registers is done first, and 
> only after the is the current pointer set. However, for vmalloc 
> faults, it's the value in the cr3 register that is important, which 
> may not correspond to the cr3 value saved in "current".
> 
> So, I think using the "pid" and "comm" fields of current, even in NMI 
> context, is not a problem, just as you said. For early boot, the 
> current task will be init_task, which has pid = 0 and comm = 
> "swapper", still ok.

yeah - during the context-switch the value of 'current' might be 'stale' 
in a number of ways, but it's always atomically and coherently either 
pointing to the previous task or the next task. So from a tracing POV 
it's perfectly safe to use it (and we've been doing that for ages with 
the mcount stuff).

(The notrace mcount exclusions arent really to avoid any tracing 
badness, they are mostly to make the trace less spammy and more 
readable.)

	Ingo

  reply	other threads:[~2008-01-09 16:46 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-03  7:16 [RFC PATCH 00/11] mcount tracing utility Steven Rostedt
2008-01-03  7:16 ` [RFC PATCH 01/11] Add basic support for gcc profiler instrumentation Steven Rostedt
2008-01-03  8:31   ` Sam Ravnborg
2008-01-03 14:03     ` Steven Rostedt
2008-01-03  9:21   ` Ingo Molnar
2008-01-03 13:58     ` Steven Rostedt
2008-01-03 18:16       ` Chris Wright
2008-01-03 19:15         ` Steven Rostedt
2008-01-03 19:17           ` Chris Wright
2008-01-03 19:18         ` Jeremy Fitzhardinge
2008-01-03 16:01   ` Daniel Walker
2008-01-03 17:35   ` Mathieu Desnoyers
2008-01-03 17:55     ` Steven Rostedt
2008-01-03  7:16 ` [RFC PATCH 02/11] Add fastcall to do_IRQ for i386 Steven Rostedt
2008-01-03 17:36   ` Mathieu Desnoyers
2008-01-03 17:47     ` Steven Rostedt
2008-01-07  4:50       ` H. Peter Anvin
2008-01-07 12:42         ` Steven Rostedt
2008-01-03  7:16 ` [RFC PATCH 03/11] Annotate core code that should not be traced Steven Rostedt
2008-01-03 17:42   ` Mathieu Desnoyers
2008-01-03 18:07     ` Steven Rostedt
2008-01-03 18:34       ` Mathieu Desnoyers
2008-01-03  7:16 ` [RFC PATCH 04/11] i386: notrace annotations Steven Rostedt
2008-01-03 17:52   ` Mathieu Desnoyers
2008-01-03  7:16 ` [RFC PATCH 05/11] x86_64: " Steven Rostedt
2008-01-03  7:16 ` [RFC PATCH 06/11] add notrace annotations to vsyscall Steven Rostedt
2008-01-03  7:16 ` [RFC PATCH 07/11] mcount based trace in the form of a header file library Steven Rostedt
2008-01-03  7:16 ` [RFC PATCH 08/11] tracer add debugfs interface Steven Rostedt
2008-01-03  7:16 ` [RFC PATCH 09/11] mcount tracer output file Steven Rostedt
2008-01-03  7:16 ` [RFC PATCH 10/11] mcount tracer show task comm and pid Steven Rostedt
2008-01-03 17:56   ` Mathieu Desnoyers
2008-01-06 15:37     ` Ingo Molnar
2008-01-07  4:45       ` Mathieu Desnoyers
2008-01-09 16:45         ` Ingo Molnar [this message]
2008-01-03  7:16 ` [RFC PATCH 11/11] Add a symbol only trace output Steven Rostedt
2008-01-03 17:22 ` [RFC PATCH 00/11] mcount tracing utility Mathieu Desnoyers
2008-01-03 17:42   ` Steven Rostedt
2008-01-03 18:05 ` Andi Kleen
2008-01-04  6:42 ` Frank Ch. Eigler
2008-01-08 20:35 ` Tim Bird

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=20080109164538.GJ17739@elte.hu \
    --to=mingo@elte.hu \
    --cc=a.p.zijlstra@chello.nl \
    --cc=acme@ghostprotocols.net \
    --cc=akpm@linux-foundation.org \
    --cc=ghaskins@novell.com \
    --cc=hch@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@polymtl.ca \
    --cc=rostedt@goodmis.org \
    --cc=sparclinux@vger.kernel.org \
    --cc=srostedt@redhat.com \
    --cc=torvalds@linux-foundation.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).