From nobody Sun Feb 8 14:22:21 2026 Received: from mail-lf1-f44.google.com (mail-lf1-f44.google.com [209.85.167.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 53360231827 for ; Mon, 19 Jan 2026 14:31:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768833092; cv=none; b=Hrpo4HFx/EeY3g+DHRQo2UMCqkzK/uicPrMXvKbCyovtW4PPqoZSFi30tQzIF97RhghFMlyIAhnzZp+BVvtqXk2bayP0wDeKngNz19Uyrst90cYCv5qycZEVmPUqSlAVrYkex++1fWbctrmVVu0yTMog65CJRSy5b9JHdKxN500= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768833092; c=relaxed/simple; bh=h63v7DdGLRtlIfqMHyUIhqVL2bPvgYNJszyikys8Ey8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rk0267ZD58spC3UlUH4ntCv2BZSXszZ4p5oqb6VEoQB3MoIkfVzKwxg6vW9tMsICgTvP8bEXhl8chKOjkFhPMzyXgtsId1SpTelSI7XQ2X2oKv2O3HTqnIWymv0QH3Rln75svhX5twpjUd1hTVgiVjSGpDFPV2YDTlGrh3W9E5Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=jbTEF4dx; arc=none smtp.client-ip=209.85.167.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="jbTEF4dx" Received: by mail-lf1-f44.google.com with SMTP id 2adb3069b0e04-59b6d5bd575so4332623e87.1 for ; Mon, 19 Jan 2026 06:31:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1768833088; x=1769437888; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jObY0CxQBZKbycpkPqiQaIebxzWVFrjrCXXvaXSeJs8=; b=jbTEF4dxHvxOfmchCA3x1GZ3X4YCD4jfAaVOaOwxCqoUAlMHfJc7BrFOhnZccHcLG7 42yU+MW4Emd6/siFKSOOM5LrJ/vTRfIwGs/iWVzAwyj6jxOOaasqTBm5Le3XXF+TpDr4 QpDPk+rQioXcP1jv2RsCX1DXp6C98yCMJfI6beDIbpRw9ok9WqV8Ygv5tJaRDhK7XVDm swz4lZXU9u/7oqr9AgyEa/lc9dAp6l9nMl6X2gf1JBQE7P/82tmzPH8Tk+bKQyBILbBZ R8LTjU7thHhvfZdGollf3SS4PNSNFPkxXkx+3yfbR1Z4AroTyNbEiiVIen381JEna0aX yqmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768833088; x=1769437888; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=jObY0CxQBZKbycpkPqiQaIebxzWVFrjrCXXvaXSeJs8=; b=PlLXKDFJeVbmx/CNDV1lZnR+3bDYYnHM/44FuT4LGUym8BDoBCIK+air3T7RBO2CjV IjqSESTgzx2MDBWdojAe7b3JCTJexq7cpy/2oaZ3C1uz5tTzMdD+pd+71BYMV1zGCX97 LkBnjuspimiBiyZwX8oYaQvmKITmTHbQIO69Gz7YNvK63ckvebFbHJtlcGQn6v21S4sG NQpoQ40EVUXXgb0BcKDqeAdIYFIRSvkcisVRoMMwJQpPXFOdkgxZqwJKXQAEy9gG0HUF zV4aW976hlfoIHcSM7/jsQWzeFV421mE5ATv2yW5mh1l2SZPARPriJFX9dzM2pPRt6IG bwWQ== X-Forwarded-Encrypted: i=1; AJvYcCXTBeub1pN+TXHAnw/YeZtb/H9pfqVIr8n/391HcEYxWYg9FPXdkrtdwe3sHTicy8exfAdTTGSdVayqo4Y=@vger.kernel.org X-Gm-Message-State: AOJu0YzjondcdyAJLsg7S6TcWj5s6pE6+HMUzvOPcuUiZUBmGaFmz7rN ULbNi7jrD19bjIFb3BgAsf2cSsJRTXQ6etTHAFERAJqciUVnHWOxzXcjsfYkuVKDR9g= X-Gm-Gg: AY/fxX5j+gG/fLz/7ejkWC0eHHwcNwHmXTQl7pogPxmE0LWBNgs7xmFkAhDj/zRpYpV 2k7PIAeqvhYIQJgWVgSOjAWiFTBVK3QCIj+svGb8sWXE/HvH/BU5zg5JNhYGFRnwYOY2u8IT1SP 1IPOVanRFRjnCTLPOzfa3I0BTZPe9XpxRwTALXciMzqfSMQ7jJznE5LgOxDNy1mPMEg0p9b/5fC azXBcULzUp8Mjqu1KLiWAlTbK6jSYEWCfVB7r0vORMMsayOsD+yhytlC96U1jZ27uM2qo+voITv gngAujC13JYSlBEylLmI2wIFb5bh7JWZzLJBv5+rZesgKr40xaDqqFhd5oOlyhz12lGZr8guVFx sFI6xnMclRunT52UaYZqQJAxZyeNX0S5wKrp+91MLQHK5chtB9kyokkOgFD/Ihc8JeQH6c2eOsE UoXoB9wOWgz/3KNVSBaMgoMJ8ahIRZJLJQzYZh6xMMDHBbR08/aAPDOD+jiA0d X-Received: by 2002:a05:6512:b95:b0:59b:7e2b:33db with SMTP id 2adb3069b0e04-59baeef6d5bmr3309809e87.28.1768833088255; Mon, 19 Jan 2026 06:31:28 -0800 (PST) Received: from uffe-tuxpro14.. (h-178-174-189-39.A498.priv.bahnhof.se. [178.174.189.39]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-59baf33e7fcsm3407211e87.20.2026.01.19.06.31.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Jan 2026 06:31:27 -0800 (PST) From: Ulf Hansson To: Ulf Hansson , Dhruva Gole , linux-pm@vger.kernel.org Cc: "Rafael J . Wysocki" , Kevin Hilman , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/3] pmdomain: core: Restructure domain idle states data for genpd in debugfs Date: Mon, 19 Jan 2026 15:31:13 +0100 Message-ID: <20260119143121.161583-2-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260119143121.161583-1-ulf.hansson@linaro.org> References: <20260119143121.161583-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" To prepare for additional information to be added for the domain idle states in genpd's debugfs, let's make the existing information denser. To allow that, let's move the static information of the domain idle states into a separate debugfs file. Signed-off-by: Ulf Hansson Reviewed-by: Kevin Hilman --- drivers/pmdomain/core.c | 43 ++++++++++++++++++++++++++++++++--------- 1 file changed, 34 insertions(+), 9 deletions(-) diff --git a/drivers/pmdomain/core.c b/drivers/pmdomain/core.c index bf82775f6a67..919dff2081d6 100644 --- a/drivers/pmdomain/core.c +++ b/drivers/pmdomain/core.c @@ -3772,11 +3772,11 @@ static int idle_states_show(struct seq_file *s, voi= d *data) if (ret) return -ERESTARTSYS; =20 - seq_puts(s, "State Time Spent(ms) Usage Rejected Above = Below\n"); + seq_puts(s, "State Time(ms) Usage Rejected Above Below= \n"); =20 for (i =3D 0; i < genpd->state_count; i++) { struct genpd_power_state *state =3D &genpd->states[i]; - char state_name[15]; + char state_name[7]; =20 idle_time +=3D state->idle_time; =20 @@ -3788,14 +3788,36 @@ static int idle_states_show(struct seq_file *s, voi= d *data) } } =20 - if (!state->name) - snprintf(state_name, ARRAY_SIZE(state_name), "S%-13d", i); - + snprintf(state_name, ARRAY_SIZE(state_name), "S%-5d", i); do_div(idle_time, NSEC_PER_MSEC); - seq_printf(s, "%-14s %-14llu %-10llu %-10llu %-10llu %llu\n", - state->name ?: state_name, idle_time, - state->usage, state->rejected, state->above, - state->below); + seq_printf(s, "%-6s %-14llu %-10llu %-10llu %-10llu %llu\n", + state_name, idle_time, state->usage, state->rejected, + state->above, state->below); + } + + genpd_unlock(genpd); + return ret; +} + +static int idle_states_desc_show(struct seq_file *s, void *data) +{ + struct generic_pm_domain *genpd =3D s->private; + unsigned int i; + int ret =3D 0; + + ret =3D genpd_lock_interruptible(genpd); + if (ret) + return -ERESTARTSYS; + + seq_puts(s, "State Name\n"); + + for (i =3D 0; i < genpd->state_count; i++) { + struct genpd_power_state *state =3D &genpd->states[i]; + char state_name[7]; + + snprintf(state_name, ARRAY_SIZE(state_name), "S%-5d", i); + seq_printf(s, "%-6s %s\n", + state_name, state->name ?: "N/A"); } =20 genpd_unlock(genpd); @@ -3891,6 +3913,7 @@ DEFINE_SHOW_ATTRIBUTE(summary); DEFINE_SHOW_ATTRIBUTE(status); DEFINE_SHOW_ATTRIBUTE(sub_domains); DEFINE_SHOW_ATTRIBUTE(idle_states); +DEFINE_SHOW_ATTRIBUTE(idle_states_desc); DEFINE_SHOW_ATTRIBUTE(active_time); DEFINE_SHOW_ATTRIBUTE(total_idle_time); DEFINE_SHOW_ATTRIBUTE(devices); @@ -3911,6 +3934,8 @@ static void genpd_debug_add(struct generic_pm_domain = *genpd) d, genpd, &sub_domains_fops); debugfs_create_file("idle_states", 0444, d, genpd, &idle_states_fops); + debugfs_create_file("idle_states_desc", 0444, + d, genpd, &idle_states_desc_fops); debugfs_create_file("active_time", 0444, d, genpd, &active_time_fops); debugfs_create_file("total_idle_time", 0444, --=20 2.43.0 From nobody Sun Feb 8 14:22:21 2026 Received: from mail-lf1-f42.google.com (mail-lf1-f42.google.com [209.85.167.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4E0113587B9 for ; Mon, 19 Jan 2026 14:31:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768833093; cv=none; b=MsFcyez5qpXQbI3zBSo21YFEr6jfmiqIDDrS3DVg8TqwKqK9FBTe8GUWzRVEzPEKH66NIak3cMlnsDyDW60vRdkt1zdjrEQl47DLiZ43B+lv/3B7n1UO23TxxIIqX0xc0aZ/b50rFEwtX8fRs69yu9RIKv6JP7S0trrwtHpcr6s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768833093; c=relaxed/simple; bh=yGeQdbn6x9oSBbHSzCn9rm1Vz2KBAcj4GxREfHkdZRs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YwutQYPTXRp6RYQ3P6wGbB85716nyRETiycpyvZIVjKTk1pqyom0yL1JjLeH7sxWVoEnuyN/Q/TsEMJ6aRYgpYmS2j3tmEpR+PqrJ47Y8TyKpQPg/b2ylmeytFfEnYw6URO4eL6niXBU3tGAossFHW6/7edQgYJbTirPQo0loaQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=x7XnROix; arc=none smtp.client-ip=209.85.167.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="x7XnROix" Received: by mail-lf1-f42.google.com with SMTP id 2adb3069b0e04-59b7c2614f7so3959878e87.3 for ; Mon, 19 Jan 2026 06:31:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1768833089; x=1769437889; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=b/GHq/FwupelaKODLYbp4EN6rGymDtQOU5bIeaMRLa0=; b=x7XnROixH/kzrYc0lgRug5jC/OECF9NYqqNZYkpOIASx7kLoqD+qP8XnXb2lHYLqZ0 l04D6qnqeWKf8i6imX1mIutq3qnCCCjMh6DqLkhaDszBo/bQ+MUnzij3b6/JNJ5PLG0f kR9wSbvKYkUEeQT0BzPuoIi7Sl/dTF77RF44+BgjNvypUv1diSNrI+QalF3Boiq6TlPT tU2uCAq5G2zgih4sQpbE+HQgSMDknbKf0TNk9NFgvLdgOfbzqxqvtanZ/PHWIkAwzgrC WWHGu25JE/mlMcC9bj8NaJ39WFyaw4RWFXwdJaNYJg4ssFcdhfkV2mjo8IVoktip7X+b k9ww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768833089; x=1769437889; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=b/GHq/FwupelaKODLYbp4EN6rGymDtQOU5bIeaMRLa0=; b=fUiO4u3j9/Jenj6I107SNCCg8K7A6KlHAE3bkItJud/bqhUwZ3BogBB3TbdFgHZsmI GH0PGhCJw70/cpNvCce2u5TFMlCwaAJDs9D29NkGewpfnDRo6WR25skL1Q9uN4ION2ra vbPZWsvX8SEH5YwIPj7trEgUzdwqM1PqWD7zLYclZF/zlDWTIa36PsAmMPN4Xekd+DXA ARtySjpIzFCITf+WcND4Iwl/zgga9xFp8Q2AEzuGqlCgob3T3wOI4pb0o8KhOAYp239p Nbkea6m9DVcq0LCgDQGRxYTUqrk8CxNr2q0I7oKTiVOFxLvGtHKxCtI2vTHPP5VhQKXm sBpg== X-Forwarded-Encrypted: i=1; AJvYcCWpjIba9q/0zkuB1XKWVDkY9jFxDJ0Xumef8WrMUs4mVzQTsyetZ9r65VxFdhwe12PYgjoC2HLpO44bCAM=@vger.kernel.org X-Gm-Message-State: AOJu0Yx+Zx411faQ7xCxF0arVgayp3RvYPGSWZj+Xk+GxgowBeqbl0M1 VS+KhvPEwkUvtR2DsIWM85HcfQfgrPYeuuqwEU0wGwSXlmLn2DSU/ALBY4BgfsbBDB8= X-Gm-Gg: AY/fxX6V3OxqoTt3RXy0q0sRV9R+XJ3UfD536qcanNXcT4BWaLoZuChvSd36C065XcX /hLo8BWNWqlqNyy97O39dNG2/byc4knJ5ROwefPBK+NYQW9gRlY+oocK00LW9j55TSPWhWyAAh7 ++eqxmca0PU1CI/++OIPSCoTCkIoYHQF0u8JreQsckGwWl4VmGAjceYm8avx+63sWg1q/Pf8v3u /E/PYr/YJK1lAoH/rDkWA3WRDBu/6E1klGd7d9lYazOzr8IaMpQ0jLNWGbPrYJWbwVrGWR5yHk6 uhMaL4+a+sZlwK0vy4F/LDE6S+RXjI/ZnGcqYbIduMBqDTho4Nmkrdns1KU1SYEnwy1bPVsA9pC unIksWgVs/v/IWcl28Y1F21NdcmT+vDyK29TF/TjVVPeLcGrCIWX2Kr8rTA8m+5HPPAUpuRDrdS G5emYugZD9pWVSMJybDJZcpe5pLJqlWdzWeYX5lUTpNrSPgyq4VGl/F4NtpSHY X-Received: by 2002:a05:6512:33cc:b0:59b:7a1e:d3e with SMTP id 2adb3069b0e04-59baeef85d1mr4063767e87.43.1768833089322; Mon, 19 Jan 2026 06:31:29 -0800 (PST) Received: from uffe-tuxpro14.. (h-178-174-189-39.A498.priv.bahnhof.se. [178.174.189.39]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-59baf33e7fcsm3407211e87.20.2026.01.19.06.31.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Jan 2026 06:31:28 -0800 (PST) From: Ulf Hansson To: Ulf Hansson , Dhruva Gole , linux-pm@vger.kernel.org Cc: "Rafael J . Wysocki" , Kevin Hilman , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/3] pmdomain: core: Show latency/residency for domain idle states in debugfs Date: Mon, 19 Jan 2026 15:31:14 +0100 Message-ID: <20260119143121.161583-3-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260119143121.161583-1-ulf.hansson@linaro.org> References: <20260119143121.161583-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Similar to how cpuidle provides the values for latency and residency for CPU's idle states through sysfs, let's make the corresponding data for PM domain's idle states available for user space, via genpd's debugfs support. Suggested-by: Dhruva Gole Signed-off-by: Ulf Hansson Reviewed-by: Dhruva Gole Reviewed-by: Kevin Hilman --- drivers/pmdomain/core.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/drivers/pmdomain/core.c b/drivers/pmdomain/core.c index 919dff2081d6..bf512ff0857d 100644 --- a/drivers/pmdomain/core.c +++ b/drivers/pmdomain/core.c @@ -3809,15 +3809,24 @@ static int idle_states_desc_show(struct seq_file *s= , void *data) if (ret) return -ERESTARTSYS; =20 - seq_puts(s, "State Name\n"); + seq_puts(s, "State Latency(us) Residency(us) Name\n"); =20 for (i =3D 0; i < genpd->state_count; i++) { struct genpd_power_state *state =3D &genpd->states[i]; + u64 latency, residency; char state_name[7]; =20 + latency =3D state->power_off_latency_ns + + state->power_on_latency_ns; + do_div(latency, NSEC_PER_USEC); + + residency =3D state->residency_ns; + do_div(residency, NSEC_PER_USEC); + snprintf(state_name, ARRAY_SIZE(state_name), "S%-5d", i); - seq_printf(s, "%-6s %s\n", - state_name, state->name ?: "N/A"); + seq_printf(s, "%-6s %-12llu %-14llu %s\n", + state_name, latency, residency, + state->name ?: "N/A"); } =20 genpd_unlock(genpd); --=20 2.43.0 From nobody Sun Feb 8 14:22:21 2026 Received: from mail-lf1-f52.google.com (mail-lf1-f52.google.com [209.85.167.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5C2DC362136 for ; Mon, 19 Jan 2026 14:31:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768833094; cv=none; b=sU9usr7bYm6n+N0rByATYSGVE+YmZQnIyHMWqYG26gF65AmD4gbQm6vjGJJE9v9FXyJTRe4YtsI24pNWrhQBTk2IQeWhzMdknX8/Byq2CHrMHSrFLKDMmAUAIwukxGFV2CiT12vWZINMJKk2egNJBXVFxTEEPr0nciX8vBsVuJc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768833094; c=relaxed/simple; bh=9+QkNdO5VQ2yPX0vM4RE6f2/Gi4gkhAf8OoCEvuCYjg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QVD/T8ldd+ZoJFMOo8c0ZwumeykPrv/Wtn2RAkZCGibauUdngKrgDBSmmstuRW1pTHeAgQj9Qw9fYKYPT/z025UjmH7okeseIACA7MTm1r84c2zKYqD143TAsdKESzpAEt7c1vBIQ6GFuCjA5qzx/oGAYTvy+7X8e/fXrj6fTUY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=Bs/DKRdb; arc=none smtp.client-ip=209.85.167.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="Bs/DKRdb" Received: by mail-lf1-f52.google.com with SMTP id 2adb3069b0e04-59b30275e69so5473497e87.1 for ; Mon, 19 Jan 2026 06:31:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1768833090; x=1769437890; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=64A4cniu7Nu112V7CHRL//FijlPeEL9Dny3BjkKYjlY=; b=Bs/DKRdbQUuEmQcwfrCaVcs4LS3vObov/7EJR0XQhrgj2lNtOzCkkM3lip8ycaMvdT /eMnepArYxb7PrjSYO1iv6vdVW70wEOMcVyFmWPcxSQPF3n0e14eIh+IwqcDaA9Ihqkt QXIKlIjZbcZexAcgBFdfW2zZ9Tcr1nuF5FM3tJPp+Np9AC40X1gUOihnXZA914QyfA48 WaJdQmKE74kKRhfWMH4ibOEj9aZ6yDQqyTz8SYUyRjLpnp6cr+qPtBa3R7MwleAx9YVP LqeSi+al0VssouWBDLDj8hoXS2X/UwTgOkBWz4RtKPO8F7VfFV/AKt5xnqPRE4eEU2Nu aUvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768833090; x=1769437890; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=64A4cniu7Nu112V7CHRL//FijlPeEL9Dny3BjkKYjlY=; b=Dy01fLdJLmZhtW0DrpDg22cPWL4C66+wBmG5z6fsDFv40NVH8x/Q+shnJHbBwXcSjn EtIYaefGaRUVfGDBbOKdcxksXr2gNo+B9Ohs564f+kath+ad7WkFm1r7KthfN3kuvBW2 et6ZFdNp+hSJcJGyIu7JPDn7tDLestAduyZdKizH27z4SPb6icbs4okMtnn62rfFvjiu AwtnvmHUaLAHluH2bZclAFAhoddJL5QlBKpji4yH2fIUrdauZ3Jf9i2BuKP8zZIxmaHY 9GPjkwUpbOQBlfGvstnz4Y4G+C4MWxLQcDRxXXb/24Xr4uE5Rh3Ox22+vWhIqmt0F+N0 jLUA== X-Forwarded-Encrypted: i=1; AJvYcCUfrH73UzI37sRh8tRfsZzXhtG8JzuSfgxEpGHbUWSGKrOrV6Z13kFU4MAdrcmlZ3XyJZgCDoQ4LS2AMn0=@vger.kernel.org X-Gm-Message-State: AOJu0YwN02t5yf2/daQPmp1eH3l4O5Ic0jjqLhT8d/0Ew7UxZBdhjcbo F7bd2rnLkYgmEjxpGTqAfrNzIS7ur3oEyHd7lv1DDDLuRNhUKi9dZjXNF5A3eFgxU4U= X-Gm-Gg: AY/fxX59SQEVticYILwCYgtn5OkP5ibTR21pN5m9df4gc9NutfvZdWd2kvcLbMY0L+d onH3EaM55cNQnJ2N5mT6HjdQWDnT3m90tms/rtd8xrmaQ5JMLgeerB54nAndrJrb3ZP2s4t/NwI +w0m/E89NkN2P19+Oa6fgGNZ74jyD6HiHfGVp3tK2hhg/R7HQ+Z2+NlYFLZIHGbJe1v4YRqCO3u 3cx4VuBYkvTGAKJBawYKPKgcV2bTQFYdtZr5zCuhG3t9ucQjuZlHhCk4FJRUQMzOyKEET1xvJLr HHZTzIxUQtOHbMjYwm1Yk94q5g5X6Cpler79NPdfQGmho1uVCC+Tfpolw6Ev1NKNS8Pb6MkU2BV 6zyFzA4NKaDy5KdeDBtnTffL60w1zewocU9/zot1zRFQ8X6uWSwIyUg5P3Vo0/XNemvS0076XwE Gri120ftbqs/lqtt41wVs9NeNtPjrf7QYmVU+ee+21HmGoo98XA/a5aAwPACXU X-Received: by 2002:a05:6512:b1a:b0:59c:ba5a:c085 with SMTP id 2adb3069b0e04-59cba5ac2d3mr1685282e87.0.1768833090357; Mon, 19 Jan 2026 06:31:30 -0800 (PST) Received: from uffe-tuxpro14.. (h-178-174-189-39.A498.priv.bahnhof.se. [178.174.189.39]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-59baf33e7fcsm3407211e87.20.2026.01.19.06.31.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Jan 2026 06:31:29 -0800 (PST) From: Ulf Hansson To: Ulf Hansson , Dhruva Gole , linux-pm@vger.kernel.org Cc: "Rafael J . Wysocki" , Kevin Hilman , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/3] pmdomain: core: Extend statistics for domain idle states with s2idle data Date: Mon, 19 Jan 2026 15:31:15 +0100 Message-ID: <20260119143121.161583-4-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260119143121.161583-1-ulf.hansson@linaro.org> References: <20260119143121.161583-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" To allow user space to monitor the selection of the domain idle state during s2idle for a CPU PM domain, let's extend the debugfs support in genpd with this information. Suggested-by: Dhruva Gole Signed-off-by: Ulf Hansson Reviewed-by: Dhruva Gole Reviewed-by: Kevin Hilman --- drivers/pmdomain/core.c | 13 ++++++++++--- include/linux/pm_domain.h | 1 + 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/drivers/pmdomain/core.c b/drivers/pmdomain/core.c index bf512ff0857d..bb04cb7ccdcd 100644 --- a/drivers/pmdomain/core.c +++ b/drivers/pmdomain/core.c @@ -1438,6 +1438,13 @@ static void genpd_sync_power_off(struct generic_pm_d= omain *genpd, bool use_lock, return; } else { genpd->states[genpd->state_idx].usage++; + + /* + * The ->system_power_down_ok() callback is currently used only + * for s2idle. Use it to know when to update the usage counter. + */ + if (genpd->gov && genpd->gov->system_power_down_ok) + genpd->states[genpd->state_idx].usage_s2idle++; } =20 genpd->status =3D GENPD_STATE_OFF; @@ -3772,7 +3779,7 @@ static int idle_states_show(struct seq_file *s, void = *data) if (ret) return -ERESTARTSYS; =20 - seq_puts(s, "State Time(ms) Usage Rejected Above Below= \n"); + seq_puts(s, "State Time(ms) Usage Rejected Above Below= S2idle\n"); =20 for (i =3D 0; i < genpd->state_count; i++) { struct genpd_power_state *state =3D &genpd->states[i]; @@ -3790,9 +3797,9 @@ static int idle_states_show(struct seq_file *s, void = *data) =20 snprintf(state_name, ARRAY_SIZE(state_name), "S%-5d", i); do_div(idle_time, NSEC_PER_MSEC); - seq_printf(s, "%-6s %-14llu %-10llu %-10llu %-10llu %llu\n", + seq_printf(s, "%-6s %-14llu %-10llu %-10llu %-10llu %-10llu %llu\n", state_name, idle_time, state->usage, state->rejected, - state->above, state->below); + state->above, state->below, state->usage_s2idle); } =20 genpd_unlock(genpd); diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h index 93ba0143ca47..f6f6d494f728 100644 --- a/include/linux/pm_domain.h +++ b/include/linux/pm_domain.h @@ -183,6 +183,7 @@ struct genpd_power_state { u64 rejected; u64 above; u64 below; + u64 usage_s2idle; struct fwnode_handle *fwnode; u64 idle_time; void *data; --=20 2.43.0