[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3 4/5] x86/mwait-idle: disable IBRS during long idle


  • To: Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • From: Jan Beulich <jbeulich@xxxxxxxx>
  • Date: Thu, 13 Oct 2022 16:15:04 +0200
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=DIRYfl0xNzvF7QruziNHX0SbfOaCQfZwI+YksurZjL4=; b=fUkyJyblx3jeNMDQiGg/4rnUgwTBIu/FAd5TKUc6ugukz9JdJgZXH2t6ApK6xDQJU1KGTNtD8szmA3s3vw9say5uLafsGvLOnska5qaB6pBVqzW5bdy1MgGGqmeJs/LSXbEzhmPONpD32GTo/EPbWvyU/G0ZC16ZI8SFpDIqGEBpr45tAoxZYy66Wuyy4xQ761iu37Kzs94OK/UB9sI8cly1eNn14faM8WWU+iWpk2WSqykT4TC/d066YVfbHxYUGpLnVrL0EQBbVFyCiqgly1F7fNlRJqkBDpJPhx9bCoapvOQvH44OHytTZeuqzCLwrBYLEyihZmlU2r6zgNkyow==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=B9bcXZXc8z4KSN/7zllDAg+ngV4Q5vOsMmEuXRDBwbpreRZP26OY++ZYr+dgOzODdlHgD9arDnO0GKcf6be4nCxYZBVRxwlx4zmHY5FhrOQUMApOLcciXzOuuvbbHnJDb8/VsbaMNdY9bq7SOB3afo4zYPbsLelPjkTYH1FSEzYsf8woKLvBuRkfmaqHmZ+69GYDk2dfMYHtatGFtnEL6O894y2ZFgorJLpUJQqhmoImr9+s5KzapgxsVOhbPg6i5Cv4oW1eIJOYdiXjQjPIclOVRvOqMOwVnOjiPOkTYSx61JakbpvvExOCJ47Hf1FK/XyuzqrBleTWchd7r05w4Q==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com;
  • Cc: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>
  • Delivery-date: Thu, 13 Oct 2022 14:15:14 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 13.10.2022 15:10, Roger Pau Monné wrote:
> On Thu, Oct 13, 2022 at 02:17:54PM +0200, Jan Beulich wrote:
>> On 13.10.2022 14:03, Roger Pau Monné wrote:
>>> On Thu, Aug 18, 2022 at 03:04:51PM +0200, Jan Beulich wrote:
>>>> From: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
>>>>
>>>> Having IBRS enabled while the SMT sibling is idle unnecessarily slows
>>>> down the running sibling. OTOH, disabling IBRS around idle takes two
>>>> MSR writes, which will increase the idle latency.
>>>>
>>>> Therefore, only disable IBRS around deeper idle states. Shallow idle
>>>> states are bounded by the tick in duration, since NOHZ is not allowed
>>>> for them by virtue of their short target residency.
>>>>
>>>> Only do this for mwait-driven idle, since that keeps interrupts disabled
>>>> across idle, which makes disabling IBRS vs IRQ-entry a non-issue.
>>>>
>>>> Note: C6 is a random threshold, most importantly C1 probably shouldn't
>>>> disable IBRS, benchmarking needed.
>>>>
>>>> Suggested-by: Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx>
>>>> Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
>>>> Signed-off-by: Borislav Petkov <bp@xxxxxxx>
>>>> Reviewed-by: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>
>>>> Signed-off-by: Borislav Petkov <bp@xxxxxxx>
>>>> Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
>>>> bf5835bcdb96
>>>> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
>>>
>>> Acked-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
>>
>> Thanks.
>>
>>> One unrelated comment below.
>>> [...]
>>>> @@ -932,8 +939,6 @@ static void cf_check mwait_idle(void)
>>>>                    pm_idle_save();
>>>>            else
>>>>            {
>>>> -                  struct cpu_info *info = get_cpu_info();
>>>> -
>>>>                    spec_ctrl_enter_idle(info);
>>>>                    safe_halt();
>>>>                    spec_ctrl_exit_idle(info);
>>>
>>> Do we need to disable speculation just for the hlt if there's no
>>> C state change?
>>>
>>> It would seem to me like the MSR writes could add a lot of latency
>>> when there's no C state change.
>>
>> HLT enters (at least) C1, so is a C-state change to me as well. Plus
>> we may remain there for a while, and during that time we'd like to
>> not unduly impact the other thread.
> 
> OK, but it's not a "deeper C state" as mentioned in the commit
> message.

Correct. But it's also code not being altered by this commit.

Jan



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.