Re: [Question-kvm] Can hva_to_pfn_fast be executed in interrupt context?

From: Paolo Bonzini
Date: Tue Aug 13 2019 - 16:17:19 EST


On 13/08/19 21:14, Bharath Vedartham wrote:
> Hi all,
>
> I was looking at the function hva_to_pfn_fast(in virt/kvm/kvm_main) which is
> executed in an atomic context(even in non-atomic context, since
> hva_to_pfn_fast is much faster than hva_to_pfn_slow).
>
> My question is can this be executed in an interrupt context?

No, it cannot for the reason you mention below.

Paolo

> The motivation for this question is that in an interrupt context, we cannot
> assume "current" to be the task_struct of the process of interest.
> __get_user_pages_fast assume current->mm when walking the process page
> tables.
>
> So if this function hva_to_pfn_fast can be executed in an
> interrupt context, it would not be safe to retrive the pfn with
> __get_user_pages_fast.
>
> Thoughts on this?
>
> Thank you
> Bharath
>