From: Gautham R Shenoy <ego@linux.vnet.ibm.com>
To: "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com>
Cc: Nathan Lynch <nathanl@linux.ibm.com>,
"Gautham R. Shenoy" <ego@linux.vnet.ibm.com>,
Tyrel Datwyler <tyreld@linux.ibm.com>,
linux-kernel@vger.kernel.org,
Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>,
Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>,
linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH 2/3] powerpc/sysfs: Show idle_purr and idle_spurr for every CPU
Date: Mon, 3 Feb 2020 10:20:14 +0530 [thread overview]
Message-ID: <20200203045013.GC13468@in.ibm.com> (raw)
In-Reply-To: <1575564547.si4rk0s96p.naveen@linux.ibm.com>
Hi Naveen,
On Thu, Dec 05, 2019 at 10:23:58PM +0530, Naveen N. Rao wrote:
> >diff --git a/arch/powerpc/kernel/sysfs.c b/arch/powerpc/kernel/sysfs.c
> >index 80a676d..42ade55 100644
> >--- a/arch/powerpc/kernel/sysfs.c
> >+++ b/arch/powerpc/kernel/sysfs.c
> >@@ -1044,6 +1044,36 @@ static ssize_t show_physical_id(struct device *dev,
> > }
> > static DEVICE_ATTR(physical_id, 0444, show_physical_id, NULL);
> >
> >+static ssize_t idle_purr_show(struct device *dev,
> >+ struct device_attribute *attr, char *buf)
> >+{
> >+ struct cpu *cpu = container_of(dev, struct cpu, dev);
> >+ unsigned int cpuid = cpu->dev.id;
> >+ struct lppaca *cpu_lppaca_ptr = paca_ptrs[cpuid]->lppaca_ptr;
> >+ u64 idle_purr_cycles = be64_to_cpu(cpu_lppaca_ptr->wait_state_cycles);
> >+
> >+ return sprintf(buf, "%llx\n", idle_purr_cycles);
> >+}
> >+static DEVICE_ATTR_RO(idle_purr);
> >+
> >+DECLARE_PER_CPU(u64, idle_spurr_cycles);
> >+static ssize_t idle_spurr_show(struct device *dev,
> >+ struct device_attribute *attr, char *buf)
> >+{
> >+ struct cpu *cpu = container_of(dev, struct cpu, dev);
> >+ unsigned int cpuid = cpu->dev.id;
> >+ u64 *idle_spurr_cycles_ptr = per_cpu_ptr(&idle_spurr_cycles, cpuid);
>
> Is it possible for a user to read stale values if a particular cpu is in an
> extended cede? Is it possible to use smp_call_function_single() to force the
> cpu out of idle?
Yes, if the CPU whose idle_spurr cycle is being read is still in idle,
then we will miss reporting the delta spurr cycles for this last
idle-duration. Yes, we can use an smp_call_function_single(), though
that will introduce IPI noise. How often will idle_[s]purr be read ?
>
> - Naveen
>
--
Thanks and Regards
gautham.
WARNING: multiple messages have this Message-ID (diff)
From: Gautham R Shenoy <ego@linux.vnet.ibm.com>
To: "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com>
Cc: "Gautham R. Shenoy" <ego@linux.vnet.ibm.com>,
Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>,
Michael Ellerman <mpe@ellerman.id.au>,
Nathan Lynch <nathanl@linux.ibm.com>,
Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>,
Tyrel Datwyler <tyreld@linux.ibm.com>,
linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH 2/3] powerpc/sysfs: Show idle_purr and idle_spurr for every CPU
Date: Mon, 3 Feb 2020 10:20:14 +0530 [thread overview]
Message-ID: <20200203045013.GC13468@in.ibm.com> (raw)
In-Reply-To: <1575564547.si4rk0s96p.naveen@linux.ibm.com>
Hi Naveen,
On Thu, Dec 05, 2019 at 10:23:58PM +0530, Naveen N. Rao wrote:
> >diff --git a/arch/powerpc/kernel/sysfs.c b/arch/powerpc/kernel/sysfs.c
> >index 80a676d..42ade55 100644
> >--- a/arch/powerpc/kernel/sysfs.c
> >+++ b/arch/powerpc/kernel/sysfs.c
> >@@ -1044,6 +1044,36 @@ static ssize_t show_physical_id(struct device *dev,
> > }
> > static DEVICE_ATTR(physical_id, 0444, show_physical_id, NULL);
> >
> >+static ssize_t idle_purr_show(struct device *dev,
> >+ struct device_attribute *attr, char *buf)
> >+{
> >+ struct cpu *cpu = container_of(dev, struct cpu, dev);
> >+ unsigned int cpuid = cpu->dev.id;
> >+ struct lppaca *cpu_lppaca_ptr = paca_ptrs[cpuid]->lppaca_ptr;
> >+ u64 idle_purr_cycles = be64_to_cpu(cpu_lppaca_ptr->wait_state_cycles);
> >+
> >+ return sprintf(buf, "%llx\n", idle_purr_cycles);
> >+}
> >+static DEVICE_ATTR_RO(idle_purr);
> >+
> >+DECLARE_PER_CPU(u64, idle_spurr_cycles);
> >+static ssize_t idle_spurr_show(struct device *dev,
> >+ struct device_attribute *attr, char *buf)
> >+{
> >+ struct cpu *cpu = container_of(dev, struct cpu, dev);
> >+ unsigned int cpuid = cpu->dev.id;
> >+ u64 *idle_spurr_cycles_ptr = per_cpu_ptr(&idle_spurr_cycles, cpuid);
>
> Is it possible for a user to read stale values if a particular cpu is in an
> extended cede? Is it possible to use smp_call_function_single() to force the
> cpu out of idle?
Yes, if the CPU whose idle_spurr cycle is being read is still in idle,
then we will miss reporting the delta spurr cycles for this last
idle-duration. Yes, we can use an smp_call_function_single(), though
that will introduce IPI noise. How often will idle_[s]purr be read ?
>
> - Naveen
>
--
Thanks and Regards
gautham.
next prev parent reply other threads:[~2020-02-03 4:52 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-27 12:01 [PATCH 0/3] pseries: Track and expose idle PURR and SPURR ticks Gautham R. Shenoy
2019-11-27 12:01 ` Gautham R. Shenoy
2019-11-27 12:01 ` [PATCH 1/3] powerpc/pseries: Account for SPURR ticks on idle CPUs Gautham R. Shenoy
2019-11-27 12:01 ` Gautham R. Shenoy
2019-12-03 13:39 ` Kamalesh Babulal
2019-12-04 22:24 ` Nathan Lynch
2019-12-04 22:24 ` Nathan Lynch
2020-02-03 4:45 ` Gautham R Shenoy
2020-02-03 4:45 ` Gautham R Shenoy
2019-11-27 12:01 ` [PATCH 2/3] powerpc/sysfs: Show idle_purr and idle_spurr for every CPU Gautham R. Shenoy
2019-11-27 12:01 ` Gautham R. Shenoy
2019-12-03 13:37 ` Kamalesh Babulal
2019-12-04 12:37 ` Gautham R Shenoy
2019-12-04 12:37 ` Gautham R Shenoy
2019-12-03 21:02 ` kbuild test robot
2019-12-03 21:02 ` kbuild test robot
2019-12-03 21:02 ` kbuild test robot
2019-12-04 22:24 ` Nathan Lynch
2019-12-04 22:24 ` Nathan Lynch
2020-02-03 4:47 ` Gautham R Shenoy
2020-02-03 4:47 ` Gautham R Shenoy
2019-12-05 16:53 ` Naveen N. Rao
2019-12-05 16:53 ` Naveen N. Rao
2020-02-03 4:50 ` Gautham R Shenoy [this message]
2020-02-03 4:50 ` Gautham R Shenoy
2020-02-04 7:52 ` Naveen N. Rao
2020-02-04 7:52 ` Naveen N. Rao
2020-02-05 4:19 ` Gautham R Shenoy
2020-02-05 4:19 ` Gautham R Shenoy
2020-02-05 6:58 ` Naveen N. Rao
2020-02-05 6:58 ` Naveen N. Rao
2020-02-05 7:08 ` Christophe Leroy
2020-02-05 8:07 ` Naveen N. Rao
2020-02-05 8:07 ` Naveen N. Rao
2019-11-27 12:01 ` [PATCH 3/3] Documentation: Document sysfs interfaces purr, spurr, idle_purr, idle_spurr Gautham R. Shenoy
2019-11-27 12:01 ` Gautham R. Shenoy
2019-12-04 22:25 ` Nathan Lynch
2019-12-04 22:25 ` Nathan Lynch
2019-12-04 22:24 ` [PATCH 0/3] pseries: Track and expose idle PURR and SPURR ticks Nathan Lynch
2019-12-04 22:24 ` Nathan Lynch
2019-12-05 15:03 ` Kamalesh Babulal
2019-12-05 15:03 ` Kamalesh Babulal
2019-12-05 16:16 ` Nathan Lynch
2019-12-05 16:16 ` Nathan Lynch
2019-12-05 17:25 ` Naveen N. Rao
2019-12-05 17:25 ` Naveen N. Rao
2019-12-06 9:14 ` Naveen N. Rao
2019-12-06 9:14 ` Naveen N. Rao
2020-02-04 9:12 ` Kamalesh Babulal
2020-02-04 9:12 ` Kamalesh Babulal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200203045013.GC13468@in.ibm.com \
--to=ego@linux.vnet.ibm.com \
--cc=kamalesh@linux.vnet.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=nathanl@linux.ibm.com \
--cc=naveen.n.rao@linux.vnet.ibm.com \
--cc=svaidy@linux.vnet.ibm.com \
--cc=tyreld@linux.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.