From: Helge Deller <deller@gmx.de>
To: Mike Frysinger <vapier@gentoo.org>,
John David Anglin <dave.anglin@bell.net>
Cc: Aaro Koskinen <aaro.koskinen@iki.fi>, linux-parisc@vger.kernel.org
Subject: Re: parisc: fix mmap(MAP_FIXED|MAP_SHARED) to already mmapped address
Date: Sun, 02 Mar 2014 22:22:54 +0100 [thread overview]
Message-ID: <5313A12E.7010307@gmx.de> (raw)
In-Reply-To: <201312191619.05005.vapier@gentoo.org>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi Mike,
On 12/19/2013 10:19 PM, Mike Frysinger wrote:
> On Thursday 19 December 2013 14:44:40 John David Anglin wrote:
>> On 12/19/2013 2:17 PM, Aaro Koskinen wrote:
>>> This commit (0576da2c08e3d332f1b0653030d28ab804585ab6) and the current
>>> mainline kernel (3.13-rc4) gives me the following with GLIBC 2.18:
>>>
>>> $ localedef -c -i en_US -f UTF-8 en_US.UTF-8
>>> cannot map archive header: Invalid argument
>>>
>>> strace looks like this:
>>>
>>> mmap2(NULL, 536870912, PROT_NONE, MAP_SHARED, 3, 0) = 0x42f34000
>>> mmap2(0x43000000, 1607632, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_FIXED, 3,
>>> 0) = -1 EINVAL (Invalid argument)
>>>
>>> With the patch reverted, it works:
>>>
>>> mmap2(NULL, 536870912, PROT_NONE, MAP_SHARED, 3, 0) = 0x42d74000
>>> mmap2(0x43000000, 1607632, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_FIXED, 3,
>>> 0) = 0x43000000
>>>
>>> BTW, note that for GLIBC 2.18 some changes were done regarding this:
>>> https://sourceware.org/bugzilla/show_bug.cgi?id=10283
>>
>> Are you sure the glibc changes are correct? PARISC addresses are not
>> strictly aligned to SHMLBA.
>> There's also a page offset and "random" offset derived from the kernel
>> address of the mapping struct.
>
> the glibc changes were to use SHMLBA as the min alignment where as before it
> was using PAGE_SIZE. the kernel shouldn't reject us because we manually
> increased our alignment ... the mappings should still be overlapping, so it
> shouldn't be an "out of mapping space" issue.
>
> the first one gets a really large map (not fixed), and then the second does a
> small mapping inside of that first one.
This doesn't work for parisc.
We currently face this issue again now with eglibc on debian since we updated it.
Regarding this commit:
https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/generic/libc-mmap.h;h=0ddd20d42ab44282180c6d6f7c13f2875b25a614;hb=17db6e8d6b12f55e312fcab46faf5d332c806fb6
a trivial workaround would be to change libc-mmap.h like this:
#ifdef __hppa__
#define MAP_FIXED_ALIGNMENT 4096
#else
#define MAP_FIXED_ALIGNMENT SHMLBA
#endif
That works because then the new aligned address is then the same as the original
(the mmap call returns 4k aligned addresses, so it stays unchanged), but I'm not sure
if such a patch would be acceptable.
Do you have another idea/proposal?
Helge
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
iQIcBAEBAgAGBQJTE6EuAAoJEKGDlV8wpRJBn1sP/2rgG74cYxazzfljoAR6Ymdc
lwgbJqKthEMpNyaFKqxEJrcgwdhBLabVPOe9NDXyS7GpFp+0NPi+EbFCdVRNEO6c
3oWV4XkiZBm2ebOI90J5YiKZN0GwrsLE9lEJD/db7JYSFdV34SbAsKOMth8vgL9K
unVtsU1fGNFOrPuND7+tclxuClsD/0zZqYpW5V6l3/Iox3rrjceSemxw5ZnlN7Eq
CnLBAw0UBbZYVYPiy1hYzFndrAdOGt5SDatM7WTHZ0AiaqZfyKpGE7/qwImjCJt0
KL9BXYcEoT+neAAdxR0hlHaSokdinh3TdutfTnDFpvM2Qpxjdwbw0YnHVj7XtIfe
EjxnFchNFW/alpzNvCMyRF/ThTcSkZ41fysOkkAPCbYameyoVhTHJEnfKIUEXrQH
/WwrcZ7THas5eauJKhN+mqNpDjoTDbFUWhAGC/Y1TMtXxj3VjGg2NP/YMNJ6KLjc
OPoF6hbm+YmJt2TbtFsZEWs0cnKse0QHCwQYrtm9289jvhTLhcTI7PdTGeavR8Lu
dj4L3ne48zXlUPjMuuOzaZC/40ePNDUhXaN+K6bgk3cbcJZlvP/b/HuNFYBC5T3k
xOgpgyoB19RksHqhliXpGhW5Xc/zuDWHtkxBkGgKKKZZ7VKpOoCrp5mMg3d8JQKG
+PzVCBVCGlF/gUT1Tsvv
=9r8c
-----END PGP SIGNATURE-----
next prev parent reply other threads:[~2014-03-02 21:22 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-19 19:17 parisc: fix mmap(MAP_FIXED|MAP_SHARED) to already mmapped address Aaro Koskinen
2013-12-19 19:44 ` John David Anglin
2013-12-19 20:28 ` Aaro Koskinen
2013-12-19 21:19 ` Mike Frysinger
2013-12-19 22:38 ` John David Anglin
2013-12-19 23:02 ` Mike Frysinger
2013-12-20 22:10 ` Helge Deller
2013-12-23 20:26 ` Aaro Koskinen
2013-12-29 20:50 ` Helge Deller
2013-12-29 21:26 ` Aaro Koskinen
2013-12-21 18:18 ` John David Anglin
2014-03-02 21:22 ` Helge Deller [this message]
2014-04-01 18:26 ` Aaro Koskinen
2014-04-01 18:49 ` Helge Deller
2014-04-02 19:09 ` Carlos O'Donell
2014-04-02 21:09 ` Helge Deller
2014-04-02 21:41 ` John David Anglin
2014-04-03 19:41 ` Helge Deller
2014-04-03 20:03 ` John David Anglin
2014-04-03 20:26 ` Helge Deller
2015-02-20 21:36 ` Carlos O'Donell
2015-02-21 20:31 ` John David Anglin
2015-02-21 20:40 ` John David Anglin
2015-02-21 23:09 ` James Bottomley
2015-02-21 23:26 ` Helge Deller
2015-02-21 23:57 ` James Bottomley
2015-02-22 16:45 ` John David Anglin
2015-02-22 17:17 ` James Bottomley
2015-02-22 17:53 ` Helge Deller
2015-02-22 17:54 ` John David Anglin
2015-02-22 17:58 ` James Bottomley
2015-02-22 18:07 ` Helge Deller
2015-02-22 19:13 ` James Bottomley
2015-02-22 19:16 ` Helge Deller
2015-02-22 19:42 ` James Bottomley
2015-03-07 19:05 ` Carlos O'Donell
2015-02-22 18:28 ` parisc: fix mmap(MAP_FIXED|MAP_SHARED) to already mmapped address - optimized patches Helge Deller
2015-02-22 17:28 ` parisc: fix mmap(MAP_FIXED|MAP_SHARED) to already mmapped address James Bottomley
2015-02-22 18:02 ` John David Anglin
2015-02-21 21:04 ` Helge Deller
2014-04-03 20:12 ` John David Anglin
2014-04-03 20:27 ` Helge Deller
2014-04-04 15:45 ` Jeroen Roovers
2013-12-19 20:28 ` Helge Deller
2013-12-19 20:53 ` Aaro Koskinen
2013-12-23 20:34 ` Rolf Eike Beer
2013-12-24 2:39 ` John David Anglin
2013-12-24 9:32 ` Rolf Eike Beer
2014-01-27 11:23 ` Rolf Eike Beer
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=5313A12E.7010307@gmx.de \
--to=deller@gmx.de \
--cc=aaro.koskinen@iki.fi \
--cc=dave.anglin@bell.net \
--cc=linux-parisc@vger.kernel.org \
--cc=vapier@gentoo.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 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.