From patchwork Thu Dec 7 10:19:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mario Limonciello X-Patchwork-Id: 1873559 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com (client-ip=185.125.189.65; helo=lists.ubuntu.com; envelope-from=fwts-devel-bounces@lists.ubuntu.com; receiver=patchwork.ozlabs.org) Received: from lists.ubuntu.com (lists.ubuntu.com [185.125.189.65]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4SmX7n2J89z23nS for ; Fri, 8 Dec 2023 11:29:08 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=lists.ubuntu.com) by lists.ubuntu.com with esmtp (Exim 4.86_2) (envelope-from ) id 1rBOjk-0003K5-Vm; Fri, 08 Dec 2023 00:29:01 +0000 Received: from mail-mw2nam12on2053.outbound.protection.outlook.com ([40.107.244.53] helo=NAM12-MW2-obe.outbound.protection.outlook.com) by lists.ubuntu.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1rBOjh-0003Jc-AZ for fwts-devel@lists.ubuntu.com; Fri, 08 Dec 2023 00:28:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PUv9cyrTlFSPhWopTz779EDSKL5ODoJ4B2jdobdqhfx5edyPR1rECFvWLxOhej4JyTlj07bdtwMP3zEQfE7A0o66lM0zxGpS3GPFFLOPO9S2BekhRryN/0b9tC73YXF8BLMKQgPJgG1qoyTv/4NA1uVAWd4c4U8IIlAAIGaWnIbc7m7W3aAHKJNC20oFoO00j8JO3g7W+mefi97bkGcU7h+dO6q5ybMDAdl4rhCNmd9EdbRLkN+z4G0gwbzvbECWefXdvhU8Po51XsDXErsqLwHXm2xdbOSRWiy9ew2yTO94AIURYaEMczUn8Wa/3E1RD/21uB46FlLZAbd5+dI89g== 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=BULQKbbBCwq258q0h3OBYw2WqOCSfHWKZDRedKHNTpw=; b=B6Gqq4EnNmubnVVcCVi9ljHQ/lwPZfvy1O047h+PbyPgeQiwwsCON95n5GfzPfR3x1Ic2IY2uRqNkwqqrHektON052d4kWNnuU8PNS10mwiU0tQZxfa3DXLM/iFxIFqWtJnsKTakbYekPBJ6abFhk1+XrkwrRNNhawNkgwfAwVeTMmaMnm08TpnMpjhB97jYcOpiaaagiw7wQrqw2gzhCoteY41EoOc/ih7ZyTMlgvAEmYUQn5FAKUlLFOj1UHQDkgIEH5yOSKyiaGO/+Wqa71fU1lKcO+epDQ1nztQ+YR9Fv0e/K56onWGG0SlPtJ0JoptbXrK5A0wh7E72WBM9VA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.ubuntu.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) Received: from SA1P222CA0002.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:22c::9) by CH0PR12MB5089.namprd12.prod.outlook.com (2603:10b6:610:bc::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.27; Fri, 8 Dec 2023 00:28:53 +0000 Received: from SA2PEPF00001509.namprd04.prod.outlook.com (2603:10b6:806:22c:cafe::ca) by SA1P222CA0002.outlook.office365.com (2603:10b6:806:22c::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.25 via Frontend Transport; Fri, 8 Dec 2023 00:28:53 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by SA2PEPF00001509.mail.protection.outlook.com (10.167.242.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7068.20 via Frontend Transport; Fri, 8 Dec 2023 00:28:53 +0000 Received: from AUS-P9-MLIMONCI.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Thu, 7 Dec 2023 18:28:50 -0600 From: Mario Limonciello To: Subject: [PATCH 2/3] s3: Add support for checking last sleep cycle residency Date: Thu, 7 Dec 2023 04:19:26 -0600 Message-ID: <20231207101927.9378-3-mario.limonciello@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231207101927.9378-1-mario.limonciello@amd.com> References: <20231207101927.9378-1-mario.limonciello@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PEPF00001509:EE_|CH0PR12MB5089:EE_ X-MS-Office365-Filtering-Correlation-Id: 76482ab5-4d24-4509-f04a-08dbf784a85d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: eX80cWpyn1jN9/067NihdEpmnkygL+j085zyLaecGWyKrMtmJ/ifmlkmstv1mIB2qb6PigoKV2gddoHWR5icDjc2hC/HFjl36ReYk4UTQy4s5NMDrQtc708MXEqP0DsHCFMbhRiU5cKgqYj9xmYhxS4R+adNb99lKrGK1lAWyc+SG5Tat/PB/W5uPhL6fWHGH7yf2g/DB36nZW/i3WAtK5lBcigKX5GlCjR3OMjkTAlfAKE3lDDbzyebNonffCD+V7Vp9WikfKWp3mPbSbDGLDwz5ksI6R3a//I6Vq+/tbpNDSpxx6B1x3SnahKxik0Mg8q8lKKAxDp3y3OFXkRRO7NDes5DMiccA1Hfl198NjUgHc5wUFdIgw8pD0shqkaYiZwhQRdzqINDM+Kx5EdJkrab8DiL2zThes0Kh9ZRzw+P/juvVZ4BaekBg5q5Ec1Ee6OHsZjLr+HzNSosmFkYPFqGh2itXKFllw+4G8M6VToFUhjjcg0D9rZE0/UVDIIax4/xF6kEFiyKj35OQGFCdmhvWJqS0oyU5Pz6DjCsKE7j0rGEOCItvxyVpj15/1mPWoKCzO8gKHuwoiD8zn4zM7HzW/SQf+yRzE1FFA/ZyQfi820rMplYdEAxsjkkgz3PcvA6VNvSgWYnZKXgIThO+G+Q9fkX3LOCJ9pFnfSw0n7aXiox1hYZofKNq4E9eeehv3DxsJ/DmtbV0NHJbe0WsEK9ZNwPa8Uch/8Tqtm8RvkxC+umox10SGm45GfnAbwlzU+gkSv6ZryxwkE4y+/6aA== X-Forefront-Antispam-Report: CIP:165.204.84.17; CTRY:US; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:SATLEXMB04.amd.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230031)(4636009)(376002)(346002)(136003)(39860400002)(396003)(230922051799003)(64100799003)(82310400011)(186009)(1800799012)(451199024)(36840700001)(40470700004)(46966006)(81166007)(356005)(41300700001)(44832011)(4326008)(2906002)(6666004)(83380400001)(336012)(7696005)(426003)(8936002)(82740400003)(40480700001)(40460700003)(5660300002)(86362001)(36756003)(36860700001)(316002)(478600001)(6916009)(70206006)(966005)(47076005)(26005)(16526019)(1076003)(2616005)(70586007)(8676002)(36900700001); DIR:OUT; SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2023 00:28:53.4904 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 76482ab5-4d24-4509-f04a-08dbf784a85d X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.17]; Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SA2PEPF00001509.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR12MB5089 X-BeenThere: fwts-devel@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Firmware Test Suite Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mario Limonciello Errors-To: fwts-devel-bounces@lists.ubuntu.com Sender: "fwts-devel" A good system will spend at least 70% of an s2idle sleep cycle in a hardware sleep state. Check for this. Link: https://bugs.launchpad.net/fwts/+bug/2019728 Signed-off-by: Mario Limonciello Acked-by: Ivan Hu --- src/acpi/s3/s3.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/acpi/s3/s3.c b/src/acpi/s3/s3.c index ba705441..222d9f57 100644 --- a/src/acpi/s3/s3.c +++ b/src/acpi/s3/s3.c @@ -33,6 +33,7 @@ #define PM_SUSPEND_PMUTILS "pm-suspend" #define PM_SUSPEND_HYBRID_PMUTILS "pm-suspend-hybrid" #define PM_SUSPEND_PATH "/sys/power/mem_sleep" +#define PM_SUSPEND_LAST_HW_SLEEP "/sys/power/suspend_stats/last_hw_sleep" #define PM_SUSPEND_TOTAL_HW_SLEEP "/sys/power/suspend_stats/total_hw_sleep" #define WAKEUP_SOURCE_PATH "/sys/kernel/debug/wakeup_sources" #define INTEL_PM_S2IDLE_SLP_S0 "/sys/kernel/debug/pmc_core/slp_s0_residency_usec" @@ -377,6 +378,22 @@ static uint64_t get_uint64_sysfs(const char *path) return val; } +/* + * get_last_s2idle_residency() + * + * Returns: + * - Hardware sleep residency from the last sleep cycle + * - 0 if it is not available + * + */ +static uint64_t get_last_s2idle_residency(void) +{ + if (access(PM_SUSPEND_LAST_HW_SLEEP, F_OK) != 0) + return 0; + + return get_uint64_sysfs(PM_SUSPEND_LAST_HW_SLEEP); +} + /* * get_total_s2idle_residency() * @fname: Optional parameter to set the filename used to check residency @@ -562,6 +579,18 @@ static int s3_do_suspend_resume(fwts_framework *fw, fname, *total_s2idle_residency, residency); } *total_s2idle_residency = residency; + + residency = get_last_s2idle_residency(); + if (duration > 10 && residency) { + float pct = (float)residency / ((float)duration * 1000000) * 100.0; + if (pct < 70) { + (*s2idle_errors)++; + fwts_failed(fw, LOG_LEVEL_HIGH, "S2idleNotDeepest", + "Expected %s to be at least 70%% of the last sleep cycle, got %.2f%%.", + PM_SUSPEND_LAST_HW_SLEEP, pct); + } else + fwts_log_info(fw, "Spent %.2f%% of %ds in hardware sleep state", pct, duration); + } } if (duration < delay) {