[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <53060444.9010308@arm.com>
Date: Thu, 20 Feb 2014 13:33:56 +0000
From: Sudeep Holla <Sudeep.Holla@....com>
To: Heiko Carstens <heiko.carstens@...ibm.com>
CC: Sudeep.Holla@....com,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Martin Schwidefsky <schwidefsky@...ibm.com>,
"linux390@...ibm.com" <linux390@...ibm.com>,
"linux-s390@...r.kernel.org" <linux-s390@...r.kernel.org>
Subject: Re: [PATCH RFC/RFT v3 4/9] s390: move cacheinfo sysfs to generic
cacheinfo infrastructure
Hi Heiko,
Thanks for testing this series, much appreciated.
On 20/02/14 08:38, Heiko Carstens wrote:
> On Wed, Feb 19, 2014 at 04:06:11PM +0000, Sudeep Holla wrote:
>> From: Sudeep Holla <sudeep.holla@....com>
>>
>> This patch removes the redundant sysfs cacheinfo code by making use of
>> the newly introduced generic cacheinfo infrastructure.
>>
>> Signed-off-by: Sudeep Holla <sudeep.holla@....com>
>> Cc: Martin Schwidefsky <schwidefsky@...ibm.com>
>> Cc: Heiko Carstens <heiko.carstens@...ibm.com>
>> Cc: linux390@...ibm.com
>> Cc: linux-s390@...r.kernel.org
>> ---
>> arch/s390/kernel/cache.c | 388 ++++++++++++-----------------------------------
>> 1 file changed, 93 insertions(+), 295 deletions(-)
>
> (FWIW, if you send an update of your series, please cc me on all patches, so I
> don't have to search LKML for the rest of the patch set)
>
Sorry, will make sure you will be cc-ed in the future updates.
> I gave your patches series a test and I get this nice message on boot:
>
> io scheduler cfq registered
> DEBUG_LOCKS_WARN_ON(irqs_disabled_flags(flags))
> ------------[ cut here ]------------
> WARNING: at kernel/locking/lockdep.c:2742
> Modules linked in:
> CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.14.0-rc3-00177-g468cee08c2ea #7
> task: 0000000000adcc60 ti: 0000000000ac4000 task.ti: 0000000000ac4000
> Krnl PSW : 0404c00180000000 000000000019af3e (lockdep_trace_alloc+0x116/0x120)
> R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:3 CC:0 PM:0 EA:3
> Krnl GPRS: 0000000000000020 0000000000adcc60 000000000000002f 0000000000000000
> 000000000019af3a 0000000000000000 0000000000000001 0000000000000000
> 000000003ff26140 000000000055fb92 00000000000001b0 00000000000080d0
> 0400000000000000 00000000000080d0 000000000019af3a 000000000001bc30
> Krnl Code: 000000000019af2e: c020003b1e34 larl %r2,8feb96
> 000000000019af34: c0e5002e0304 brasl %r14,75b53c
> #000000000019af3a: a7f40001 brc 15,19af3c
> >000000000019af3e: e32003100004 lg %r2,784
> 000000000019af44: a7f4ff9f brc 15,19ae82
> 000000000019af48: e31003100004 lg %r1,784
> 000000000019af4e: e32013f00150 sty %r2,5104(%r1)
> 000000000019af54: 07fe bcr 15,%r14
> Call Trace:
> ([<000000000019af3a>] lockdep_trace_alloc+0x112/0x120)
> [<000000000027a7d2>] __kmalloc+0x5a/0x204
> [<000000000055fb92>] detect_cache_attributes+0x66/0xd4
> [<000000000055fc2e>] _detect_cache_attributes+0x2e/0x3c
> [<00000000001ce7a2>] generic_smp_call_function_single_interrupt+0x9a/0xe8
> [<000000000010b462>] do_ext_interrupt+0x12a/0x24c
> [<00000000001afab0>] handle_irq_event_percpu+0x70/0x240
> [<00000000001b3218>] handle_percpu_irq+0x6c/0x98
> [<00000000001af16e>] generic_handle_irq+0x46/0x68
> [<000000000010b6c2>] do_IRQ+0x5e/0x84
> [<0000000000768b06>] ext_skip+0x44/0x4a
> [<000000000076827c>] vtime_stop_cpu+0x50/0xa4
> ([<0000000000768262>] vtime_stop_cpu+0x36/0xa4)
> [<0000000000103848>] arch_cpu_idle+0x6c/0xbc
> [<00000000001af032>] cpu_startup_entry+0x146/0x218
> [<0000000000b64932>] start_kernel+0x3fa/0x408
> [<0000000000100020>] _stext+0x20/0x80
> INFO: lockdep is turned off.
> Last Breaking-Event-Address:
> [<000000000019af3a>] lockdep_trace_alloc+0x112/0x120
> ---[ end trace 9c0011ccc7b324d6 ]---
> brd: module loaded
>
Ah, my bad, I had this fixed initially when I implemented only on ARM and
introduced back while reorganising it to support multiple architectures, it's
now fixed.
> In addition /proc/cpuinfo is now incorrect.
> With your patches it looks like this:
>
> [root@...45007 ~]# cat /proc/cpuinfo
> vendor_id : IBM/S390
> # processors : 4
> bogomips per cpu: 18115.00
> features : esan3 zarch stfle msa ldisp eimm dfp etf3eh highgprs
> cache0 : level=1 type=Data scope=Shared size=96K line_size=256 associativity=6
> cache1 : level=1 type=Data scope=Shared size=96K line_size=256 associativity=6
> cache2 : level=1 type=Data scope=Shared size=96K line_size=256 associativity=6
> cache3 : level=1 type=Data scope=Shared size=96K line_size=256 associativity=6
> cache4 : level=1 type=Data scope=Shared size=96K line_size=256 associativity=6
> cache5 : level=1 type=Data scope=Shared size=96K line_size=256 associativity=6
> processor 0: version = FF, identification = 2F6D15, machine = 2827
> processor 1: version = FF, identification = 2F6D15, machine = 2827
> processor 2: version = FF, identification = 2F6D15, machine = 2827
> processor 3: version = FF, identification = 2F6D15, machine = 2827
>
> However it is supposed to look like this:
>
> [root@...45007 ~]# cat /proc/cpuinfo
> vendor_id : IBM/S390
> # processors : 4
> bogomips per cpu: 18115.00
> features : esan3 zarch stfle msa ldisp eimm dfp etf3eh highgprs
> cache0 : level=1 type=Data scope=Private size=96K line_size=256 associativity=6
> cache1 : level=1 type=Instruction scope=Private size=64K line_size=256 associativity=4
> cache2 : level=2 type=Data scope=Private size=1024K line_size=256 associativity=8
> cache3 : level=2 type=Instruction scope=Private size=1024K line_size=256 associativity=8
> cache4 : level=3 type=Unified scope=Shared size=49152K line_size=256 associativity=12
> cache5 : level=4 type=Unified scope=Shared size=393216K line_size=256 associativity=24
> processor 0: version = FF, identification = 2F6D15, machine = 2827
> processor 1: version = FF, identification = 2F6D15, machine = 2827
> processor 2: version = FF, identification = 2F6D15, machine = 2827
> processor 3: version = FF, identification = 2F6D15, machine = 2827
>
> The sysfs files and it contents seem to be ok.
>
Thanks, this info was helpful and looks like it's stupid mistake I did. I
deleted a line unknowingly while trying to minimise the diff for show_cacheinfo.
The below fix-up must work IIUC the issue. I will squash this in my next update
if it works.
Regards,
Sudeep
--->8
>From 77690bc34b2b4b492377998019371f6e2f8f90b7 Mon Sep 17 00:00:00 2001
From: Sudeep Holla <sudeep.holla@....com>
Date: Thu, 20 Feb 2014 13:14:09 +0000
Subject: [PATCH] fixup! s390: move cacheinfo sysfs to generic cacheinfo
infrastructure
---
arch/s390/kernel/cache.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/arch/s390/kernel/cache.c b/arch/s390/kernel/cache.c
index e064f95..aeedb7f 100644
--- a/arch/s390/kernel/cache.c
+++ b/arch/s390/kernel/cache.c
@@ -68,14 +68,15 @@ void show_cacheinfo(struct seq_file *m)
{
int cpu = smp_processor_id(), idx;
struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
- struct cache_info *cache = this_cpu_ci->info_list;
+ struct cache_info *cache;
for (idx = 0; idx < this_cpu_ci->num_leaves; idx++) {
+ cache = this_cpu_ci->info_list + idx;
seq_printf(m, "cache%-11d: ", idx);
seq_printf(m, "level=%d ", cache->level);
seq_printf(m, "type=%s ", cache_type_string[cache->type]);
seq_printf(m, "scope=%s ",
- cache->disable_sysfs ? "Private" : "Shared");
+ cache->disable_sysfs ? "Shared" : "Private");
seq_printf(m, "size=%dK ", cache->size >> 10);
seq_printf(m, "line_size=%u ", cache->coherency_line_size);
seq_printf(m, "associativity=%d", cache->ways_of_associativity);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists