Skip to content

User mode uses inefficient structures to store information on pages #240

@kwitaszczyk

Description

@kwitaszczyk

Our current QEMU version uses inefficient structures to store PageDesc objects used in TCG. This issue was fixed in upstream [1] [2] [3] by using interval trees. Without these improvements merged into our user mode, we cannot use CheriBSD with snmalloc as the default allocator under the user mode because it creates a huge mapping (for a region of 512 GB in my case) with mmap(2) that itself takes several seconds.

[1] https://gitlab.com/qemu-project/qemu/-/issues/290
[2] https://gitlab.com/qemu-project/qemu/-/issues/967
[3] https://gitlab.com/qemu-project/qemu/-/issues/1214
[4] https://github.com/CTSRD-CHERI/cheribsd/blob/bcabfe1f46bd993c762a1816b6fb88cd8a9fbfc3/contrib/subrepo-snmalloc/src/snmalloc/pal/pal_posix.h#L332

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions