• Darrick J. Wong's avatar
    xfs: create a big array data structure · 3934e8eb
    Darrick J. Wong authored
    Create a simple 'big array' data structure for storage of fixed-size
    metadata records that will be used to reconstruct a btree index.  For
    repair operations, the most important operations are append, iterate,
    and sort.
    
    Earlier implementations of the big array used linked lists and suffered
    from severe problems -- pinning all records in kernel memory was not a
    good idea and frequently lead to OOM situations; random access was very
    inefficient; and record overhead for the lists was unacceptably high at
    40-60%.
    
    Therefore, the big memory array relies on the 'xfile' abstraction, which
    creates a memfd file and stores the records in page cache pages.  Since
    the memfd is created in tmpfs, the memory pages can be pushed out to
    disk if necessary and we have a built-in usage limit of 50% of physical
    memory.
    Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
    Reviewed-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
    Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
    3934e8eb
Kconfig 7.7 KB