public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
* ARM: SMP: BUG with PREEMPT enabled
@ 2009-10-13 12:03 Shilimkar, Santosh
  2009-10-14 11:26 ` Shilimkar, Santosh
  0 siblings, 1 reply; 7+ messages in thread
From: Shilimkar, Santosh @ 2009-10-13 12:03 UTC (permalink / raw)
  To: Russell King - ARM Linux
  Cc: linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org

[-- Attachment #1: Type: text/plain, Size: 1593 bytes --]

Russell,

On the latest ARM kernel(v2.6.32-rc4),I have observed a BUG() dump when PREEMPT is enabled.
Attached is the detailed log for your reference.

<snip>
**********************************************************
BUG: using smp_processor_id() in preemptible [00000000] code: init/1
caller is flush_tlb_mm+0x44/0x70
Backtrace: 
[<c00225c4>] (dump_backtrace+0x0/0x110) from [<c01713a0>] (dump_stack+0x18/0x1c)
 r7:00000000 r6:c00234f0 r5:00000001 r4:c7828000
[<c0171388>] (dump_stack+0x0/0x1c) from [<c0135364>] (debug_smp_processor_id+0xc0/0xf0)
[<c01352a4>] (debug_smp_processor_id+0x0/0xf0) from [<c00234f0>] (flush_tlb_mm+0x44/0x70)
 r7:00000000 r6:c60b41a0 r5:c60b4154 r4:00000001
[<c00234ac>] (flush_tlb_mm+0x0/0x70) from [<c0039568>] (dup_mm+0x304/0x38c)
 r5:c1f09058 r4:00000000
[<c0039264>] (dup_mm+0x0/0x38c) from [<c0039de4>] (copy_process+0x7b8/0xeb0)
[<c003962c>] (copy_process+0x0/0xeb0) from [<c003a638>] (do_fork+0x15c/0x29c)
[<c003a4dc>] (do_fork+0x0/0x29c) from [<c0021df0>] (sys_clone+0x34/0x3c)
[<c0021dbc>] (sys_clone+0x0/0x3c) from [<c001efa0>] (ret_fast_syscall+0x0/0x2c)
**************************************************************

As evident from the log " smp_processor_id " is used in preemptible code. This gets triggered from 
flush_tlb_mm() -->
	local_flush_tlb_mm()
	{
		if (cpu_isset(smp_processor_id(), vma->vm_mm->cpu_vm_mask)) ^^
	}

This can be guuarded using "get_cpu/put_cpu" pair which can make it preemption safe but I am not sure whether that is the right fix.

Let me know your remarks !!

Regards,
Santosh


[-- Attachment #2: preempt.log --]
[-- Type: application/octet-stream, Size: 9633 bytes --]

RAMDISK: ext2 filesystem found at block 0
RAMDISK: Loading 16384KiB [1 disk] into ram disk... 
EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended
VFS: Mounted root (ext2 filesystem) on device 1:0.
Freeing init memory: 88K
BUG: using smp_processor_id() in preemptible [00000000] code: init/1
caller is flush_tlb_mm+0x44/0x70
Backtrace: 
[<c00225c4>] (dump_backtrace+0x0/0x110) from [<c01713a0>] (dump_stack+0x18/0x1c)
 r7:00000000 r6:c00234f0 r5:00000001 r4:c7828000
[<c0171388>] (dump_stack+0x0/0x1c) from [<c0135364>] (debug_smp_processor_id+0xc0/0xf0)
[<c01352a4>] (debug_smp_processor_id+0x0/0xf0) from [<c00234f0>] (flush_tlb_mm+0x44/0x70)
 r7:00000000 r6:c60b41a0 r5:c60b4154 r4:00000001
[<c00234ac>] (flush_tlb_mm+0x0/0x70) from [<c0039568>] (dup_mm+0x304/0x38c)
 r5:c1f09058 r4:00000000
[<c0039264>] (dup_mm+0x0/0x38c) from [<c0039de4>] (copy_process+0x7b8/0xeb0)
[<c003962c>] (copy_process+0x0/0xeb0) from [<c003a638>] (do_fork+0x15c/0x29c)
[<c003a4dc>] (do_fork+0x0/0x29c) from [<c0021df0>] (sys_clone+0x34/0x3c)
[<c0021dbc>] (sys_clone+0x0/0x3c) from [<c001efa0>] (ret_fast_syscall+0x0/0x2c)
BUG: using smp_processor_id() in preemptible [00000000] code: init/319
caller is flush_tlb_mm+0x44/0x70
Backtrace: 
[<c00225c4>] (dump_backtrace+0x0/0x110) from [<c01713a0>] (dump_stack+0x18/0x1c)
 r7:00000000 r6:c00234f0 r5:00000000 r4:c7894000
[<c0171388>] (dump_stack+0x0/0x1c) from [<c0135364>] (debug_smp_processor_id+0xc0/0xf0)
[<c01352a4>] (debug_smp_processor_id+0x0/0xf0) from [<c00234f0>] (flush_tlb_mm+0x44/0x70)
 r7:00000000 r6:c60cc000 r5:c60b42f4 r4:00000002
[<c00234ac>] (flush_tlb_mm+0x0/0x70) from [<c0039568>] (dup_mm+0x304/0x38c)
 r5:c60c47e8 r4:00000000
[<c0039264>] (dup_mm+0x0/0x38c) from [<c0039de4>] (copy_process+0x7b8/0xeb0)
[<c003962c>] (copy_process+0x0/0xeb0) from [<c003a638>] (do_fork+0x15c/0x29c)
[<c003a4dc>] (do_fork+0x0/0x29c) from [<c0021df0>] (sys_clone+0x34/0x3c)
[<c0021dbc>] (sys_clone+0x0/0x3c) from [<c001efa0>] (ret_fast_syscall+0x0/0x2c)
BUG: using smp_processor_id() in preemptible [00000000] code: rcS/320
caller is flush_tlb_mm+0x44/0x70
Backtrace: 
[<c00225c4>] (dump_backtrace+0x0/0x110) from [<c01713a0>] (dump_stack+0x18/0x1c)
 r7:00000000 r6:c00234f0 r5:00000001 r4:c60ca000
[<c0171388>] (dump_stack+0x0/0x1c) from [<c0135364>] (debug_smp_processor_id+0xc0/0xf0)
[<c01352a4>] (debug_smp_processor_id+0x0/0xf0) from [<c00234f0>] (flush_tlb_mm+0x44/0x70)
 r7:00000000 r6:c60b44e0 r5:c60b4494 r4:00000004
[<c00234ac>] (flush_tlb_mm+0x0/0x70) from [<c0039568>] (dup_mm+0x304/0x38c)
 r5:c1e7c108 r4:00000000
[<c0039264>] (dup_mm+0x0/0x38c) from [<c0039de4>] (copy_process+0x7b8/0xeb0)
[<c003962c>] (copy_process+0x0/0xeb0) from [<c003a638>] (do_fork+0x15c/0x29c)
[<c003a4dc>] (do_fork+0x0/0x29c) from [<c0021df0>] (sys_clone+0x34/0x3c)
[<c0021dbc>] (sys_clone+0x0/0x3c) from [<c001efa0>] (ret_fast_syscall+0x0/0x2c)
BUG: using smp_processor_id() in preemptible [00000000] code: rcS/320
caller is flush_tlb_mm+0x44/0x70
Backtrace: 
[<c00225c4>] (dump_backtrace+0x0/0x110) from [<c01713a0>] (dump_stack+0x18/0x1c)
 r7:00000000 r6:c00234f0 r5:00000001 r4:c60ca000
[<c0171388>] (dump_stack+0x0/0x1c) from [<c0135364>] (debug_smp_processor_id+0xc0/0xf0)
[<c01352a4>] (debug_smp_processor_id+0x0/0xf0) from [<c00234f0>] (flush_tlb_mm+0x44/0x70)
 r7:00000000 r6:c60b4680 r5:c60b4494 r4:00000004
[<c00234ac>] (flush_tlb_mm+0x0/0x70) from [<c0039568>] (dup_mm+0x304/0x38c)
 r5:c1e7c948 r4:00000000
[<c0039264>] (dup_mm+0x0/0x38c) from [<c0039de4>] (copy_process+0x7b8/0xeb0)
[<c003962c>] (copy_process+0x0/0xeb0) from [<c003a638>] (do_fork+0x15c/0x29c)
[<c003a4dc>] (do_fork+0x0/0x29c) from [<c0021df0>] (sys_clone+0x34/0x3c)
[<c0021dbc>] (sys_clone+0x0/0x3c) from [<c001efa0>] (ret_fast_syscall+0x0/0x2c)
BUG: using smp_processor_id() in preemptible [00000000] code: rcS/320
caller is flush_tlb_mm+0x44/0x70
Backtrace: 
[<c00225c4>] (dump_backtrace+0x0/0x110) from [<c01713a0>] (dump_stack+0x18/0x1c)
 r7:00000000 r6:c00234f0 r5:00000001 r4:c60ca000
[<c0171388>] (dump_stack+0x0/0x1c) from [<c0135364>] (debug_smp_processor_id+0xc0/0xf0)
[<c01352a4>] (debug_smp_processor_id+0x0/0xf0) from [<c00234f0>] (flush_tlb_mm+0x44/0x70)
 r7:00000000 r6:c60b4820 r5:c60b4494 r4:00000004
[<c00234ac>] (flush_tlb_mm+0x0/0x70) from [<c0039568>] (dup_mm+0x304/0x38c)
 r5:c1f09f20 r4:00000000
[<c0039264>] (dup_mm+0x0/0x38c) from [<c0039de4>] (copy_process+0x7b8/0xeb0)
[<c003962c>] (copy_process+0x0/0xeb0) from [<c003a638>] (do_fork+0x15c/0x29c)
[<c003a4dc>] (do_fork+0x0/0x29c) from [<c0021df0>] (sys_clone+0x34/0x3c)
[<c0021dbc>] (sys_clone+0x0/0x3c) from [<c001efa0>] (ret_fast_syscall+0x0/0x2c)
BUG: using smp_processor_id() in preemptible [00000000] code: rcS/320
caller is flush_tlb_mm+0x44/0x70
Backtrace: 
[<c00225c4>] (dump_backtrace+0x0/0x110) from [<c01713a0>] (dump_stack+0x18/0x1c)
 r7:00000000 r6:c00234f0 r5:00000001 r4:c60ca000
[<c0171388>] (dump_stack+0x0/0x1c) from [<c0135364>] (debug_smp_processor_id+0xc0/0xf0)
[<c01352a4>] (debug_smp_processor_id+0x0/0xf0) from [<c00234f0>] (flush_tlb_mm+0x44/0x70)
 r7:00000000 r6:c60b49c0 r5:c60b4494 r4:00000004
[<c00234ac>] (flush_tlb_mm+0x0/0x70) from [<c0039568>] (dup_mm+0x304/0x38c)
 r5:c1e36108 r4:00000000
[<c0039264>] (dup_mm+0x0/0x38c) from [<c0039de4>] (copy_process+0x7b8/0xeb0)
[<c003962c>] (copy_process+0x0/0xeb0) from [<c003a638>] (do_fork+0x15c/0x29c)
[<c003a4dc>] (do_fork+0x0/0x29c) from [<c0021df0>] (sys_clone+0x34/0x3c)
[<c0021dbc>] (sys_clone+0x0/0x3c) from [<c001efa0>] (ret_fast_syscall+0x0/0x2c)
BUG: using smp_processor_id() in preemptible [00000000] code: rcS/320
caller is flush_tlb_mm+0x44/0x70
Backtrace: 
[<c00225c4>] (dump_backtrace+0x0/0x110) from [<c01713a0>] (dump_stack+0x18/0x1c)
 r7:00000000 r6:c00234f0 r5:00000001 r4:c60ca000
[<c0171388>] (dump_stack+0x0/0x1c) from [<c0135364>] (debug_smp_processor_id+0xc0/0xf0)
[<c01352a4>] (debug_smp_processor_id+0x0/0xf0) from [<c00234f0>] (flush_tlb_mm+0x44/0x70)
 r7:00000000 r6:c60b4b60 r5:c60b4494 r4:00000004
[<c00234ac>] (flush_tlb_mm+0x0/0x70) from [<c0039568>] (dup_mm+0x304/0x38c)
 r5:c1e36948 r4:00000000
[<c0039264>] (dup_mm+0x0/0x38c) from [<c0039de4>] (copy_process+0x7b8/0xeb0)
[<c003962c>] (copy_process+0x0/0xeb0) from [<c003a638>] (do_fork+0x15c/0x29c)
[<c003a4dc>] (do_fork+0x0/0x29c) from [<c0021df0>] (sys_clone+0x34/0x3c)
[<c0021dbc>] (sys_clone+0x0/0x3c) from [<c001efa0>] (ret_fast_syscall+0x0/0x2c)
BUG: using smp_processor_id() in preemptible [00000000] code: rcS/320
caller is flush_tlb_mm+0x44/0x70
Backtrace: 
[<c00225c4>] (dump_backtrace+0x0/0x110) from [<c01713a0>] (dump_stack+0x18/0x1c)
 r7:00000000 r6:c00234f0 r5:00000001 r4:c60ca000
[<c0171388>] (dump_stack+0x0/0x1c) from [<c0135364>] (debug_smp_processor_id+0xc0/0xf0)
[<c01352a4>] (debug_smp_processor_id+0x0/0xf0) from [<c00234f0>] (flush_tlb_mm+0x44/0x70)
 r7:00000000 r6:c60b4d00 r5:c60b4494 r4:00000004
[<c00234ac>] (flush_tlb_mm+0x0/0x70) from [<c0039568>] (dup_mm+0x304/0x38c)
 r5:c1f09f20 r4:00000000
[<c0039264>] (dup_mm+0x0/0x38c) from [<c0039de4>] (copy_process+0x7b8/0xeb0)
[<c003962c>] (copy_process+0x0/0xeb0) from [<c003a638>] (do_fork+0x15c/0x29c)
[<c003a4dc>] (do_fork+0x0/0x29c) from [<c0021df0>] (sys_clone+0x34/0x3c)
[<c0021dbc>] (sys_clone+0x0/0x3c) from [<c001efa0>] (ret_fast_syscall+0x0/0x2c)
BUG: using smp_processor_id() in preemptible [00000000] code: rcS/320
caller is flush_tlb_mm+0x44/0x70
Backtrace: 
[<c00225c4>] (dump_backtrace+0x0/0x110) from [<c01713a0>] (dump_stack+0x18/0x1c)
 r7:00000000 r6:c00234f0 r5:00000001 r4:c60ca000
[<c0171388>] (dump_stack+0x0/0x1c) from [<c0135364>] (debug_smp_processor_id+0xc0/0xf0)
[<c01352a4>] (debug_smp_processor_id+0x0/0xf0) from [<c00234f0>] (flush_tlb_mm+0x44/0x70)
 r7:00000000 r6:c60b4ea0 r5:c60b4494 r4:00000004
[<c00234ac>] (flush_tlb_mm+0x0/0x70) from [<c0039568>] (dup_mm+0x304/0x38c)
 r5:c1a52108 r4:00000000
[<c0039264>] (dup_mm+0x0/0x38c) from [<c0039de4>] (copy_process+0x7b8/0xeb0)
[<c003962c>] (copy_process+0x0/0xeb0) from [<c003a638>] (do_fork+0x15c/0x29c)
[<c003a4dc>] (do_fork+0x0/0x29c) from [<c0021df0>] (sys_clone+0x34/0x3c)
[<c0021dbc>] (sys_clone+0x0/0x3c) from [<c001efa0>] (ret_fast_syscall+0x0/0x2c)
BUG: using smp_processor_id() in preemptible [00000000] code: rcS/320
caller is flush_tlb_mm+0x44/0x70
Backtrace: 
[<c00225c4>] (dump_backtrace+0x0/0x110) from [<c01713a0>] (dump_stack+0x18/0x1c)
 r7:00000000 r6:c00234f0 r5:00000001 r4:c60ca000
[<c0171388>] (dump_stack+0x0/0x1c) from [<c0135364>] (debug_smp_processor_id+0xc0/0xf0)
[<c01352a4>] (debug_smp_processor_id+0x0/0xf0) from [<c00234f0>] (flush_tlb_mm+0x44/0x70)
 r7:00000000 r6:c60b5040 r5:c60b4494 r4:00000004
[<c00234ac>] (flush_tlb_mm+0x0/0x70) from [<c0039568>] (dup_mm+0x304/0x38c)
 r5:c1a52948 r4:00000000
[<c0039264>] (dup_mm+0x0/0x38c) from [<c0039de4>] (copy_process+0x7b8/0xeb0)
[<c003962c>] (copy_process+0x0/0xeb0) from [<c003a638>] (do_fork+0x15c/0x29c)
[<c003a4dc>] (do_fork+0x0/0x29c) from [<c0021df0>] (sys_clone+0x34/0x3c)
[<c0021dbc>] (sys_clone+0x0/0x3c) from [<c001efa0>] (ret_fast_syscall+0x0/0x2c)

******************************************
Starting System Init for 3430SDP-3430
Release: 12.17
******************************************
Saving kernel ring buffer : OK
Mounting devpts : OK
Starting syslogd : OK
Starting klogd : OK
Mounting filesystems : OK

Please press Enter to activate this console. 


BusyBox v1.6.1 (2008-05-22 13:48:32 IST) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

# 

[-- Attachment #3: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: SMP: BUG with PREEMPT enabled
  2009-10-13 12:03 ARM: SMP: BUG with PREEMPT enabled Shilimkar, Santosh
@ 2009-10-14 11:26 ` Shilimkar, Santosh
  2009-10-14 20:14   ` Russell King - ARM Linux
  2009-10-15 11:40   ` Russell King - ARM Linux
  0 siblings, 2 replies; 7+ messages in thread
