All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: Josh Triplett <josh@joshtriplett.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: RCU explosion on ARM Integrator
Date: Fri, 11 Sep 2015 10:18:49 -0700	[thread overview]
Message-ID: <20150911171849.GX4029@linux.vnet.ibm.com> (raw)
In-Reply-To: <CACRpkdah-L-XRmdeTrikmEW2GRti_W6F1Bn=kmjnhChJTM_k9w@mail.gmail.com>

On Fri, Sep 11, 2015 at 01:24:56PM +0200, Linus Walleij wrote:
> Hi RCU folks,
> 
> this happened to me when running the iozone throughput benchmark
> on the ARM Integrator, I wonder if I should take this platform for a ride on
> the RCU torture test or similar? Looks a bit instable :/

You got a pagefault in rcu_check_callbacks().  Congratulations, that -is-
an accomplishment!  ;-)

I haven't seen anything like this recently.

Is this reproducible?  If so, and if it was stable on some previous
release, a bisection would be helpful.

Otherwise, it looks like this blew up just after returning from a
function call.  If you could map back to the source code, let me know what
version you are running, send me a disassembly of rcu_check_callbacks(),
and supply a .config, I can take a look and see if I can provide any
additional information.  Or, for that matter, a fix.

On the other hand, if this is a new port, things to be suspicious of
include correct masking of interrupts, consistent reporting of the number
of CPUs, and of course memory mapping.

							Thanx, Paul

