All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Longpeng (Mike)" <longpeng2@huawei.com>
To: "Radim Krčmář" <rkrcmar@redhat.com>
Cc: kvm <kvm@vger.kernel.org>, Jan Beulich <JBeulich@suse.com>,
	Gonglei <arei.gonglei@huawei.com>
Subject: Re: [Question]  About the behavior of HLT in VMX guest mode
Date: Thu, 16 Mar 2017 10:48:31 +0800	[thread overview]
Message-ID: <58C9FCFF.4040406@huawei.com> (raw)
In-Reply-To: <58C9F3A5.3090604@huawei.com>



On 2017/3/16 10:08, Longpeng (Mike) wrote:

> Hi, Radim,
> 
> On 2017/3/16 1:32, Radim Krčmář wrote:
> 
>> 2017-03-13 15:12+0800, Longpeng (Mike):
>>> Hi guys,
>>>
>>> I'm confusing about the behavior of HLT instruction in VMX guest mode.
>>>
>>> I set "hlt exiting" bit to 0 in VMCS, and the vcpu didn't vmexit when execute
>>> HLT as expected. However, I used powertop/cpupower on host to watch the pcpu's
>>> c-states, it seems that the pcpu didn't enter C1/C1E state during this period.
>>>
>>> I searched the Intel spec vol-3, and only found that guest MWAIT won't entering
>>> a low-power sleep state under certain conditions(ch 25.3), but not mentioned HLT.
>>>
>>> My questions are
>>> 1) Does executing HLT instruction in guest-mode won't enter C1/C1E state ?
>>
>> Do you get a different result when running HLT outside VMX?
>>
> 
> 
> Yep, I'm sure that executing HLT in host will enter C1/C1E state, but it won't
> when executing in guest.
> 
>>> 2) If it won't, then whether it would release the hardware resources shared with
>>> another hyper-thread ?
>>
> 
>> No idea.  Aren't hyperthreaded resources scheduled dynamically, so even
>> a nop-spinning VCPU won't hinder the other hyper-thread?
>>
> 
> 
> I had wrote a testcase in kvm-unit-tests, and it seems that guest-mode HLT-ed
> vcpu won't compete the hardware resources( maybe including the pipeline ) any more.
> 
> My testcase is: binding vcpu1 and vcpu2 to a core's 2 hyper-threads, and
> 
> (vcpu1)
> t1 = rdtsc();
> for (int i = 0; i < 10000000; ++i) ;
> t2 = rdtsc();
> costs = t2 - t1;
> 
> (vcpu2)
> "halt" or "while (1) ;"
> 
> The result is:
> -----------------------------------------------------------------------
> 			(vcpu2)idle=poll	(vcpu2)idle=halt
> (HLT exiting=1)
> vcpu1 costs		3800931			1900209
> 
> (HLT exiting=0)
> vcpu1 costs		3800193			1913514
> -----------------------------------------------------------------------
> 
> I found that https://www.spinics.net/lists/kvm-commits/msg00137.html had maked
> "HLT exiting" configurable, while
> http://lkml.iu.edu/hypermail/linux/kernel/1202.0/03309.html removed it due to
> redundant with CFS hardlimit.
> 
> I focus on the VM's performance. According the result, I think running HLT in
> guest-mode is better than idle=poll with HLT-exiting in *certain* scenarios.
> 


comparing "HLT exiting=0 && idle=halt" with "HLT exiting=1 && idle=poll" :)

>>> Any suggestion would be greatly appreciated, thanks!
>>
>> Mostly just more questions, sorry ...
>>
>> I'd look at temperature sensors while halting inside guests on all cores
>> to see if they really enter a power saving mode -- I expect a noticeable
>> difference from idle=poll. :)
>>
>>
> 
> 


-- 
Regards,
Longpeng(Mike)

  reply	other threads:[~2017-03-16  2:51 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-13  7:12 [Question] About the behavior of HLT in VMX guest mode Longpeng (Mike)
2017-03-15 17:32 ` Radim Krčmář
2017-03-16  2:08   ` Longpeng (Mike)
2017-03-16  2:48     ` Longpeng (Mike) [this message]
2017-03-16  8:51     ` Wanpeng Li
2017-03-16  9:19       ` Longpeng (Mike)
2017-03-16 14:23     ` Radim Krčmář
2017-03-17  5:22       ` Longpeng (Mike)
2017-03-20 15:18         ` Radim Krčmář
2017-03-21  1:47           ` Longpeng (Mike)
2017-03-21  6:21             ` Wanpeng Li
2017-03-21 16:45               ` Radim Krčmář
2017-07-04  4:24                 ` Wanpeng Li
2017-07-10 17:08                   ` Radim Krčmář
2017-07-11 10:41                     ` Wanpeng Li
2017-07-11 15:04                       ` Radim Krčmář
  -- strict thread matches above, loose matches on Subject: below --
2017-03-13  6:12 Longpeng (Mike)
2017-03-13  5:12 Longpeng (Mike)
2017-03-13 11:38 ` Jan Beulich
2017-03-14  1:11   ` Longpeng (Mike)

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=58C9FCFF.4040406@huawei.com \
    --to=longpeng2@huawei.com \
    --cc=JBeulich@suse.com \
    --cc=arei.gonglei@huawei.com \
    --cc=kvm@vger.kernel.org \
    --cc=rkrcmar@redhat.com \
    /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.