Re: [PATCH] selftests: mm: fix map_hugetlb failure on 64K page size systems

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



NACK.

I accidentally sent an older version of this patch. Following up with V2.

On Fri, Jan 19, 2024 at 5:58 AM Nico Pache <npache@xxxxxxxxxx> wrote:
>
> On systems with 64k page size and 512M huge page sizes, the allocation
> and test succeeds but errors out at the munmap. As the comment states,
> munmap will failure if its not HUGEPAGE aligned. This is due to the
> length of the mapping being 1/2 the size of the hugepage causing the
> munmap to not be hugepage aligned. Fix this by making the mapping length
> the full hugepage if the hugepage is larger than the length of the
> mapping.
>
> Signed-off-by: Nico Pache <npache@xxxxxxxxxx>
> ---
>  tools/testing/selftests/mm/map_hugetlb.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/tools/testing/selftests/mm/map_hugetlb.c b/tools/testing/selftests/mm/map_hugetlb.c
> index 193281560b61..dcb8095fcd45 100644
> --- a/tools/testing/selftests/mm/map_hugetlb.c
> +++ b/tools/testing/selftests/mm/map_hugetlb.c
> @@ -58,10 +58,16 @@ int main(int argc, char **argv)
>  {
>         void *addr;
>         int ret;
> +       size_t maplength;
>         size_t length = LENGTH;
>         int flags = FLAGS;
>         int shift = 0;
>
> +       maplength = default_huge_page_size();
> +       /* mmap with fail if the length is not page */
> +       if (maplength > length)
> +               length = maplength;
> +
>         if (argc > 1)
>                 length = atol(argv[1]) << 20;
>         if (argc > 2) {
> --
> 2.43.0
>






[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux