Skip to content
  • Peter Maydell's avatar
    57d1f6d7
    sparc: Make sure we mmap at SHMLBA alignment · 57d1f6d7
    Peter Maydell authored
    
    
    SPARC Linux has an oddity that it insists that mmap()
    of MAP_FIXED memory must be at an alignment defined by
    SHMLBA, which is more aligned than the page size
    (typically, SHMLBA alignment is to 16K, and pages are 8K).
    This is a relic of ancient hardware that had cache
    aliasing constraints, but even on modern hardware the
    kernel still insists on the alignment.
    
    To ensure that we get mmap() alignment sufficient to
    make the kernel happy, change QEMU_VMALLOC_ALIGN,
    qemu_fd_getpagesize() and qemu_mempath_getpagesize()
    to use the maximum of getpagesize() and SHMLBA.
    
    In particular, this allows 'make check' to pass on Sparc:
    we were previously failing the ivshmem tests.
    
    Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: default avatarRichard Henderson <richard.henderson@linaro.org>
    Message-id: 1512752248-17857-1-git-send-email-peter.maydell@linaro.org
    57d1f6d7
    sparc: Make sure we mmap at SHMLBA alignment
    Peter Maydell authored
    
    
    SPARC Linux has an oddity that it insists that mmap()
    of MAP_FIXED memory must be at an alignment defined by
    SHMLBA, which is more aligned than the page size
    (typically, SHMLBA alignment is to 16K, and pages are 8K).
    This is a relic of ancient hardware that had cache
    aliasing constraints, but even on modern hardware the
    kernel still insists on the alignment.
    
    To ensure that we get mmap() alignment sufficient to
    make the kernel happy, change QEMU_VMALLOC_ALIGN,
    qemu_fd_getpagesize() and qemu_mempath_getpagesize()
    to use the maximum of getpagesize() and SHMLBA.
    
    In particular, this allows 'make check' to pass on Sparc:
    we were previously failing the ivshmem tests.
    
    Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: default avatarRichard Henderson <richard.henderson@linaro.org>
    Message-id: 1512752248-17857-1-git-send-email-peter.maydell@linaro.org
Loading