All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steve MacLean <Steve.MacLean@microsoft.com>
To: Jiri Olsa <jolsa@redhat.com>,
	Steve MacLean <steve.maclean@linux.microsoft.com>,
	Stephane Eranian <eranian@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Namhyung Kim <namhyung@kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: RE: [PATCH v3] perf inject --jit: Remove //anon mmap events
Date: Sat, 9 Nov 2019 16:49:25 +0000	[thread overview]
Message-ID: <CY4PR21MB063262D81AB2BE5FEE88057EF77A0@CY4PR21MB0632.namprd21.prod.outlook.com> (raw)
In-Reply-To: <20191101082740.GB2172@krava>

> > While a JIT is jitting code it will eventually need to commit more 
> > pages and change these pages to executable permissions.
> > 
> > Typically the JIT will want these colocated to minimize branch displacements.
> > 
> > The kernel will coalesce these anonymous mapping with identical 
> > permissions before sending an MMAP event for the new pages. This means 
> > the mmap event for the new pages will include the older pages.
> > 
> > These anonymous mmap events will obscure the jitdump injected pseudo events.
> > This means that the jitdump generated symbols, machine code, debugging 
> > info, and unwind info will no longer be used.
> > 
> > Observations:
> > 
> > When a process emits a jit dump marker and a jitdump file, the 
> > perf-xxx.map file represents inferior information which has been 
> > superceded by the jitdump jit-xxx.dump file.
> > 
> > Further the '//anon*' mmap events are only required for the legacy 
> > perf-xxx.map mapping.
> > 
> > When attaching to an existing process, the synthetic anon map events 
> > are given a time stamp of -1. These should not obscure the jitdump 
> > events which have an actual time.
> > 
> > Summary:
> > 
> > Use thread->priv to store whether a jitdump file has been processed
> 
> I'm ok wih the implementation but not sure about the described JIT/mmap logic, Stephane?
> 
> jirka

The kernel only seems to coalesce the anonymous mappings when the allocations grow beyond 64K. It may not affect JITs for smaller sets of JITted code.  I would guess a javascript JIT engine might not hit this type of problem often.

@Stephane Eranian could you comment.

@Jiri Olsa I am happy to expand the explanation if it would be helpful.


  reply	other threads:[~2019-11-09 16:49 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-31 20:30 [PATCH v3] perf inject --jit: Remove //anon mmap events Steve MacLean
2019-11-01  8:27 ` Jiri Olsa
2019-11-09 16:49   ` Steve MacLean [this message]
2019-11-11 11:33     ` Jiri Olsa
2019-11-11 21:35       ` Steve MacLean
2019-12-10 21:08         ` Steve MacLean
2019-12-11 12:44 ` Jiri Olsa
2019-12-28 18:02 Francois Saint-Jacques
2019-12-29 15:51 ` Jiri Olsa

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=CY4PR21MB063262D81AB2BE5FEE88057EF77A0@CY4PR21MB0632.namprd21.prod.outlook.com \
    --to=steve.maclean@microsoft.com \
    --cc=acme@kernel.org \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=eranian@google.com \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=steve.maclean@linux.microsoft.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.