mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
selftests/mm: hugetlb-shm: add setup of HugeTLB pages
hugetlb-shm test fails if there are no free huge pages prepared by a wrapper script and shm liimts in proc are too low. Add setup of HugeTLB pages and shm limits to the test and make sure that the original settings are restored on the test exit. Link: https://lore.kernel.org/20260511162840.375890-43-rppt@kernel.org Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org> Tested-by: Luiz Capitulino <luizcap@redhat.com> Tested-by: Sarthak Sharma <sarthak.sharma@arm.com> Cc: Baolin Wang <baolin.wang@linux.alibaba.com> Cc: Barry Song <baohua@kernel.org> Cc: David Hildenbrand <david@kernel.org> Cc: Dev Jain <dev.jain@arm.com> Cc: Donet Tom <donettom@linux.ibm.com> Cc: Jason Gunthorpe <jgg@ziepe.ca> Cc: John Hubbard <jhubbard@nvidia.com> Cc: Lance Yang <lance.yang@linux.dev> Cc: Leon Romanovsky <leon@kernel.org> Cc: Liam Howlett <liam@infradead.org> Cc: Li Wang <li.wang@linux.dev> Cc: Lorenzo Stoakes <ljs@kernel.org> Cc: Mark Brown <broonie@kernel.org> Cc: Michal Hocko <mhocko@suse.com> Cc: Nico Pache <npache@redhat.com> Cc: Peter Xu <peterx@redhat.com> Cc: Ryan Roberts <ryan.roberts@arm.com> Cc: Shuah Khan <shuah@kernel.org> Cc: Suren Baghdasaryan <surenb@google.com> Cc: Vlastimil Babka <vbabka@kernel.org> Cc: Zi Yan <ziy@nvidia.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
a914785f63
commit
2d6d040ccf
|
|
@ -29,9 +29,27 @@
|
|||
#include <sys/mman.h>
|
||||
|
||||
#include "vm_util.h"
|
||||
#include "hugepage_settings.h"
|
||||
|
||||
#define LENGTH (256UL*1024*1024)
|
||||
|
||||
static void prepare(void)
|
||||
{
|
||||
unsigned long length, hugepage_size, nr;
|
||||
|
||||
hugepage_size = default_huge_page_size();
|
||||
if (!hugepage_size)
|
||||
ksft_exit_skip("Unable to determine huge page size\n");
|
||||
|
||||
length = (LENGTH + hugepage_size - 1) & ~(hugepage_size - 1);
|
||||
nr = length / hugepage_size;
|
||||
|
||||
if (!hugetlb_setup_default(nr))
|
||||
ksft_exit_skip("Not enough free huge pages\n");
|
||||
|
||||
shm_limits_prepare(length);
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
int shmid;
|
||||
|
|
@ -41,6 +59,8 @@ int main(void)
|
|||
ksft_print_header();
|
||||
ksft_set_plan(1);
|
||||
|
||||
prepare();
|
||||
|
||||
shmid = shmget(2, LENGTH, SHM_HUGETLB | IPC_CREAT | SHM_R | SHM_W);
|
||||
if (shmid < 0)
|
||||
ksft_exit_fail_perror("shmget");
|
||||
|
|
@ -76,3 +96,5 @@ int main(void)
|
|||
ksft_test_result_pass("hugepage using SysV shmget/shmat\n");
|
||||
ksft_finished();
|
||||
}
|
||||
|
||||
SHM_LIMITS_RESTORE()
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user