From: Shilimkar, Santosh @ 2009-10-14 11:26 UTC (permalink / raw)
  To: Shilimkar, Santosh, Russell King - ARM Linux
  Cc: linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org

> -----Original Message-----
> From: linux-arm-kernel-bounces@lists.infradead.org [mailto:linux-arm-
> kernel-bounces@lists.infradead.org] On Behalf Of Shilimkar, Santosh
> Sent: Tuesday, October 13, 2009 5:33 PM
> To: Russell King - ARM Linux
> Cc: linux-omap@vger.kernel.org; linux-arm-kernel@lists.infradead.org
> Subject: ARM: SMP: BUG with PREEMPT enabled
> 
> Russell,
> 
> On the latest ARM kernel(v2.6.32-rc4),I have observed a BUG() dump when
> PREEMPT is enabled.
> Attached is the detailed log for your reference.
> 
> <snip>
> **********************************************************
> BUG: using smp_processor_id() in preemptible [00000000] code: init/1
> caller is flush_tlb_mm+0x44/0x70
> Backtrace:
> [<c00225c4>] (dump_backtrace+0x0/0x110) from [<c01713a0>]
> (dump_stack+0x18/0x1c)
>  r7:00000000 r6:c00234f0 r5:00000001 r4:c7828000
> [<c0171388>] (dump_stack+0x0/0x1c) from [<c0135364>]
> (debug_smp_processor_id+0xc0/0xf0)
> [<c01352a4>] (debug_smp_processor_id+0x0/0xf0) from [<c00234f0>]
> (flush_tlb_mm+0x44/0x70)
>  r7:00000000 r6:c60b41a0 r5:c60b4154 r4:00000001
> [<c00234ac>] (flush_tlb_mm+0x0/0x70) from [<c0039568>]
> (dup_mm+0x304/0x38c)
>  r5:c1f09058 r4:00000000
> [<c0039264>] (dup_mm+0x0/0x38c) from [<c0039de4>]
> (copy_process+0x7b8/0xeb0)
> [<c003962c>] (copy_process+0x0/0xeb0) from [<c003a638>]
> (do_fork+0x15c/0x29c)
> [<c003a4dc>] (do_fork+0x0/0x29c) from [<c0021df0>] (sys_clone+0x34/0x3c)
> [<c0021dbc>] (sys_clone+0x0/0x3c) from [<c001efa0>]
> (ret_fast_syscall+0x0/0x2c)
> **************************************************************
> 
> As evident from the log " smp_processor_id " is used in preemptible code.
> This gets triggered from
> flush_tlb_mm() -->
> 	local_flush_tlb_mm()
> 	{
> 		if (cpu_isset(smp_processor_id(), vma->vm_mm->cpu_vm_mask)) ^^
> 	}
> 
> This can be guuarded using "get_cpu/put_cpu" pair which can make it
> preemption safe but I am not sure whether that is the right fix.
> 
> Let me know your remarks !!

