From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
Cc: Carlos O'Donell <carlos@systemhalted.org>, linux-parisc@vger.kernel.org
Subject: Re: [PATCH] parisc: Improve dcache flush on PA8800/PA8900
Date: Tue, 15 Feb 2011 10:58:10 -0600 [thread overview]
Message-ID: <1297789090.3015.31.camel@mulgrave.site> (raw)
In-Reply-To: <20110215164703.GA9471@hiauly1.hia.nrc.ca>
On Tue, 2011-02-15 at 11:47 -0500, John David Anglin wrote:
> On Tue, 15 Feb 2011, Carlos O'Donell wrote:
>
> > On Mon, Feb 14, 2011 at 8:58 PM, John David Anglin
> > <dave@hiauly1.hia.nrc.ca> wrote:
> > > Feb 14 07:48:06 mx3210 kernel: INEQUIVALENT ALIASES: page 0x4282e520 addr 0x411e
> > > 8000 in file libc-2.11.2.so with flags 0x8000071
> > >
> > > i haven't tracked down where these come from but this looks like a glibc issue.
> > > Note the final vm_flags value for the final map. This is the inequivalent one.
> > > As far as I know, the GCC testsuite does not play with MAP_FIXED maps.
> > >
> > > Carlos, any thoughts on where this might come from?
> >
> > Could you more clearly describe exactly what is the problem from
> > glibc's perspective?
>
> It's a little hard to tell since I haven't found the application
> the causes the above inequivalent aliases.
There was a prink in the inequivalent alias detector that printed
task->comm (that's the process name) if you add it back it will give
more information.
> >From a kernel perspective, we need to avoid multiple maps of the same
> memory page with inequivalent virtual addresses (i.e., the maps must
> start at the same address & 0x3fffff).
If I understand what you've done: you already patched the kernel to
force MAP_FIXED onto this boundary. If that's the case, the actual
problem must be an offset mapping; meaning something maps a region and
then maps a subregion of it. I've got to guess this is the dynamic
loader.
> Inequivalent maps only result from the use of MAP_FIXED. All
> the maps with VM_READ and VM_EXEC are equivalent in this case,
> so it's fairly clear that the map is for a code segment of
> libc-2.11.2.so. There is one map with just the VM_READ flag
> that is not equivalent. Because there are multiple maps to the
> same memory page, the page is in effect shared.
>
> Ideally, glibc should use equivalent aliases for all maps that
> it creates when they are "shared" as above.
>
> > The dynamic loader will do a non-fixed mapping to cover the entire
> > range of the PIC code needed to load into memory. This ensures it has
> > enough space to map segments. Then it follows up by using MAP_FIXED to
> > exactly map the segment from the file into memory. It also maps
> > remaining pages at MAP_FIXED from fd=-1 (zero fill).
>
> I tend to think this is the problem area. I will try to find a
> testcase.
Great, thanks! Just getting an application (or .c file) that does this
will give us a better opportunity to analyse what the problem is.
James
next prev parent reply other threads:[~2011-02-15 16:58 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-20 18:54 [PATCH] parisc: improve vmap flush/invalidate James Bottomley
2011-02-08 17:15 ` [PATCH] parisc: Improve dcache flush on PA8800/PA8900 John David Anglin
2011-02-08 17:29 ` James Bottomley
2011-02-08 18:45 ` John David Anglin
2011-02-10 16:03 ` James Bottomley
2011-02-10 17:00 ` John David Anglin
2011-02-10 20:00 ` John David Anglin
2011-02-12 16:18 ` John David Anglin
2011-02-13 19:39 ` John David Anglin
2011-02-15 1:58 ` John David Anglin
2011-02-15 15:13 ` Carlos O'Donell
2011-02-15 16:47 ` John David Anglin
2011-02-15 16:58 ` James Bottomley [this message]
2011-02-15 17:09 ` John David Anglin
2011-02-17 0:37 ` John David Anglin
2011-02-17 0:30 ` binutils change break glibc build John David Anglin
2011-02-17 1:09 ` John David Anglin
2011-02-17 1:17 ` John David Anglin
2011-02-17 4:13 ` John David Anglin
2011-02-18 3:29 ` John David Anglin
2011-02-18 5:32 ` Mike Frysinger
2011-02-18 14:39 ` John David Anglin
2011-02-18 15:28 ` Carlos O'Donell
2011-02-18 18:40 ` John David Anglin
2011-02-18 19:31 ` Mike Frysinger
2011-02-18 19:39 ` Carlos O'Donell
2011-02-22 0:13 ` John David Anglin
2011-02-22 15:07 ` Carlos O'Donell
2011-02-22 16:27 ` John David Anglin
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=1297789090.3015.31.camel@mulgrave.site \
--to=james.bottomley@hansenpartnership.com \
--cc=carlos@systemhalted.org \
--cc=dave.anglin@nrc-cnrc.gc.ca \
--cc=linux-parisc@vger.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