bsd-user/mmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
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(-)
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;
--
2.40.0
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
© 2016 - 2024 Red Hat, Inc.