lkml.org 
[lkml]   [2015]   [Jan]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v2] kvm: iommu: Add cond_resched to legacy device assignment code


On 27/01/2015 11:57, Joerg Roedel wrote:
> From: Joerg Roedel <jroedel@suse.de>
>
> When assigning devices to large memory guests (>=128GB guest
> memory in the failure case) the functions to create the
> IOMMU page-tables for the whole guest might run for a very
> long time. On non-preemptible kernels this might cause
> Soft-Lockup warnings. Fix these by adding a cond_resched()
> to the mapping and unmapping loops.
>
> Signed-off-by: Joerg Roedel <jroedel@suse.de>
> ---
> arch/x86/kvm/iommu.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/arch/x86/kvm/iommu.c b/arch/x86/kvm/iommu.c
> index 17b73ee..7dbced3 100644
> --- a/arch/x86/kvm/iommu.c
> +++ b/arch/x86/kvm/iommu.c
> @@ -138,7 +138,7 @@ int kvm_iommu_map_pages(struct kvm *kvm, struct kvm_memory_slot *slot)
>
> gfn += page_size >> PAGE_SHIFT;
>
> -
> + cond_resched();
> }
>
> return 0;
> @@ -306,6 +306,8 @@ static void kvm_iommu_put_pages(struct kvm *kvm,
> kvm_unpin_pages(kvm, pfn, unmap_pages);
>
> gfn += unmap_pages;
> +
> + cond_resched();
> }
> }
>
>

Applying to kvm/queue, thanks.

Paolo


\
 
 \ /
  Last update: 2015-01-27 21:41    [W:0.134 / U:0.388 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site