Skip to content
  • Dennis Zhou (Facebook)'s avatar
    percpu: introduce bitmap metadata blocks · ca460b3c
    Dennis Zhou (Facebook) authored
    
    
    This patch introduces the bitmap metadata blocks and adds the skeleton
    of the code that will be used to maintain these blocks.  Each chunk's
    bitmap is made up of full metadata blocks. These blocks maintain basic
    metadata to help prevent scanning unnecssarily to update hints. Full
    scanning methods are used for the skeleton and will be replaced in the
    coming patches. A number of helper functions are added as well to do
    conversion of pages to blocks and manage offsets. Comments will be
    updated as the final version of each function is added.
    
    There exists a relationship between PAGE_SIZE, PCPU_BITMAP_BLOCK_SIZE,
    the region size, and unit_size. Every chunk's region (including offsets)
    is page aligned at the beginning to preserve alignment. The end is
    aligned to LCM(PAGE_SIZE, PCPU_BITMAP_BLOCK_SIZE) to ensure that the end
    can fit with the populated page map which is by page and every metadata
    block is fully accounted for. The unit_size is already page aligned, but
    must also be aligned with PCPU_BITMAP_BLOCK_SIZE to ensure full metadata
    blocks.
    
    Signed-off-by: default avatarDennis Zhou <dennisszhou@gmail.com>
    Reviewed-by: default avatarJosef Bacik <jbacik@fb.com>
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    ca460b3c