From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Kiszka Subject: Re: [PATCH] KVM: Fix srcu struct leakage Date: Tue, 09 Nov 2010 15:36:56 +0100 Message-ID: <4CD95C88.2000904@siemens.com> References: <4CD93366.5000209@siemens.com> <20101109135350.GA25952@amt.cnet> <4CD953D1.90802@siemens.com> <20101109140351.GA26116@amt.cnet> <4CD955AA.8040604@siemens.com> <4CD95AF0.4010406@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: Marcelo Tosatti , kvm To: Avi Kivity Return-path: Received: from goliath.siemens.de ([192.35.17.28]:20517 "EHLO goliath.siemens.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751320Ab0KIOhQ (ORCPT ); Tue, 9 Nov 2010 09:37:16 -0500 In-Reply-To: <4CD95AF0.4010406@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: Am 09.11.2010 15:30, Avi Kivity wrote: > On 11/09/2010 04:07 PM, Jan Kiszka wrote: >>> >>> kvm_iommu_unmap_guest enters SRCU critical section, and "struct kvm" is >>> freed at the end of kvm_arch_destroy_vm. Thats why its not in generic >>> code. >> >> The problem is the arch-specific allocation of the kvm object on IA64. >> All others simply call kmalloc/kzalloc for the struct itself, but IA64 >> embeds it into some larger context. Not sure why, though. > > ia64 virt is special - the guest has a virtual address space for host > data. This data is shared with the host address space, but on different > addresses. > > I guess to reduce tlb costs ia64 kvm uses a large order allocation for > both struct kvm and other random data, which is why the allocation is > different. > > It could be refactored to something like > > #ifndef CONFIG_HAVE_SPECIAL_KVM_ALLOC > > static inline struct kvm *kvm_arch_alloc_vm(void) > { > return kzalloc(...); > } > > static inline void kvm_arch_free_vm(struct kvm *kvm) > { > kfree(kvm); > } > > #endif Yep, that's what I'm already working on. > > and have ia64 provide its special stuff. The practice of duplicating > common code just because of one outlier is bad, there are better ways. > > (and I will accept untested ia64 patches provided kvm-ia64@ is copied). OK, will come. Refactoring will affect all archs, so all need to test and ack. Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux