• Tom Lendacky's avatar
    x86/sev: Use large PSC requests if applicable · 15d90887
    Tom Lendacky authored
    In advance of providing support for unaccepted memory, request 2M Page
    State Change (PSC) requests when the address range allows for it. By using
    a 2M page size, more PSC operations can be handled in a single request to
    the hypervisor. The hypervisor will determine if it can accommodate the
    larger request by checking the mapping in the nested page table. If mapped
    as a large page, then the 2M page request can be performed, otherwise the
    2M page request will be broken down into 512 4K page requests. This is
    still more efficient than having the guest perform multiple PSC requests
    in order to process the 512 4K pages.
    
    In conjunction with the 2M PSC requests, attempt to perform the associated
    PVALIDATE instruction of the page using the 2M page size. If PVALIDATE
    fails with a size mismatch, then fallback to validating 512 4K pages. To
    do this, page validation is modified to work with the PSC structure and
    not just a virtual address range.
    Signed-off-by: default avatarTom Lendacky <thomas.lendacky@amd.com>
    Signed-off-by: default avatarBorislav Petkov (AMD) <bp@alien8.de>
    Link: https://lore.kernel.org/r/050d17b460dfc237b51d72082e5df4498d3513cb.1686063086.git.thomas.lendacky@amd.com
    15d90887
sev.c 57.1 KB