Here is the patch I used to fix this BUG.

>From 1ea679d6ffded2a15bcdbdf29d0528b82df5914d Mon Sep 17 00:00:00 2001
From: Santosh Shilimkar <santosh.shilimkar@ti.com>
Date: Wed, 14 Oct 2009 16:47:12 +0530
Subject: [PATCH] ARM: SMP: Fix the BUG with CONFIG_PREEMPT enabled

This patch fixes the BUG: using smp_processor_id() in preemptible
Below is the stripped backtrace.

BUG: using smp_processor_id() in preemptible [00000000] code: init/1
caller is flush_tlb_mm+0x44/0x70
Backtrace:
[<c00225c4>] (dump_backtrace+0x0/0x110) from [<c01713a0>] (dump_stack+0x18/0x1c)
 r7:00000000 r6:c00234f0 r5:00000001 r4:c7828000
[<c0171388>] (dump_stack+0x0/0x1c) from [<c0135364>] (debug_smp_processor_id+0xc0/0xf0)
[<c01352a4>] (debug_smp_processor_id+0x0/0xf0) from [<c00234f0>] (flush_tlb_mm+0x44/0x70)
 r7:00000000 r6:c60b41a0 r5:c60b4154 r4:00000001
[<c00234ac>] (flush_tlb_mm+0x0/0x70) from [<c0039568>] (dup_mm+0x304/0x38c)
 r5:c1f09058 r4:00000000
