On 27/01/2015 11:57, Joerg Roedel wrote: > From: Joerg Roedel <jroedel@xxxxxxx> > > 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@xxxxxxx> > --- > 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 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html