* [PATCH] powerpc/kernel/sysfs: Export ldbar spr to sysfs
@ 2017-10-27 9:34 Anju T Sudhakar
2017-10-30 10:26 ` kbuild test robot
2017-10-30 11:56 ` Madhavan Srinivasan
0 siblings, 2 replies; 3+ messages in thread
From: Anju T Sudhakar @ 2017-10-27 9:34 UTC (permalink / raw)
To: mpe; +Cc: linuxppc-dev, linux-kernel, maddy, anju
Add ldbar spr to sysfs. The spr will hold thread level In-Memory Collection (IMC)
counter configuration data.
Signed-off-by: Anju T Sudhakar <anju@linux.vnet.ibm.com>
Acked-by: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
---
arch/powerpc/kernel/sysfs.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/arch/powerpc/kernel/sysfs.c b/arch/powerpc/kernel/sysfs.c
index 4437c70c7c2b..8efcaece4796 100644
--- a/arch/powerpc/kernel/sysfs.c
+++ b/arch/powerpc/kernel/sysfs.c
@@ -466,6 +466,7 @@ static ssize_t __used \
#ifdef HAS_PPC_PMC_CLASSIC
SYSFS_PMCSETUP(mmcr0, SPRN_MMCR0);
SYSFS_PMCSETUP(mmcr1, SPRN_MMCR1);
+SYSFS_PMCSETUP(ldbar, SPRN_LDBAR);
SYSFS_PMCSETUP(pmc1, SPRN_PMC1);
SYSFS_PMCSETUP(pmc2, SPRN_PMC2);
SYSFS_PMCSETUP(pmc3, SPRN_PMC3);
@@ -492,6 +493,7 @@ SYSFS_SPRSETUP(pir, SPRN_PIR);
Lets be conservative and default to pseries.
*/
static DEVICE_ATTR(mmcra, 0600, show_mmcra, store_mmcra);
+static DEVICE_ATTR(ldbar, 0600, show_ldbar, store_ldbar);
static DEVICE_ATTR(spurr, 0400, show_spurr, NULL);
static DEVICE_ATTR(purr, 0400, show_purr, store_purr);
static DEVICE_ATTR(pir, 0400, show_pir, NULL);
@@ -757,6 +759,9 @@ static int register_cpu_online(unsigned int cpu)
device_create_file(s, &pmc_attrs[i]);
#ifdef CONFIG_PPC64
+ if (cpu_has_feature(CPU_FTR_ARCH_300))
+ device_create_file(s, &dev_attr_ldbar);
+
if (cpu_has_feature(CPU_FTR_MMCRA))
device_create_file(s, &dev_attr_mmcra);
@@ -842,6 +847,9 @@ static int unregister_cpu_online(unsigned int cpu)
device_remove_file(s, &pmc_attrs[i]);
#ifdef CONFIG_PPC64
+ if (cpu_has_feature(CPU_FTR_ARCH_300))
+ device_remove_file(s, &dev_attr_ldbar);
+
if (cpu_has_feature(CPU_FTR_MMCRA))
device_remove_file(s, &dev_attr_mmcra);
--
2.14.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] powerpc/kernel/sysfs: Export ldbar spr to sysfs
2017-10-27 9:34 [PATCH] powerpc/kernel/sysfs: Export ldbar spr to sysfs Anju T Sudhakar
@ 2017-10-30 10:26 ` kbuild test robot
2017-10-30 11:56 ` Madhavan Srinivasan
1 sibling, 0 replies; 3+ messages in thread
From: kbuild test robot @ 2017-10-30 10:26 UTC (permalink / raw)
To: Anju T Sudhakar; +Cc: kbuild-all, mpe, linuxppc-dev, linux-kernel, maddy, anju
[-- Attachment #1: Type: text/plain, Size: 8243 bytes --]
Hi Anju,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on powerpc/next]
[also build test ERROR on v4.14-rc7 next-20171018]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Anju-T-Sudhakar/powerpc-kernel-sysfs-Export-ldbar-spr-to-sysfs/20171030-155220
base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: powerpc-storcenter_defconfig (attached as .config)
compiler: powerpc-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=powerpc
All error/warnings (new ones prefixed by >>):
>> arch/powerpc/kernel/sysfs.c:419:16: error: 'show_ldbar' defined but not used [-Werror=unused-function]
static ssize_t show_##NAME(struct device *dev, \
^
>> arch/powerpc/kernel/sysfs.c:443:2: note: in expansion of macro '__SYSFS_SPRSETUP_SHOW_STORE'
__SYSFS_SPRSETUP_SHOW_STORE(NAME)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> arch/powerpc/kernel/sysfs.c:469:1: note: in expansion of macro 'SYSFS_PMCSETUP'
SYSFS_PMCSETUP(ldbar, SPRN_LDBAR);
^~~~~~~~~~~~~~
cc1: all warnings being treated as errors
vim +/show_ldbar +419 arch/powerpc/kernel/sysfs.c
39a360ef arch/powerpc/kernel/sysfs.c Sam bobroff 2014-05-21 417
39a360ef arch/powerpc/kernel/sysfs.c Sam bobroff 2014-05-21 418 #define __SYSFS_SPRSETUP_SHOW_STORE(NAME) \
8a25a2fd arch/powerpc/kernel/sysfs.c Kay Sievers 2011-12-21 @419 static ssize_t show_##NAME(struct device *dev, \
8a25a2fd arch/powerpc/kernel/sysfs.c Kay Sievers 2011-12-21 420 struct device_attribute *attr, \
4a0b2b4d arch/powerpc/kernel/sysfs.c Andi Kleen 2008-07-01 421 char *buf) \
^1da177e arch/ppc64/kernel/sysfs.c Linus Torvalds 2005-04-16 422 { \
8a25a2fd arch/powerpc/kernel/sysfs.c Kay Sievers 2011-12-21 423 struct cpu *cpu = container_of(dev, struct cpu, dev); \
9a371934 arch/powerpc/kernel/sysfs.c Rusty Russell 2009-03-11 424 unsigned long val; \
8a25a2fd arch/powerpc/kernel/sysfs.c Kay Sievers 2011-12-21 425 smp_call_function_single(cpu->dev.id, read_##NAME, &val, 1); \
^1da177e arch/ppc64/kernel/sysfs.c Linus Torvalds 2005-04-16 426 return sprintf(buf, "%lx\n", val); \
^1da177e arch/ppc64/kernel/sysfs.c Linus Torvalds 2005-04-16 427 } \
3ff6eecc arch/powerpc/kernel/sysfs.c Adrian Bunk 2008-01-24 428 static ssize_t __used \
8a25a2fd arch/powerpc/kernel/sysfs.c Kay Sievers 2011-12-21 429 store_##NAME(struct device *dev, struct device_attribute *attr, \
4a0b2b4d arch/powerpc/kernel/sysfs.c Andi Kleen 2008-07-01 430 const char *buf, size_t count) \
^1da177e arch/ppc64/kernel/sysfs.c Linus Torvalds 2005-04-16 431 { \
8a25a2fd arch/powerpc/kernel/sysfs.c Kay Sievers 2011-12-21 432 struct cpu *cpu = container_of(dev, struct cpu, dev); \
^1da177e arch/ppc64/kernel/sysfs.c Linus Torvalds 2005-04-16 433 unsigned long val; \
^1da177e arch/ppc64/kernel/sysfs.c Linus Torvalds 2005-04-16 434 int ret = sscanf(buf, "%lx", &val); \
^1da177e arch/ppc64/kernel/sysfs.c Linus Torvalds 2005-04-16 435 if (ret != 1) \
^1da177e arch/ppc64/kernel/sysfs.c Linus Torvalds 2005-04-16 436 return -EINVAL; \
8a25a2fd arch/powerpc/kernel/sysfs.c Kay Sievers 2011-12-21 437 smp_call_function_single(cpu->dev.id, write_##NAME, &val, 1); \
^1da177e arch/ppc64/kernel/sysfs.c Linus Torvalds 2005-04-16 438 return count; \
^1da177e arch/ppc64/kernel/sysfs.c Linus Torvalds 2005-04-16 439 }
^1da177e arch/ppc64/kernel/sysfs.c Linus Torvalds 2005-04-16 440
fd7e4296 arch/powerpc/kernel/sysfs.c Madhavan Srinivasan 2013-10-03 441 #define SYSFS_PMCSETUP(NAME, ADDRESS) \
39a360ef arch/powerpc/kernel/sysfs.c Sam bobroff 2014-05-21 442 __SYSFS_SPRSETUP_READ_WRITE(NAME, ADDRESS, ppc_enable_pmcs()) \
39a360ef arch/powerpc/kernel/sysfs.c Sam bobroff 2014-05-21 @443 __SYSFS_SPRSETUP_SHOW_STORE(NAME)
fd7e4296 arch/powerpc/kernel/sysfs.c Madhavan Srinivasan 2013-10-03 444 #define SYSFS_SPRSETUP(NAME, ADDRESS) \
39a360ef arch/powerpc/kernel/sysfs.c Sam bobroff 2014-05-21 445 __SYSFS_SPRSETUP_READ_WRITE(NAME, ADDRESS, ) \
39a360ef arch/powerpc/kernel/sysfs.c Sam bobroff 2014-05-21 446 __SYSFS_SPRSETUP_SHOW_STORE(NAME)
39a360ef arch/powerpc/kernel/sysfs.c Sam bobroff 2014-05-21 447
39a360ef arch/powerpc/kernel/sysfs.c Sam bobroff 2014-05-21 448 #define SYSFS_SPRSETUP_SHOW_STORE(NAME) \
39a360ef arch/powerpc/kernel/sysfs.c Sam bobroff 2014-05-21 449 __SYSFS_SPRSETUP_SHOW_STORE(NAME)
6529c13d arch/powerpc/kernel/sysfs.c Olof Johansson 2007-01-28 450
6529c13d arch/powerpc/kernel/sysfs.c Olof Johansson 2007-01-28 451 /* Let's define all possible registers, we'll only hook up the ones
6529c13d arch/powerpc/kernel/sysfs.c Olof Johansson 2007-01-28 452 * that are implemented on the current processor
6529c13d arch/powerpc/kernel/sysfs.c Olof Johansson 2007-01-28 453 */
6529c13d arch/powerpc/kernel/sysfs.c Olof Johansson 2007-01-28 454
33a7f122 arch/powerpc/kernel/sysfs.c Kumar Gala 2008-09-18 455 #if defined(CONFIG_PPC64)
b950bdd0 arch/powerpc/kernel/sysfs.c Benjamin Herrenschmidt 2008-08-18 456 #define HAS_PPC_PMC_CLASSIC 1
b950bdd0 arch/powerpc/kernel/sysfs.c Benjamin Herrenschmidt 2008-08-18 457 #define HAS_PPC_PMC_IBM 1
b950bdd0 arch/powerpc/kernel/sysfs.c Benjamin Herrenschmidt 2008-08-18 458 #define HAS_PPC_PMC_PA6T 1
33a7f122 arch/powerpc/kernel/sysfs.c Kumar Gala 2008-09-18 459 #elif defined(CONFIG_6xx)
b950bdd0 arch/powerpc/kernel/sysfs.c Benjamin Herrenschmidt 2008-08-18 460 #define HAS_PPC_PMC_CLASSIC 1
b950bdd0 arch/powerpc/kernel/sysfs.c Benjamin Herrenschmidt 2008-08-18 461 #define HAS_PPC_PMC_IBM 1
b950bdd0 arch/powerpc/kernel/sysfs.c Benjamin Herrenschmidt 2008-08-18 462 #define HAS_PPC_PMC_G4 1
b950bdd0 arch/powerpc/kernel/sysfs.c Benjamin Herrenschmidt 2008-08-18 463 #endif
b950bdd0 arch/powerpc/kernel/sysfs.c Benjamin Herrenschmidt 2008-08-18 464
b950bdd0 arch/powerpc/kernel/sysfs.c Benjamin Herrenschmidt 2008-08-18 465
b950bdd0 arch/powerpc/kernel/sysfs.c Benjamin Herrenschmidt 2008-08-18 466 #ifdef HAS_PPC_PMC_CLASSIC
^1da177e arch/ppc64/kernel/sysfs.c Linus Torvalds 2005-04-16 467 SYSFS_PMCSETUP(mmcr0, SPRN_MMCR0);
^1da177e arch/ppc64/kernel/sysfs.c Linus Torvalds 2005-04-16 468 SYSFS_PMCSETUP(mmcr1, SPRN_MMCR1);
080163db arch/powerpc/kernel/sysfs.c Anju T Sudhakar 2017-10-27 @469 SYSFS_PMCSETUP(ldbar, SPRN_LDBAR);
^1da177e arch/ppc64/kernel/sysfs.c Linus Torvalds 2005-04-16 470 SYSFS_PMCSETUP(pmc1, SPRN_PMC1);
^1da177e arch/ppc64/kernel/sysfs.c Linus Torvalds 2005-04-16 471 SYSFS_PMCSETUP(pmc2, SPRN_PMC2);
^1da177e arch/ppc64/kernel/sysfs.c Linus Torvalds 2005-04-16 472 SYSFS_PMCSETUP(pmc3, SPRN_PMC3);
^1da177e arch/ppc64/kernel/sysfs.c Linus Torvalds 2005-04-16 473 SYSFS_PMCSETUP(pmc4, SPRN_PMC4);
^1da177e arch/ppc64/kernel/sysfs.c Linus Torvalds 2005-04-16 474 SYSFS_PMCSETUP(pmc5, SPRN_PMC5);
^1da177e arch/ppc64/kernel/sysfs.c Linus Torvalds 2005-04-16 475 SYSFS_PMCSETUP(pmc6, SPRN_PMC6);
b950bdd0 arch/powerpc/kernel/sysfs.c Benjamin Herrenschmidt 2008-08-18 476
:::::: The code at line 419 was first introduced by commit
:::::: 8a25a2fd126c621f44f3aeaef80d51f00fc11639 cpu: convert 'cpu' and 'machinecheck' sysdev_class to a regular subsystem
:::::: TO: Kay Sievers <kay.sievers@vrfy.org>
:::::: CC: Greg Kroah-Hartman <gregkh@suse.de>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 15318 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] powerpc/kernel/sysfs: Export ldbar spr to sysfs
2017-10-27 9:34 [PATCH] powerpc/kernel/sysfs: Export ldbar spr to sysfs Anju T Sudhakar
2017-10-30 10:26 ` kbuild test robot
@ 2017-10-30 11:56 ` Madhavan Srinivasan
1 sibling, 0 replies; 3+ messages in thread
From: Madhavan Srinivasan @ 2017-10-30 11:56 UTC (permalink / raw)
To: linuxppc-dev
On Friday 27 October 2017 03:04 PM, Anju T Sudhakar wrote:
> Add ldbar spr to sysfs. The spr will hold thread level In-Memory Collection (IMC)
> counter configuration data.
>
> Signed-off-by: Anju T Sudhakar <anju@linux.vnet.ibm.com>
> Acked-by: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
> ---
> arch/powerpc/kernel/sysfs.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/arch/powerpc/kernel/sysfs.c b/arch/powerpc/kernel/sysfs.c
> index 4437c70c7c2b..8efcaece4796 100644
> --- a/arch/powerpc/kernel/sysfs.c
> +++ b/arch/powerpc/kernel/sysfs.c
> @@ -466,6 +466,7 @@ static ssize_t __used \
> #ifdef HAS_PPC_PMC_CLASSIC
> SYSFS_PMCSETUP(mmcr0, SPRN_MMCR0);
> SYSFS_PMCSETUP(mmcr1, SPRN_MMCR1);
> +SYSFS_PMCSETUP(ldbar, SPRN_LDBAR);
My bad. Missed to mention this. For ldbar spr,
use SYSFS_SPRSETUP macro instead.
Maddy
> SYSFS_PMCSETUP(pmc1, SPRN_PMC1);
> SYSFS_PMCSETUP(pmc2, SPRN_PMC2);
> SYSFS_PMCSETUP(pmc3, SPRN_PMC3);
> @@ -492,6 +493,7 @@ SYSFS_SPRSETUP(pir, SPRN_PIR);
> Lets be conservative and default to pseries.
> */
> static DEVICE_ATTR(mmcra, 0600, show_mmcra, store_mmcra);
> +static DEVICE_ATTR(ldbar, 0600, show_ldbar, store_ldbar);
> static DEVICE_ATTR(spurr, 0400, show_spurr, NULL);
> static DEVICE_ATTR(purr, 0400, show_purr, store_purr);
> static DEVICE_ATTR(pir, 0400, show_pir, NULL);
> @@ -757,6 +759,9 @@ static int register_cpu_online(unsigned int cpu)
> device_create_file(s, &pmc_attrs[i]);
>
> #ifdef CONFIG_PPC64
> + if (cpu_has_feature(CPU_FTR_ARCH_300))
> + device_create_file(s, &dev_attr_ldbar);
> +
> if (cpu_has_feature(CPU_FTR_MMCRA))
> device_create_file(s, &dev_attr_mmcra);
>
> @@ -842,6 +847,9 @@ static int unregister_cpu_online(unsigned int cpu)
> device_remove_file(s, &pmc_attrs[i]);
>
> #ifdef CONFIG_PPC64
> + if (cpu_has_feature(CPU_FTR_ARCH_300))
> + device_remove_file(s, &dev_attr_ldbar);
> +
> if (cpu_has_feature(CPU_FTR_MMCRA))
> device_remove_file(s, &dev_attr_mmcra);
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-10-30 11:56 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-27 9:34 [PATCH] powerpc/kernel/sysfs: Export ldbar spr to sysfs Anju T Sudhakar
2017-10-30 10:26 ` kbuild test robot
2017-10-30 11:56 ` Madhavan Srinivasan
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.