* feature: support HUGEPAGE_PROBE + hugepageedit mark shared object
specified segment, just try to use hugepage to mmap specified segment
instead of all the segments in the shared object
* bugfix: remove _mmap_hole when ld.so mmap PT_LOAD segment try to use hugepage
Signed-off-by: Lv Ying <lvying6@huawei.com>
35 lines
1.1 KiB
Diff
35 lines
1.1 KiB
Diff
From 2ace2eddbd6a0cda2006e632444cd19a360d12d4 Mon Sep 17 00:00:00 2001
|
|
From: Lv Ying <lvying6@huawei.com>
|
|
Date: Fri, 24 Feb 2023 16:14:42 +0800
|
|
Subject: [PATCH 2/3] elf/ld.so: keep compatible with the original policy of
|
|
the LD_HUGEPAGE_LIB env
|
|
|
|
When we use new policy: ld.so load PT_LOAD segement use hugepage according to
|
|
PF_HUGEPAGE flag. We should keep compatible with the original policy of
|
|
the LD_HUGEPAGE_LIB env which loads all the PT_LOAD segment try to use
|
|
hugepage.
|
|
|
|
Signed-off-by: Lv Ying <lvying6@huawei.com>
|
|
---
|
|
elf/dl-load.c | 4 +++-
|
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/elf/dl-load.c b/elf/dl-load.c
|
|
index e0d4fa2e..e01bb448 100644
|
|
--- a/elf/dl-load.c
|
|
+++ b/elf/dl-load.c
|
|
@@ -1184,7 +1184,9 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd,
|
|
}
|
|
|
|
#ifdef HUGEPAGE_SHARED_LIB
|
|
- if (ph->p_flags & PF_HUGEPAGE) {
|
|
+ if (GLRO(dl_hugepage_mask) & DL_HUGEPAGE_LIB_LARGE_IN_FLAG) {
|
|
+ hp_bitmap[nloadcmds] = 1;
|
|
+ } else if (ph->p_flags & PF_HUGEPAGE) {
|
|
hp_bitmap[nloadcmds] = 1;
|
|
use_hugepage = true;
|
|
} else
|
|
--
|
|
2.38.1
|
|
|