e98a620c59
Add the pages_[no]huge() functions, which toggle huge page state via madvise(..., MADV_[NO]HUGEPAGE) calls. The first time a page run is purged from within an arena chunk, call pages_nohuge() to tell the kernel to make no further attempts to back the chunk with huge pages. Upon arena chunk deletion, restore the associated virtual memory to its original state via pages_huge(). This resolves #243.
28 lines
472 B
C
28 lines
472 B
C
#include "test/jemalloc_test.h"
|
|
|
|
TEST_BEGIN(test_pages_huge)
|
|
{
|
|
bool commit;
|
|
void *pages;
|
|
|
|
commit = true;
|
|
pages = pages_map(NULL, PAGE, &commit);
|
|
assert_ptr_not_null(pages, "Unexpected pages_map() error");
|
|
|
|
assert_false(pages_huge(pages, PAGE),
|
|
"Unexpected pages_huge() result");
|
|
assert_false(pages_nohuge(pages, PAGE),
|
|
"Unexpected pages_nohuge() result");
|
|
|
|
pages_unmap(pages, PAGE);
|
|
}
|
|
TEST_END
|
|
|
|
int
|
|
main(void)
|
|
{
|
|
|
|
return (test(
|
|
test_pages_huge));
|
|
}
|