Ackerley Tng <[email protected]> writes:

> Tarun Sahu <[email protected]> writes:
>
>>
>> [...snip...]
>>
>> +static bool kvm_gmem_luo_can_preserve(struct liveupdate_file_handler 
>> *handler, struct file *file)
>> +{
>> +    struct inode *inode = file_inode(file);
>> +    struct gmem_file *gmem_file;
>> +    struct kvm *kvm;
>> +
>> +    if (inode->i_sb->s_magic != GUEST_MEMFD_MAGIC)
>> +            return false;
>> +
>> +    gmem_file = file->private_data;
>> +    if (!gmem_file)
>> +            return false;
>> +
>> +    /*
>> +     * Only Fully-shared guest_memfd preservation is supported
>> +     */
>> +    if (!(GMEM_I(inode)->flags & GUEST_MEMFD_FLAG_INIT_SHARED))
>> +            return false;
>> +
>
> The above check can probably be removed. I think the core thing about
> this series is "we can preserve any memory that doesn't have any
> encryption state that goes along with it", and so the check for
> kvm_arch_has_private_mem() below would be sufficient to gate that.


Sounds Good. Will remove it in next version. I will rephrase the
Line: "Support only fully shared guest_memfd" => "Support only
guest_memfd that does not support private pages and also can not be
converted to private"

>
>> +    /*
>> +     * It makes sure that no memory can be converted to private
>> +     * even if it was initially fully shared (in-place conversions are
>> +     * prevented).
>> +     */
>> +    kvm = gmem_file->kvm;
>> +    if (kvm_arch_has_private_mem(kvm))
>> +            return false;
>> +
>
> For now, has_private_mem == has some encryption state that we can't
> preserve yet.
>
> This also gates off KVM_X86_SW_PROTECTED_VM, but I guess that is
> intended, since when work is done for preserving encryption state, we
> can then test using KVM_X86_SW_PROTECTED_VM, and only then, remove this
> check?

Yes, It will be enabled when private memory preservation will be supported.

>
>> +    if (mapping_large_folio_support(inode->i_mapping))
>> +            return false;
>> +
>> +    return true;
>> +}
>> +
>>
>> [...snip...]
>>

Reply via email to