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)
next prev parent reply other threads:[~2017-03-16 2:51 UTC|newest]
Thread overview: 16+ 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ář
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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).