Skip to content
  • Jean-Philippe Brucker's avatar
    Extend memory bank API with memory types · 8f46c736
    Jean-Philippe Brucker authored
    Introduce memory types RAM and DEVICE, along with a way for subsystems to
    query the global memory banks. This is required by VFIO, which will need
    to pin and map guest RAM so that assigned devices can safely do DMA to it.
    Depending on the architecture, the physical map is made of either one or
    two RAM regions. In addition, this new memory types API paves the way to
    reserved memory regions introduced in a subsequent patch.
    
    For the moment we put vesa and ivshmem memory into the DEVICE category, so
    they don't have to be pinned. This means that physical devices assigned
    with VFIO won't be able to DMA to the vesa frame buffer or ivshmem. In
    order to do that, simply changing the type to "RAM" would work. But to
    keep the types consistent, it would be better to introduce flags such as
    KVM_MEM_TYPE_DMA that would complement both RAM and DEVICE type. We could
    then reuse the API for generating firmware information (that is, for x86
    bios; DT supports reserved-memory descripti...
    8f46c736