From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1C7B9C41604 for ; Tue, 6 Oct 2020 19:47:50 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B7325206F4 for ; Tue, 6 Oct 2020 19:47:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727169AbgJFTrs (ORCPT ); Tue, 6 Oct 2020 15:47:48 -0400 Received: from outbound-smtp27.blacknight.com ([81.17.249.195]:47372 "EHLO outbound-smtp27.blacknight.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725943AbgJFTrs (ORCPT ); Tue, 6 Oct 2020 15:47:48 -0400 Received: from mail.blacknight.com (pemlinmail06.blacknight.ie [81.17.255.152]) by outbound-smtp27.blacknight.com (Postfix) with ESMTPS id EF8E81620A6 for ; Tue, 6 Oct 2020 20:47:46 +0100 (IST) Received: (qmail 11003 invoked from network); 6 Oct 2020 19:47:46 -0000 Received: from unknown (HELO techsingularity.net) (mgorman@techsingularity.net@[84.203.22.4]) by 81.17.254.9 with ESMTPSA (AES256-SHA encrypted, authenticated); 6 Oct 2020 19:47:46 -0000 Date: Tue, 6 Oct 2020 20:47:45 +0100 From: Mel Gorman To: "Rafael J. Wysocki" Cc: Takashi Iwai , linux-kernel@vger.kernel.org Subject: Re: ACPI _CST introduced performance regresions on Haswll Message-ID: <20201006194745.GM3227@techsingularity.net> References: <20201006083639.GJ3227@techsingularity.net> <20201006190322.GL3227@techsingularity.net> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <20201006190322.GL3227@techsingularity.net> User-Agent: Mutt/1.10.1 (2018-07-13) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Oct 06, 2020 at 08:03:22PM +0100, Mel Gorman wrote: > On Tue, Oct 06, 2020 at 06:00:18PM +0200, Rafael J. Wysocki wrote: > > > server systems") and enable-cst is the commit. It was not fixed by 5.6 or > > > 5.9-rc8. A lot of bisections ended up here including kernel compilation, > > > tbench, syscall entry/exit microbenchmark, hackbench, Java workloads etc. > > > > > > What I don't understand is why. The latencies for c-state exit states > > > before and after the patch are both as follows > > > > > > /sys/devices/system/cpu/cpu0/cpuidle/state0/latency:0 > > > /sys/devices/system/cpu/cpu0/cpuidle/state1/latency:2 > > > /sys/devices/system/cpu/cpu0/cpuidle/state2/latency:10 > > > /sys/devices/system/cpu/cpu0/cpuidle/state3/latency:33 > > > /sys/devices/system/cpu/cpu0/cpuidle/state4/latency:133 > > > > > > Perf profiles did not show up anything interesting. A diff of > > > /sys/devices/system/cpu/cpu0/cpuidle/state0/ before and after the patch > > > showed up nothing interesting. Any idea why exactly this patch shows up > > > as being hazardous on Haswell in particular? > > > > > Presumably, some of the idle states are disabled by default on the affected > > machines. > > > > Can you check the disable and default_status attributes of each state before > > and after the commit in question? > > > > # grep . pre-cst/cpuidle/state*/disable Sorry, second attempt after thinking the results made no sense at all. Turns out I fat fingered setting up the enable-cst kernel the second time to collect what you asked for and the patch was not applied at all. # grep . pre-cst/cpuidle/state*/disable pre-cst/cpuidle/state0/disable:0 pre-cst/cpuidle/state1/disable:0 pre-cst/cpuidle/state2/disable:0 pre-cst/cpuidle/state3/disable:0 pre-cst/cpuidle/state4/disable:0 # grep . pre-cst/cpuidle/state*/default_status pre-cst/cpuidle/state0/default_status:enabled pre-cst/cpuidle/state1/default_status:enabled pre-cst/cpuidle/state2/default_status:enabled pre-cst/cpuidle/state3/default_status:enabled pre-cst/cpuidle/state4/default_status:enabled # grep . enable-cst/cpuidle/state*/disable enable-cst/cpuidle/state0/disable:0 enable-cst/cpuidle/state1/disable:0 enable-cst/cpuidle/state2/disable:0 enable-cst/cpuidle/state3/disable:1 enable-cst/cpuidle/state4/disable:1 # grep . enable-cst/cpuidle/state*/default_status enable-cst/cpuidle/state0/default_status:enabled enable-cst/cpuidle/state1/default_status:enabled enable-cst/cpuidle/state2/default_status:enabled enable-cst/cpuidle/state3/default_status:disabled enable-cst/cpuidle/state4/default_status:disabled That looks like C3 and C6 are disabled after the patch. # grep . enable-cst/cpuidle/state*/name enable-cst/cpuidle/state0/name:POLL enable-cst/cpuidle/state1/name:C1 enable-cst/cpuidle/state2/name:C1E enable-cst/cpuidle/state3/name:C3 enable-cst/cpuidle/state4/name:C6 -- Mel Gorman SUSE Labs