From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Rabin Vincent <rabin@rab.in>,
Steven Rostedt <rostedt@goodmis.org>
Subject: [PATCH 3.10 55/65] tracing: Handle ftrace_dump() atomic context in graph_trace_open()
Date: Sat, 2 May 2015 21:04:25 +0200 [thread overview]
Message-ID: <20150502190118.644009574@linuxfoundation.org> (raw)
In-Reply-To: <20150502190114.555225285@linuxfoundation.org>
3.10-stable review patch. If anyone has any objections, please let me know.
------------------
From: Rabin Vincent <rabin@rab.in>
commit ef99b88b16bee753fa51207abdc58ae660453ec6 upstream.
graph_trace_open() can be called in atomic context from ftrace_dump().
Use GFP_ATOMIC for the memory allocations when that's the case, in order
to avoid the following splat.
BUG: sleeping function called from invalid context at mm/slab.c:2849
in_atomic(): 1, irqs_disabled(): 128, pid: 0, name: swapper/0
Backtrace:
..
[<8004dc94>] (__might_sleep) from [<801371f4>] (kmem_cache_alloc_trace+0x160/0x238)
r7:87800040 r6:000080d0 r5:810d16e8 r4:000080d0
[<80137094>] (kmem_cache_alloc_trace) from [<800cbd60>] (graph_trace_open+0x30/0xd0)
r10:00000100 r9:809171a8 r8:00008e28 r7:810d16f0 r6:00000001 r5:810d16e8
r4:810d16f0
[<800cbd30>] (graph_trace_open) from [<800c79c4>] (trace_init_global_iter+0x50/0x9c)
r8:00008e28 r7:808c853c r6:00000001 r5:810d16e8 r4:810d16f0 r3:800cbd30
[<800c7974>] (trace_init_global_iter) from [<800c7aa0>] (ftrace_dump+0x90/0x2ec)
r4:810d2580 r3:00000000
[<800c7a10>] (ftrace_dump) from [<80414b2c>] (sysrq_ftrace_dump+0x1c/0x20)
r10:00000100 r9:809171a8 r8:808f6e7c r7:00000001 r6:00000007 r5:0000007a
r4:808d5394
[<80414b10>] (sysrq_ftrace_dump) from [<800169b8>] (return_to_handler+0x0/0x18)
[<80415498>] (__handle_sysrq) from [<800169b8>] (return_to_handler+0x0/0x18)
r8:808c8100 r7:808c8444 r6:00000101 r5:00000010 r4:84eb3210
[<80415668>] (handle_sysrq) from [<800169b8>] (return_to_handler+0x0/0x18)
[<8042a760>] (pl011_int) from [<800169b8>] (return_to_handler+0x0/0x18)
r10:809171bc r9:809171a8 r8:00000001 r7:00000026 r6:808c6000 r5:84f01e60
r4:8454fe00
[<8007782c>] (handle_irq_event_percpu) from [<80077b44>] (handle_irq_event+0x4c/0x6c)
r10:808c7ef0 r9:87283e00 r8:00000001 r7:00000000 r6:8454fe00 r5:84f01e60
r4:84f01e00
[<80077af8>] (handle_irq_event) from [<8007aa28>] (handle_fasteoi_irq+0xf0/0x1ac)
r6:808f52a4 r5:84f01e60 r4:84f01e00 r3:00000000
[<8007a938>] (handle_fasteoi_irq) from [<80076dc0>] (generic_handle_irq+0x3c/0x4c)
r6:00000026 r5:00000000 r4:00000026 r3:8007a938
[<80076d84>] (generic_handle_irq) from [<80077128>] (__handle_domain_irq+0x8c/0xfc)
r4:808c1e38 r3:0000002e
[<8007709c>] (__handle_domain_irq) from [<800087b8>] (gic_handle_irq+0x34/0x6c)
r10:80917748 r9:00000001 r8:88802100 r7:808c7ef0 r6:808c8fb0 r5:00000015
r4:8880210c r3:808c7ef0
[<80008784>] (gic_handle_irq) from [<80014044>] (__irq_svc+0x44/0x7c)
Link: http://lkml.kernel.org/r/1428953721-31349-1-git-send-email-rabin@rab.in
Link: http://lkml.kernel.org/r/1428957012-2319-1-git-send-email-rabin@rab.in
Signed-off-by: Rabin Vincent <rabin@rab.in>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
kernel/trace/trace_functions_graph.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
--- a/kernel/trace/trace_functions_graph.c
+++ b/kernel/trace/trace_functions_graph.c
@@ -1382,15 +1382,19 @@ void graph_trace_open(struct trace_itera
{
/* pid and depth on the last trace processed */
struct fgraph_data *data;
+ gfp_t gfpflags;
int cpu;
iter->private = NULL;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ /* We can be called in atomic context via ftrace_dump() */
+ gfpflags = (in_atomic() || irqs_disabled()) ? GFP_ATOMIC : GFP_KERNEL;
+
+ data = kzalloc(sizeof(*data), gfpflags);
if (!data)
goto out_err;
- data->cpu_data = alloc_percpu(struct fgraph_cpu_data);
+ data->cpu_data = alloc_percpu_gfp(struct fgraph_cpu_data, gfpflags);
if (!data->cpu_data)
goto out_err_free;
next prev parent reply other threads:[~2015-05-02 19:51 UTC|newest]
Thread overview: 87+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-02 19:03 [PATCH 3.10 00/65] 3.10.77-stable review Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 01/65] ip_forward: Drop frames with attached skb->sk Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 02/65] tcp: fix possible deadlock in tcp_send_fin() Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 03/65] tcp: avoid looping " Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 04/65] Btrfs: fix log tree corruption when fs mounted with -o discard Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 05/65] Btrfs: fix inode eviction infinite loop after cloning into it Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 06/65] sched/idle/x86: Restore mwait_idle() to fix boot hangs, to improve power savings and to improve performance Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 07/65] usb: gadget: composite: enable BESL support Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 08/65] KVM: s390: Zero out current VMDB of STSI before including level3 data Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 09/65] s390/hibernate: fix save and restore of kernel text section Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 11/65] MIPS: Hibernate: flush TLB entries earlier Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 12/65] cdc-wdm: fix endianness bug in debug statements Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 13/65] spi: spidev: fix possible arithmetic overflow for multi-transfer message Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 14/65] ring-buffer: Replace this_cpu_*() with __this_cpu_*() Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 15/65] power_supply: lp8788-charger: Fix leaked power supply on probe fail Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 16/65] ARM: 8320/1: fix integer overflow in ELF_ET_DYN_BASE Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 17/65] ARM: S3C64XX: Use fixed IRQ bases to avoid conflicts on Cragganmore Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 18/65] usb: phy: Find the right match in devm_usb_phy_match Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 19/65] usb: define a generic USB_RESUME_TIMEOUT macro Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 20/65] usb: host: r8a66597: use new USB_RESUME_TIMEOUT Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 21/65] usb: host: isp116x: " Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 22/65] usb: host: xhci: " Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 23/65] usb: host: sl811: " Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 24/65] usb: core: hub: " Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 25/65] ALSA: emu10k1: dont deadlock in proc-functions Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 26/65] Input: elantech - fix absolute mode setting on some ASUS laptops Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 27/65] fs/binfmt_elf.c: fix bug in loading of PIE binaries Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 28/65] ptrace: fix race between ptrace_resume() and wait_task_stopped() Greg Kroah-Hartman
2015-05-02 19:03 ` [PATCH 3.10 29/65] rtlwifi: rtl8192cu: Add new USB ID Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 30/65] rtlwifi: rtl8192cu: Add new device ID Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 31/65] parport: disable PC-style parallel port support on cris Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 32/65] drivers: parport: Kconfig: exclude h8300 for PARPORT_PC Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 33/65] console: Disable VGA text console support on cris Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 34/65] video: vgacon: Dont build on arm64 Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 35/65] arm64: kernel: compiling issue, need delete read_current_timer() Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 36/65] ext4: make fsync to sync parent dir in no-journal for real this time Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 37/65] powerpc/perf: Cap 64bit userspace backtraces to PERF_MAX_STACK_DEPTH Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 38/65] tools/power turbostat: Use $(CURDIR) instead of $(PWD) and add support for O= option in Makefile Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 39/65] UBI: account for bitflips in both the VID header and data Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 40/65] UBI: fix out of bounds write Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 41/65] UBI: initialize LEB number variable Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 42/65] UBI: fix check for "too many bytes" Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 43/65] scsi: storvsc: Fix a bug in copy_from_bounce_buffer() Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 44/65] drivers: parport: Kconfig: exclude arm64 for PARPORT_PC Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 45/65] ACPICA: Utilities: split IO address types from data type models Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 46/65] xtensa: xtfpga: fix hardware lockup caused by LCD driver Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 47/65] xtensa: provide __NR_sync_file_range2 instead of __NR_sync_file_range Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 48/65] gpio: mvebu: Fix mask/unmask managment per irq chip type Greg Kroah-Hartman
2015-05-03 8:20 ` Christoph Biedl
2015-05-04 21:41 ` Greg Kroah-Hartman
2015-05-06 18:06 ` Christoph Biedl
2015-05-02 19:04 ` [PATCH 3.10 49/65] Drivers: hv: vmbus: Fix a bug in the error path in vmbus_open() Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 50/65] mvsas: fix panic on expander attached SATA devices Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 51/65] [media] stk1160: Make sure current buffer is released Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 52/65] IB/core: disallow registering 0-sized memory region Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 53/65] IB/core: dont disallow registering region starting at 0x0 Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 54/65] IB/mlx4: Fix WQE LSO segment calculation Greg Kroah-Hartman
2015-05-02 19:04 ` Greg Kroah-Hartman [this message]
2015-05-02 19:04 ` [PATCH 3.10 56/65] i2c: core: Export bus recovery functions Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 57/65] drm/radeon: fix doublescan modes (v2) Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 58/65] drm/i915: cope with large i2c transfers Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 59/65] RCU pathwalk breakage when running into a symlink overmounting something Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 60/65] ksoftirqd: Enable IRQs and call cond_resched() before poking RCU Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 61/65] e1000: add dummy allocator to fix race condition between mtu change and netpoll Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 62/65] lib: memzero_explicit: use barrier instead of OPTIMIZER_HIDE_VAR Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 63/65] wl18xx: show rx_frames_per_rates as an array as it really is Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 64/65] C6x: time: Ensure consistency in __init Greg Kroah-Hartman
2015-05-02 19:04 ` [PATCH 3.10 65/65] memstick: mspro_block: add missing curly braces Greg Kroah-Hartman
2015-05-03 19:49 ` [PATCH 3.10 00/65] 3.10.77-stable review Guenter Roeck
2015-05-04 4:40 ` Guenter Roeck
2015-05-04 8:09 ` Heiko Carstens
2015-05-04 9:54 ` Jiri Slaby
2015-05-04 10:40 ` Heiko Carstens
2015-05-04 21:38 ` Greg Kroah-Hartman
2015-05-04 18:51 ` Guenter Roeck
2015-05-05 4:42 ` Guenter Roeck
2015-05-05 21:59 ` Greg Kroah-Hartman
2015-05-05 22:01 ` Patch "s390: Fix build error" has been added to the 3.10-stable tree gregkh
2015-05-04 21:40 ` [PATCH 3.10 00/65] 3.10.77-stable review Greg Kroah-Hartman
2015-05-04 16:16 ` Shuah Khan
2015-05-04 21:42 ` Greg Kroah-Hartman
2015-05-04 22:13 ` Shuah Khan
2015-05-04 22:24 ` Guenter Roeck
2015-05-05 21:58 ` Greg Kroah-Hartman
2015-05-05 22:05 ` Greg Kroah-Hartman
2015-05-06 3:31 ` Guenter Roeck
2015-05-06 16:01 ` Shuah Khan
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=20150502190118.644009574@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rabin@rab.in \
--cc=rostedt@goodmis.org \
--cc=stable@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.