From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: [PATCH v2] kvm: iommu: Add cond_resched to legacy device assignment code Date: Tue, 27 Jan 2015 21:31:26 +0100 Message-ID: <54C7F59E.9090806@redhat.com> References: <1422356239-18203-1-git-send-email-joro@8bytes.org> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, jroedel@suse.de To: Joerg Roedel , Gleb Natapov Return-path: In-Reply-To: <1422356239-18203-1-git-send-email-joro@8bytes.org> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On 27/01/2015 11:57, Joerg Roedel wrote: > From: Joerg Roedel > > 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 > --- > 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