Message ID | 20230728035456.99066-1-imp@bsdimp.com |
---|---|
State | New |
Headers | show |
Series | bsd-user: Specify host page alignment if none specified | expand |
On 7/27/23 20:54, Warner Losh wrote: > We're hitting an assert when we pass in alignment == 0 since that's not > a power of two. so pass in the ideal page size. > > Signed-off-by: Warner Losh <imp@bsdimp.com> > --- > bsd-user/mmap.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~ > > diff --git a/bsd-user/mmap.c b/bsd-user/mmap.c > index 74ed00b9fe3..e3ce4ab1fc7 100644 > --- a/bsd-user/mmap.c > +++ b/bsd-user/mmap.c > @@ -260,7 +260,7 @@ static abi_ulong mmap_find_vma_aligned(abi_ulong start, abi_ulong size, > > if (reserved_va) { > return mmap_find_vma_reserved(start, size, > - (alignment != 0 ? 1 << alignment : 0)); > + (alignment != 0 ? 1 << alignment : qemu_host_page_size)); > } > > addr = start;
On 7/28/23 06:34, Richard Henderson wrote: > On 7/27/23 20:54, Warner Losh wrote: >> We're hitting an assert when we pass in alignment == 0 since that's not >> a power of two. so pass in the ideal page size. >> >> Signed-off-by: Warner Losh <imp@bsdimp.com> >> --- >> bsd-user/mmap.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) > > Reviewed-by: Richard Henderson <richard.henderson@linaro.org> > > > r~ > >> >> diff --git a/bsd-user/mmap.c b/bsd-user/mmap.c >> index 74ed00b9fe3..e3ce4ab1fc7 100644 >> --- a/bsd-user/mmap.c >> +++ b/bsd-user/mmap.c >> @@ -260,7 +260,7 @@ static abi_ulong mmap_find_vma_aligned(abi_ulong start, abi_ulong size, >> if (reserved_va) { >> return mmap_find_vma_reserved(start, size, >> - (alignment != 0 ? 1 << alignment : 0)); >> + (alignment != 0 ? 1 << alignment : qemu_host_page_size)); Actually, it probably should be MAX(qemu_host_page_size, TARGET_PAGE_SIZE). Does freebsd currently support any hosts with a page size that is not 4k? It would have been true in the past, certainly, but perhaps they've all been deprecated and removed. r~
On Fri, Jul 28, 2023 at 7:41 AM Richard Henderson < richard.henderson@linaro.org> wrote: > On 7/28/23 06:34, Richard Henderson wrote: > > On 7/27/23 20:54, Warner Losh wrote: > >> We're hitting an assert when we pass in alignment == 0 since that's not > >> a power of two. so pass in the ideal page size. > >> > >> Signed-off-by: Warner Losh <imp@bsdimp.com> > >> --- > >> bsd-user/mmap.c | 2 +- > >> 1 file changed, 1 insertion(+), 1 deletion(-) > > > > Reviewed-by: Richard Henderson <richard.henderson@linaro.org> > > > > > > r~ > > > >> > >> diff --git a/bsd-user/mmap.c b/bsd-user/mmap.c > >> index 74ed00b9fe3..e3ce4ab1fc7 100644 > >> --- a/bsd-user/mmap.c > >> +++ b/bsd-user/mmap.c > >> @@ -260,7 +260,7 @@ static abi_ulong mmap_find_vma_aligned(abi_ulong > start, abi_ulong size, > >> if (reserved_va) { > >> return mmap_find_vma_reserved(start, size, > >> - (alignment != 0 ? 1 << alignment : 0)); > >> + (alignment != 0 ? 1 << alignment : qemu_host_page_size)); > > Actually, it probably should be MAX(qemu_host_page_size, TARGET_PAGE_SIZE). > > Does freebsd currently support any hosts with a page size that is not 4k? > It would have > been true in the past, certainly, but perhaps they've all been deprecated > and removed. > arm64 supports 64k pages now too... I'll update the patch... Warner
diff --git a/bsd-user/mmap.c b/bsd-user/mmap.c index 74ed00b9fe3..e3ce4ab1fc7 100644 --- a/bsd-user/mmap.c +++ b/bsd-user/mmap.c @@ -260,7 +260,7 @@ static abi_ulong mmap_find_vma_aligned(abi_ulong start, abi_ulong size, if (reserved_va) { return mmap_find_vma_reserved(start, size, - (alignment != 0 ? 1 << alignment : 0)); + (alignment != 0 ? 1 << alignment : qemu_host_page_size)); } addr = start;
We're hitting an assert when we pass in alignment == 0 since that's not a power of two. so pass in the ideal page size. Signed-off-by: Warner Losh <imp@bsdimp.com> --- bsd-user/mmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)