From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ingo Molnar Subject: Re: [patch] kvm: fix GFP_KERNEL allocation in atomic section in kvm_dev_ioctl_create_vcpu() Date: Thu, 28 Dec 2006 13:55:44 +0100 Message-ID: <20061228125544.GA31207@elte.hu> References: <45939755.7010603@qumranet.com> <20061228124224.GA28573@elte.hu> <4593BEE6.30206@qumranet.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: kvm-devel , linux-kernel , Andrew Morton , Linus Torvalds Return-path: To: Avi Kivity Content-Disposition: inline In-Reply-To: <4593BEE6.30206@qumranet.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org * Avi Kivity wrote: > >fix a GFP_KERNEL allocation in atomic section bug: > >kvm_dev_ioctl_create_vcpu() called kvm_mmu_init(), which calls > >alloc_pages(), while holding the vcpu. The fix is to set up the MMU > >state earlier, it does not require a loaded CPU state. > > Yes it does. It calls nonpaging_init_context() which calls > vmx_set_cr3() which promptly trashes address space of the VM that > previously ran on that vcpu (or, if there were none, logs a vmwrite > error). ok, i missed that. Nevertheless the problem of the nonatomic alloc remains. I guess a kvm_mmu_init() needs to be split into kvm_mmu_create() and kvm_mmu_setup()? Ingo