From: Raghavendra K T <raghavendra.kt@linux.vnet.ibm.com>
To: Chegu Vinod <chegu_vinod@hp.com>, Gleb Natapov <gleb@redhat.com>,
Marcelo Tosatti <mtosatti@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
Avi Kivity <avi.kivity@gmail.com>, Ingo Molnar <mingo@redhat.com>,
Rik van Riel <riel@redhat.com>,
Srikar <srikar@linux.vnet.ibm.com>,
"H. Peter Anvin" <hpa@zytor.com>,
"Nikunj A. Dadhania" <nikunj@linux.vnet.ibm.com>,
KVM <kvm@vger.kernel.org>, Thomas Gleixner <tglx@linutronix.de>,
Jiannan Ouyang <ouyang@cs.pitt.edu>,
"Andrew M. Theurer" <habanero@linux.vnet.ibm.com>,
LKML <linux-kernel@vger.kernel.org>,
Srivatsa Vaddagiri <srivatsa.vaddagiri@gmail.com>,
Andrew Jones <drjones@redhat.com>
Subject: Re: [PATCH RFC 1/2] kvm: Record the preemption status of vcpus using preempt notifiers
Date: Thu, 07 Mar 2013 14:49:33 +0530 [thread overview]
Message-ID: <51385BA5.7020706@linux.vnet.ibm.com> (raw)
In-Reply-To: <51360D0D.5020609@hp.com>
On 03/05/2013 08:49 PM, Chegu Vinod wrote:
> On 3/4/2013 10:02 AM, Raghavendra K T wrote:
>> From: Raghavendra K T <raghavendra.kt@linux.vnet.ibm.com>
>>
>> Note that we mark as preempted only when vcpu's task state was
>> Running during preemption.
>>
>> Thanks Jiannan, Avi for preemption notifier ideas. Thanks Gleb, PeterZ
>> for their precious suggestions. Thanks Srikar for an idea on avoiding
>> rcu lock while checking task state that improved overcommit numbers.
>>
>> Signed-off-by: Raghavendra K T <raghavendra.kt@linux.vnet.ibm.com>
>> ---
>> include/linux/kvm_host.h | 1 +
>> virt/kvm/kvm_main.c | 5 +++++
>> 2 files changed, 6 insertions(+)
>>
>> diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
>> index cad77fe..0b31e1c 100644
>> --- a/include/linux/kvm_host.h
>> +++ b/include/linux/kvm_host.h
>> @@ -252,6 +252,7 @@ struct kvm_vcpu {
>> bool dy_eligible;
>> } spin_loop;
>> #endif
>> + bool preempted;
>> struct kvm_vcpu_arch arch;
>> };
>> diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
>> index adc68fe..83a804c 100644
>> --- a/virt/kvm/kvm_main.c
>> +++ b/virt/kvm/kvm_main.c
>> @@ -244,6 +244,7 @@ int kvm_vcpu_init(struct kvm_vcpu *vcpu, struct
>> kvm *kvm, unsigned id)
>> kvm_vcpu_set_in_spin_loop(vcpu, false);
>> kvm_vcpu_set_dy_eligible(vcpu, false);
>> + vcpu->preempted = false;
>> r = kvm_arch_vcpu_init(vcpu);
>> if (r < 0)
>> @@ -2902,6 +2903,8 @@ struct kvm_vcpu *preempt_notifier_to_vcpu(struct
>> preempt_notifier *pn)
>> static void kvm_sched_in(struct preempt_notifier *pn, int cpu)
>> {
>> struct kvm_vcpu *vcpu = preempt_notifier_to_vcpu(pn);
>> + if (vcpu->preempted)
>> + vcpu->preempted = false;
>> kvm_arch_vcpu_load(vcpu, cpu);
>> }
>> @@ -2911,6 +2914,8 @@ static void kvm_sched_out(struct
>> preempt_notifier *pn,
>> {
>> struct kvm_vcpu *vcpu = preempt_notifier_to_vcpu(pn);
>> + if (current->state == TASK_RUNNING)
>> + vcpu->preempted = true;
>> kvm_arch_vcpu_put(vcpu);
>> }
>>
>> .
>>
> Reviewed-by: Chegu Vinod <chegu_vinod@hp.com>
Thank you Vinod.
Gleb, Marcelo,
any comment, concern on the patches?
next prev parent reply other threads:[~2013-03-07 9:19 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-04 18:01 [PATCH RFC 0/2] kvm: Better yield_to candidate using preemption notifiers Raghavendra K T
2013-03-04 18:02 ` [PATCH RFC 1/2] kvm: Record the preemption status of vcpus using preempt notifiers Raghavendra K T
2013-03-05 15:19 ` Chegu Vinod
2013-03-07 9:19 ` Raghavendra K T [this message]
2013-03-04 18:02 ` [PATCH RFC 2/2] kvm: Iterate over only vcpus that are preempted Raghavendra K T
2013-03-05 15:20 ` Chegu Vinod
2013-03-05 9:53 ` [PATCH RFC 0/2] kvm: Better yield_to candidate using preemption notifiers Andrew Jones
2013-03-05 12:24 ` Raghavendra K T
2013-03-05 12:40 ` Andrew Jones
2013-03-07 19:10 ` Marcelo Tosatti
2013-03-08 7:13 ` Raghavendra K T
2013-03-11 9:38 ` Gleb Natapov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=51385BA5.7020706@linux.vnet.ibm.com \
--to=raghavendra.kt@linux.vnet.ibm.com \
--cc=avi.kivity@gmail.com \
--cc=chegu_vinod@hp.com \
--cc=drjones@redhat.com \
--cc=gleb@redhat.com \
--cc=habanero@linux.vnet.ibm.com \
--cc=hpa@zytor.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=mtosatti@redhat.com \
--cc=nikunj@linux.vnet.ibm.com \
--cc=ouyang@cs.pitt.edu \
--cc=peterz@infradead.org \
--cc=riel@redhat.com \
--cc=srikar@linux.vnet.ibm.com \
--cc=srivatsa.vaddagiri@gmail.com \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.