Skip to content

Commit 3d51d30

Browse files
devnexentargos
authored andcommitted
src: large pages fix FreeBSD fix region size
Makes the size aligned to huge page size by calculating it from the aligned lower and upper boundary of the executable address. PR-URL: #28735 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Rich Trott <rtrott@gmail.com>
1 parent 25aa222 commit 3d51d30

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

src/large_pages/node_large_page.cc

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -199,12 +199,14 @@ static struct text_region FindNodeTextRegion() {
199199
(entry->kve_protection & KVME_PROT_EXEC));
200200

201201
if (!strcmp(exename.c_str(), entry->kve_path) && excmapping) {
202-
size_t size = entry->kve_end - entry->kve_start;
202+
char* estart =
203+
reinterpret_cast<char*>(hugepage_align_up(entry->kve_start));
204+
char* eend =
205+
reinterpret_cast<char*>(hugepage_align_down(entry->kve_end));
206+
size_t size = eend - estart;
203207
nregion.found_text_region = true;
204-
nregion.from =
205-
reinterpret_cast<char*>(hugepage_align_up(entry->kve_start));
206-
nregion.to =
207-
reinterpret_cast<char*>(hugepage_align_down(entry->kve_end));
208+
nregion.from = estart;
209+
nregion.to = eend;
208210
nregion.total_hugepages = size / hps;
209211
break;
210212
}

0 commit comments

Comments
 (0)