Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754128Ab2JDH3P (ORCPT ); Thu, 4 Oct 2012 03:29:15 -0400 Received: from mx1.redhat.com ([209.132.183.28]:33039 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752442Ab2JDH3O (ORCPT ); Thu, 4 Oct 2012 03:29:14 -0400 Date: Thu, 4 Oct 2012 09:29:00 +0200 From: Gleb Natapov To: Avi Kivity Cc: Raghavendra K T , Jiannan Ouyang , Peter Zijlstra , Rik van Riel , "H. Peter Anvin" , Ingo Molnar , Marcelo Tosatti , Srikar , "Nikunj A. Dadhania" , KVM , chegu vinod , "Andrew M. Theurer" , LKML , Srivatsa Vaddagiri Subject: Re: [PATCH RFC 1/2] kvm: Handle undercommitted guest case in PLE handler Message-ID: <20121004072900.GU23096@redhat.com> References: <5061713D.5060406@redhat.com> <50641356.5070008@redhat.com> <506540C7.9070105@linux.vnet.ibm.com> <50680049.5020206@redhat.com> <20120930110755.GB1009@redhat.com> <50682945.3060309@redhat.com> <20121003141739.GA15253@linux.vnet.ibm.com> <506C5239.4080209@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <506C5239.4080209@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1682 Lines: 46 On Wed, Oct 03, 2012 at 04:56:57PM +0200, Avi Kivity wrote: > On 10/03/2012 04:17 PM, Raghavendra K T wrote: > > * Avi Kivity [2012-09-30 13:13:09]: > > > >> On 09/30/2012 01:07 PM, Gleb Natapov wrote: > >> > On Sun, Sep 30, 2012 at 10:18:17AM +0200, Avi Kivity wrote: > >> >> On 09/28/2012 08:16 AM, Raghavendra K T wrote: > >> >> > > >> >> >> > >> >> >> +struct pv_sched_info { > >> >> >> + unsigned long sched_bitmap; > >> >> > > >> >> > Thinking, whether we need something similar to cpumask here? > >> >> > Only thing is we are representing guest (v)cpumask. > >> >> > > >> >> > >> >> DECLARE_BITMAP(sched_bitmap, KVM_MAX_VCPUS) > >> >> > >> > vcpu_id can be greater than KVM_MAX_VCPUS. > >> > >> Use the index into the vcpu table as the bitmap index then. In fact > >> it's better because then the lookup to get the vcpu pointer is trivial. > > > > Did you mean, while setting the bitmap, > > > > we should do > > for (i = 1..n) > > if (kvm->vcpus[i] == vcpu) set ith position in bitmap? > > You can store i in the vcpu itself: > > set_bit(vcpu->index, &kvm->preempted); > This will make the fact that vcpus are stored in an array into API instead of implementation detail :( There were patches for vcpu destruction that changed the array to rculist. Well, it will be still possible to make the array rcu protected and copy it every time vcpu is deleted/added I guess. -- Gleb. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/