> Yours,
> Linus Walleij
> 
> root@integrator:/ iozone -az -i0 -i1 -i2 -s 20m -I -f /mnt/foo.test
>         Iozone: Performance Test of File I/O
>                 Version $Revision: 3.430 $
>                 Compiled for 32 bit mode.
>                 Build: linux-arm
> 
>         Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
>                      Al Slater, Scott Rhine, Mike Wisner, Ken Goss
>                      Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
>                      Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
>                      Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
>                      Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
>                      Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,
>                      Vangel Bojaxhi, Ben England, Vikentsi Lapa.
> 
>         Run began: Thu Jan  1 01:16:39 1970
> 
>         Auto Mode
>         Cross over of record size disabled.
>         File size set to 20480 kB
>         O_DIRECT feature enabled
>         Command line used: iozone -az -i0 -i1 -i2 -s 20m -I -f /mnt/foo.test
>         Output is in kBytes/sec
>         Time Resolution = 0.000016 seconds.
>         Processor cache size set to 1024 kBytes.
>         Processor cache line size set to 32 bytes.
>         File stride size set to 17 * record size.
>                                                               random
>  random     bkwd    record    stride
>               kB  reclen    write  rewrite    read    reread    read
>   write     read   rewrite      read   fwrite frewrite    fread
> freread
>            20480       4       54       56       57       57       57
>      24
>            20480       8       56       57       58       58       58
>      34
>            20480      16       56       58       59       59Unable to
> handle kernel paging request at virtual address 807b7cac
> pgd = c6404000
> [807b7cac] *pgd=00000000
> Internal error: Oops: 5 [#1] PREEMPT ARM
> Modules linked in:
> CPU: 0 PID: 110 Comm: iozone Not tainted 4.2.0-11142-gb0a1ea51bda4-dirty #3
> Hardware name: ARM Integrator/AP (Device Tree)
> task: c6b45540 ti: c6420000 task.ti: c6420000
> PC is at rcu_check_callbacks+0x318/0x850
> LR is at rcu_check_callbacks+0x310/0x850
> pc : [<c00546a8>]    lr : [<c00546a0>]    psr: 60000093
> sp : c64218c0  ip : c07b8038  fp : c07b8920
> r10: 807b7ca8  r9 : 00000001  r8 : c07b79f8
> r7 : c07b2110  r6 : c07b2118  r5 : c07b7ca8  r4 : c07b8004
> r3 : c07b8038  r2 : c07b8038  r1 : c07b8004  r0 : 00000000
> Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment none
> Control: 0005317f  Table: 06404000  DAC: 00000051
> Process iozone (pid: 110, stack limit = 0xc6420190)
> Stack: (0xc64218c0 to 0xc6422000)
> 18c0: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 18e0: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1900: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1920: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1940: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1960: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1980: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 19a0: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 19c0: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 19e0: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1a00: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1a20: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1a40: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1a60: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1a80: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1aa0: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1ac0: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1ae0: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1b00: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1b20: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1b40: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1b60: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1b80: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1ba0: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1bc0: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1be0: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1c00: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1c20: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1c40: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1c60: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1c80: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1ca0: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1cc0: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1ce0: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1d00: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1d20: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1d40: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1d60: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1d80: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1da0: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1dc0: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1de0: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1e00: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1e20: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1e40: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1e60: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1e80: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1ea0: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1ec0: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1ee0: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1f00: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1f20: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1f40: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1f60: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1f80: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1fa0: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1fc0: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1fe0: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> [<c00546a8>] (rcu_check_callbacks) from [<c00574d4>]
> (update_process_times+0x38/0x60)
> [<c00574d4>] (update_process_times) from [<c0065e74>]
> (tick_sched_timer+0x4c/0x98)
> [<c0065e74>] (tick_sched_timer) from [<c0057e60>]
> (__hrtimer_run_queues.constprop.36+0x124/0x1d4)
> [<c0057e60>] (__hrtimer_run_queues.constprop.36) from [<c0058364>]
> (hrtimer_interrupt+0x9c/0x270)
> [<c0058364>] (hrtimer_interrupt) from [<c0286204>]
> (integrator_timer_interrupt+0x20/0x2c)
> [<c0286204>] (integrator_timer_interrupt) from [<c004abc4>]
> (handle_irq_event_percpu+0x78/0x144)
> [<c004abc4>] (handle_irq_event_percpu) from [<c004ace4>]
> (handle_irq_event+0x54/0x8c)
> [<c004ace4>] (handle_irq_event) from [<c004d600>] (handle_level_irq+0xdc/0x168)
> [<c004d600>] (handle_level_irq) from [<c004a348>] (generic_handle_irq+0x2c/0x40)
> [<c004a348>] (generic_handle_irq) from [<c004a580>]
> (__handle_domain_irq+0x5c/0xd4)
> [<c004a580>] (__handle_domain_irq) from [<c0009548>] (fpga_handle_irq+0x84/0xc4)
> [<c0009548>] (fpga_handle_irq) from [<c000de04>] (__irq_svc+0x44/0x78)
> Exception stack(0xc6421a68 to 0xc6421ab0)
> 1a60:                   ???????? ???????? ???????? ???????? ???????? ????????
> 1a80: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
> 1aa0: ???????? ???????? ???????? ????????
> [<c000de04>] (__irq_svc) from [<c00b182c>]
> (__slab_alloc.isra.90.constprop.92+0x124/0x2ec)
> [<c00b182c>] (__slab_alloc.isra.90.constprop.92) from [<c00b1c48>]
> (kmem_cache_alloc+0xf0/0x130)
> [<c00b1c48>] (kmem_cache_alloc) from [<c0077600>] (mempool_alloc+0x44/0x1b8)
> [<c0077600>] (mempool_alloc) from [<c0186290>] (bio_alloc_bioset+0x128/0x214)
> [<c0186290>] (bio_alloc_bioset) from [<c018673c>] (bio_clone_bioset+0xf4/0x2cc)
> [<c018673c>] (bio_clone_bioset) from [<c0190b50>] (blk_queue_split+0x1a4/0x438)
> [<c0190b50>] (blk_queue_split) from [<c018ca10>] (blk_queue_bio+0x28/0x284)
> [<c018ca10>] (blk_queue_bio) from [<c018adf8>] (generic_make_request+0xb8/0xdc)
> [<c018adf8>] (generic_make_request) from [<c018ae9c>] (submit_bio+0x80/0x16c)
> [<c018ae9c>] (submit_bio) from [<c00f04a4>] (__blockdev_direct_IO+0x11e4/0x1a4c)
> [<c00f04a4>] (__blockdev_direct_IO) from [<c011ce0c>] (ext2_direct_IO+0x54/0x94)
> [<c011ce0c>] (ext2_direct_IO) from [<c007642c>]
> (generic_file_direct_write+0x94/0x1cc)
> [<c007642c>] (generic_file_direct_write) from [<c0076618>]
> (__generic_file_write_iter+0xb4/0x21c)
> [<c0076618>] (__generic_file_write_iter) from [<c0076888>]
> (generic_file_write_iter+0x108/0x2a0)
> [<c0076888>] (generic_file_write_iter) from [<c00b7934>] (__vfs_write+0xb0/0xe4)
> [<c00b7934>] (__vfs_write) from [<c00b8160>] (vfs_write+0x90/0x164)
> [<c00b8160>] (vfs_write) from [<c00b89bc>] (SyS_write+0x44/0x9c)
> [<c00b89bc>] (SyS_write) from [<c000a540>] (ret_fast_syscall+0x0/0x38)
> Code: bad PC value
> ---[ end trace 59d7580d1dfe574e ]---
> Kernel panic - not syncing: Fatal exception in interrupt
> ---[ end Kernel panic - not syncing: Fatal exception in interrupt
> 
> 
> Yours,
> Linus Walleij
> 


      reply	other threads:[~2015-09-11 17:29 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-11 11:24 RCU explosion on ARM Integrator Linus Walleij
2015-09-11 17:18 ` Paul E. McKenney [this message]

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=20150911171849.GX4029@linux.vnet.ibm.com \
    --to=paulmck@linux.vnet.ibm.com \
    --cc=josh@joshtriplett.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    /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.