From nobody Tue Feb 10 07:39:15 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 --- 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