[<c0039264>] (dup_mm+0x0/0x38c) from [<c0039de4>] (copy_process+0x7b8/0xeb0)
[<c003962c>] (copy_process+0x0/0xeb0) from [<c003a638>] (do_fork+0x15c/0x29c)
[<c003a4dc>] (do_fork+0x0/0x29c) from [<c0021df0>] (sys_clone+0x34/0x3c)
[<c0021dbc>] (sys_clone+0x0/0x3c) from [<c001efa0>] (ret_fast_syscall+0x0/0x2c)

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
---
 arch/arm/include/asm/tlbflush.h |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/arch/arm/include/asm/tlbflush.h b/arch/arm/include/asm/tlbflush.h
index c964f3f..a0abf5c 100644
--- a/arch/arm/include/asm/tlbflush.h
+++ b/arch/arm/include/asm/tlbflush.h
@@ -350,7 +350,7 @@ static inline void local_flush_tlb_mm(struct mm_struct *mm)
 	if (tlb_flag(TLB_WB))
 		dsb();
 
-	if (cpu_isset(smp_processor_id(), mm->cpu_vm_mask)) {
+	if (cpu_isset(get_cpu(), mm->cpu_vm_mask)) {
 		if (tlb_flag(TLB_V3_FULL))
 			asm("mcr p15, 0, %0, c6, c0, 0" : : "r" (zero) : "cc");
 		if (tlb_flag(TLB_V4_U_FULL))
@@ -360,6 +360,7 @@ static inline void local_flush_tlb_mm(struct mm_struct *mm)
 		if (tlb_flag(TLB_V4_I_FULL))
 			asm("mcr p15, 0, %0, c8, c5, 0" : : "r" (zero) : "cc");
 	}
+	put_cpu();
 
 	if (tlb_flag(TLB_V6_U_ASID))
 		asm("mcr p15, 0, %0, c8, c7, 2" : : "r" (asid) : "cc");
-- 
1.5.4.7



Regards,
Santosh

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: SMP: BUG with PREEMPT enabled
  2009-10-14 11:26 ` Shilimkar, Santosh
@ 2009-10-14 20:14   ` Russell King - ARM Linux
  2009-10-15  4:46     ` Shilimkar, Santosh
  2009-10-15 11:40   ` Russell King - ARM Linux
  1 sibling, 1 reply; 7+ messages in thread
From: Russell King - ARM Linux @ 2009-10-14 20:14 UTC (permalink / raw)
  To: Shilimkar, Santosh
  Cc: linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org

On Wed, Oct 14, 2009 at 04:56:18PM +0530, Shilimkar, Santosh wrote:
> Here is the patch I used to fix this BUG.

Patch is good.  Could you send it to the patch system.  Please note that
the patch system now almost accepts standard patch submissions (in other
words, it no longer requires the "PATCH FOLLOWS" tag.)  However, it still
requires the "KernelVersion:" tag to appear somewhere before the patch.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: SMP: BUG with PREEMPT enabled
  2009-10-14 20:14   ` Russell King - ARM Linux
@ 2009-10-15  4:46     ` Shilimkar, Santosh
  0 siblings, 0 replies; 7+ messages in thread
From: Shilimkar, Santosh @ 2009-10-15  4:46 UTC (permalink / raw)
  To: Russell King - ARM Linux
  Cc: linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org


> -----Original Message-----
> From: Russell King - ARM Linux [mailto:linux@arm.linux.org.uk]
> Sent: Thursday, October 15, 2009 1:44 AM
> To: Shilimkar, Santosh
> Cc: linux-omap@vger.kernel.org; linux-arm-kernel@lists.infradead.org
> Subject: Re: SMP: BUG with PREEMPT enabled
> 
> On Wed, Oct 14, 2009 at 04:56:18PM +0530, Shilimkar, Santosh wrote:
> > Here is the patch I used to fix this BUG.
> 
> Patch is good.  Could you send it to the patch system.  Please note that
> the patch system now almost accepts standard patch submissions (in other
> words, it no longer requires the "PATCH FOLLOWS" tag.)  However, it still
> requires the "KernelVersion:" tag to appear somewhere before the patch.


Sure !!

Regards,
Santosh

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: SMP: BUG with PREEMPT enabled
  2009-10-14 11:26 ` Shilimkar, Santosh
  2009-10-14 20:14   ` Russell King - ARM Linux
@ 2009-10-15 11:40   ` Russell King - ARM Linux
  2009-10-15 13:25     ` Shilimkar, Santosh
  1 sibling, 1 reply; 7+ messages in thread
From: Russell King - ARM Linux @ 2009-10-15 11:40 UTC (permalink / raw)
  To: Shilimkar, Santosh
  Cc: linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org

On Wed, Oct 14, 2009 at 04:56:18PM +0530, Shilimkar, Santosh wrote:
> > On the latest ARM kernel(v2.6.32-rc4),I have observed a BUG() dump when

Umm...

> @@ -350,7 +350,7 @@ static inline void local_flush_tlb_mm(struct mm_struct *mm)
>  	if (tlb_flag(TLB_WB))
>  		dsb();
>  
> -	if (cpu_isset(smp_processor_id(), mm->cpu_vm_mask)) {
> +	if (cpu_isset(get_cpu(), mm->cpu_vm_mask)) {

This isn't 2.6.32-rc4 code - which actually is:

        if (cpumask_test_cpu(smp_processor_id(), mm_cpumask(mm))) {

so what kernel version are you working with?

The result is this patch won't apply to 2.6.32-rc4.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: SMP: BUG with PREEMPT enabled
  2009-10-15 11:40   ` Russell King - ARM Linux
@ 2009-10-15 13:25     ` Shilimkar, Santosh
  2009-10-15 14:13       ` Shilimkar, Santosh
  0 siblings, 1 reply; 7+ messages in thread
From: Shilimkar, Santosh @ 2009-10-15 13:25 UTC (permalink / raw)
  To: Russell King - ARM Linux
  Cc: linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org

The patch submitted to patch-system I based it on 2.6.32-rc4

Have you tried that patch ?

The one attached was in email was based on 2.6.31

Regards,
Santosh

> -----Original Message-----
> From: Russell King - ARM Linux [mailto:linux@arm.linux.org.uk]
> Sent: Thursday, October 15, 2009 5:11 PM
> To: Shilimkar, Santosh
> Cc: linux-omap@vger.kernel.org; linux-arm-kernel@lists.infradead.org
> Subject: Re: SMP: BUG with PREEMPT enabled
> 
> On Wed, Oct 14, 2009 at 04:56:18PM +0530, Shilimkar, Santosh wrote:
> > > On the latest ARM kernel(v2.6.32-rc4),I have observed a BUG() dump
> when
> 
> Umm...
> 
> > @@ -350,7 +350,7 @@ static inline void local_flush_tlb_mm(struct
> mm_struct *mm)
> >  	if (tlb_flag(TLB_WB))
> >  		dsb();
> >
> > -	if (cpu_isset(smp_processor_id(), mm->cpu_vm_mask)) {
> > +	if (cpu_isset(get_cpu(), mm->cpu_vm_mask)) {
> 
> This isn't 2.6.32-rc4 code - which actually is:
> 
>         if (cpumask_test_cpu(smp_processor_id(), mm_cpumask(mm))) {
> 
> so what kernel version are you working with?
> 
> The result is this patch won't apply to 2.6.32-rc4.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: SMP: BUG with PREEMPT enabled
  2009-10-15 13:25     ` Shilimkar, Santosh
@ 2009-10-15 14:13       ` Shilimkar, Santosh
  0 siblings, 0 replies; 7+ messages in thread
From: Shilimkar, Santosh @ 2009-10-15 14:13 UTC (permalink / raw)
  To: Shilimkar, Santosh, Russell King - ARM Linux
  Cc: linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org

> -----Original Message-----
> From: linux-arm-kernel-bounces@lists.infradead.org [mailto:linux-arm-
> kernel-bounces@lists.infradead.org] On Behalf Of Shilimkar, Santosh
> Sent: Thursday, October 15, 2009 6:55 PM
> To: Russell King - ARM Linux
> Cc: linux-omap@vger.kernel.org; linux-arm-kernel@lists.infradead.org
> Subject: RE: SMP: BUG with PREEMPT enabled
> 
> The patch submitted to patch-system I based it on 2.6.32-rc4
> 
> Have you tried that patch ?
> 
> The one attached was in email was based on 2.6.31

I have submitted the correct version to patch system again.

Regards
Santosh

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2009-10-15 14:13 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-13 12:03 ARM: SMP: BUG with PREEMPT enabled Shilimkar, Santosh
2009-10-14 11:26 ` Shilimkar, Santosh
2009-10-14 20:14   ` Russell King - ARM Linux
2009-10-15  4:46     ` Shilimkar, Santosh
2009-10-15 11:40   ` Russell King - ARM Linux
2009-10-15 13:25     ` Shilimkar, Santosh
2009-10-15 14:13       ` Shilimkar, Santosh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox