public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Rongwei Wang <rongwei.wang@linux.alibaba.com>
To: Florian Weimer <fweimer@redhat.com>,
	Rongwei Wang via Libc-alpha <libc-alpha@sourceware.org>
Cc: xuyu@linux.alibaba.com, gavin.dg@linux.alibaba.com
Subject: Re: [PATCH RFC 1/1] elf: align the mapping address of LOAD segments with p_align
Date: Mon, 6 Dec 2021 10:47:56 +0800	[thread overview]
Message-ID: <35a5148c-8a31-bdbd-d034-4de865090070@linux.alibaba.com> (raw)
In-Reply-To: <87wnkktf53.fsf@oldenburg.str.redhat.com>

Hi, Florian

On 12/5/21 2:10 AM, Florian Weimer wrote:
> * Rongwei Wang via Libc-alpha:
> 
>> Now, ld.so always map the LOAD segments and aligned by base
>> page size (e.g. 4k in x86 or 4k, 16k and 64k in arm64). And
>> this patch improve the scheme here. In this patch, ld.so
>> can align the mapping address of the first LOAD segment with
>> p_align when p_align is greater than the current base page
>> size.
>>
>> And this change makes code segments using huge pages become
>> simple and available.
> 
> I feel like we should be able to tell the kernel that we want an aligned
> mapping.  munmap is not actually cheap.
I see munmap here will slow down applications linking to DSO. And the 
effect seems small? Sorry, I don't know much about this impact.
Of course, I know that this effect should be magnified if the 
applications has too many DSOs.

> 
> Do you know if there are some ideas in this area?  Perhaps with another
As far as I can tell, there are two methods to make .text use huge pages:
1. The way above mentioned: madvise + khugepaged;
2. use libhugetlbfs[1]: this way need to recompile the source code of 
application, and linking libhugetlbfs.so. The abvious difference is
this way uses hugetlb.
For application, the two methods mentioned above which seems not 
friendly to applications.

> MAP_ flag and encoding the requested alignment in the lower bits of the
Actually, It seems the kernel developers don't want to introduce new 
MAP_ flags to support this. Maybe they think mmap and munmap is enough 
for applications to get an aligned mapping address. And of course, it
is just my guess and self point.

In additions, back to the patch, what do you think of the alignment 
method used in our patch? There would be 4k, 64k and 2M to align the 
mapping in our patch, according to p_align value. If we try to introduce
new MAP_ flags in kernel, I am not sure whether we need to add multiple
flags, for example MAP_64K, MAP_2M, etc.

LINK[1]: https://github.com/libhugetlbfs/libhugetlbfs

Thanks!

> hints address?
> 
> Thanks,
> Florian
> 

  reply	other threads:[~2021-12-06  2:48 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-04  4:58 [PATCH RFC 0/1] make ld.so map .text LOAD ssegments and aligned by p_align Rongwei Wang
2021-12-04  4:58 ` [PATCH RFC 1/1] elf: align the mapping address of LOAD segments with p_align Rongwei Wang
2021-12-04 18:10   ` Florian Weimer
2021-12-06  2:47     ` Rongwei Wang [this message]
2021-12-06 14:48   ` H.J. Lu
2021-12-08  2:14     ` Rongwei Wang
2021-12-08  2:33       ` H.J. Lu
2021-12-08  3:04         ` Rongwei Wang
2021-12-08 23:52           ` H.J. Lu
2021-12-09  1:43             ` Rongwei Wang
2021-12-10 12:39 ` [PATCH v5 0/2] fix p_align on PT_LOAD segment in DSO isn't honored Rongwei Wang
2021-12-10 12:39   ` [PATCH v5 1/2] elf: Properly align PT_LOAD segments Rongwei Wang
2021-12-10 15:43     ` H.J. Lu
2021-12-10 15:45       ` Florian Weimer
2021-12-10 18:54         ` H.J. Lu
2021-12-10 18:57           ` H.J. Lu
2021-12-10 12:39   ` [PATCH v5 2/2] Add a testcase to check alignment of PT_LOAD segment Rongwei Wang
2021-12-10 13:48     ` Adhemerval Zanella
2021-12-10 15:41       ` H.J. Lu
2021-12-10 18:56         ` H.J. Lu
2021-12-10 20:05           ` Adhemerval Zanella
2021-12-10 20:24             ` H.J. Lu
2021-12-10 21:34               ` Adhemerval Zanella
2021-12-10 13:13   ` [PATCH v5 0/2] fix p_align on PT_LOAD segment in DSO isn't honored H.J. Lu
2021-12-10 13:58     ` Rongwei Wang
2021-12-13  2:51 ` [PATCH v6 " Rongwei Wang
2021-12-13  2:51   ` [PATCH v6 1/2] elf: Properly align PT_LOAD segments [BZ #28676] Rongwei Wang
2021-12-13 11:05     ` Szabolcs Nagy
2021-12-13 11:17       ` Florian Weimer
2021-12-13 11:35         ` Szabolcs Nagy
2021-12-13 11:59           ` Florian Weimer
2021-12-13 13:20             ` H.J. Lu
2021-12-13 13:26               ` Florian Weimer
2021-12-13 13:34                 ` H.J. Lu
2021-12-13 11:46     ` Andreas Schwab
2021-12-13 11:52       ` Szabolcs Nagy
2021-12-13 14:51         ` Rongwei Wang
2021-12-13 17:37           ` Szabolcs Nagy
2021-12-13 17:50             ` Florian Weimer
2021-12-13  2:51   ` [PATCH v6 2/2] Add a testcase to check alignment of PT_LOAD segment Rongwei Wang
2021-12-14  2:03   ` [PATCH v6 0/2] fix p_align on PT_LOAD segment in DSO isn't honored Fangrui Song
2021-12-14  3:56     ` H.J. Lu

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=35a5148c-8a31-bdbd-d034-4de865090070@linux.alibaba.com \
    --to=rongwei.wang@linux.alibaba.com \
    --cc=fweimer@redhat.com \
    --cc=gavin.dg@linux.alibaba.com \
    --cc=libc-alpha@sourceware.org \
    --cc=xuyu@linux.alibaba.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 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 read-only IMAP folder(s) and NNTP newsgroup(s).