linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: rabin@rab.in (Rabin Vincent)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V7 04/24] coresight: moving PM runtime operations to core framework
Date: Sat, 19 Dec 2015 18:13:42 +0100	[thread overview]
Message-ID: <20151219171342.GA2437@debian> (raw)
In-Reply-To: <1450472361-426-5-git-send-email-mathieu.poirier@linaro.org>

On Fri, Dec 18, 2015 at 01:59:00PM -0700, Mathieu Poirier wrote:
> @@ -415,9 +418,13 @@ struct list_head *coresight_build_path(struct coresight_device *csdev)
>   */
>  void coresight_release_path(struct list_head *path)
>  {
> +	struct coresight_device *csdev;
>  	struct coresight_node *nd, *next;
>  
>  	list_for_each_entry_safe(nd, next, path, link) {
> +		csdev = nd->csdev;
> +
> +		pm_runtime_put_sync(csdev->dev.parent);
>  		list_del(&nd->link);
>  		kfree(nd);
>  	}

This leads to the following splat:

 BUG: sleeping function called from invalid context at /home/rabin/dev/linux/drivers/base/power/runtime.c:892
 in_atomic(): 1, irqs_disabled(): 128, pid: 763, name: perf
 2 locks held by perf/763:
  #0:  (&mm->mmap_sem){++++++}, at: [<c012e42c>] vm_munmap+0x2c/0x50
  #1:  (&event->mmap_mutex){+.+.+.}, at: [<c008248c>] atomic_dec_and_mutex_lock+0x58/0x98
 irq event stamp: 63152
 hardirqs last  enabled at (63151): [<c04f7edc>] _raw_spin_unlock_irqrestore+0x30/0x5c
 hardirqs last disabled at (63152): [<c04f88e8>] __irq_svc+0x48/0x78
 softirqs last  enabled at (61242): [<c003a914>] __do_softirq+0x408/0x4fc
 softirqs last disabled at (61223): [<c003ad50>] irq_exit+0xcc/0x130
 CPU: 1 PID: 763 Comm: perf Not tainted 4.4.0-rc5-00224-ge461459-dirty #152
 Hardware name: Generic OMAP4 (Flattened Device Tree)
 [<c00184dc>] (unwind_backtrace) from [<c0014c74>] (show_stack+0x10/0x14)
 [<c0014c74>] (show_stack) from [<c025c834>] (dump_stack+0x90/0xb8)
 [<c025c834>] (dump_stack) from [<c02f026c>] (__pm_runtime_idle+0xa4/0xa8)
 [<c02f026c>] (__pm_runtime_idle) from [<c03e1a08>] (coresight_release_path+0x38/0x7c)
 [<c03e1a08>] (coresight_release_path) from [<c03e210c>] (free_event_data+0x84/0x9c)
 [<c03e210c>] (free_event_data) from [<c00f8be8>] (rb_irq_work+0x4c/0xcc)
 [<c00f8be8>] (rb_irq_work) from [<c00e8860>] (irq_work_run_list+0x7c/0xb4)
 [<c00e8860>] (irq_work_run_list) from [<c00e88b8>] (irq_work_run+0x20/0x34)
 [<c00e88b8>] (irq_work_run) from [<c0016dcc>] (handle_IPI+0x1cc/0x334)
 [<c0016dcc>] (handle_IPI) from [<c0009538>] (gic_handle_irq+0x84/0x88)
 [<c0009538>] (gic_handle_irq) from [<c04f88f8>] (__irq_svc+0x58/0x78)
 Exception stack(0xed865e98 to 0xed865ee0)
 5e80:                                                       00000001 00000110
 5ea0: 00000000 ee2f1080 20000113 c0784808 edbe4e1c b6ae5000 edb882f0 ed9b1e04
 5ec0: edb88298 c075648c 00000002 ed865ee8 c008724c c04f7ee0 20000113 ffffffff
 [<c04f88f8>] (__irq_svc) from [<c04f7ee0>] (_raw_spin_unlock_irqrestore+0x34/0x5c)
 [<c04f7ee0>] (_raw_spin_unlock_irqrestore) from [<c00e8978>] (irq_work_queue+0xac/0xb4)
 [<c00e8978>] (irq_work_queue) from [<c00f5020>] (perf_mmap_close+0x370/0x3c8)
 [<c00f5020>] (perf_mmap_close) from [<c012c560>] (remove_vma+0x40/0x6c)
 [<c012c560>] (remove_vma) from [<c012e2b4>] (do_munmap+0x210/0x35c)
 [<c012e2b4>] (do_munmap) from [<c012e43c>] (vm_munmap+0x3c/0x50)
 [<c012e43c>] (vm_munmap) from [<c0010320>] (ret_fast_syscall+0x0/0x1c)

It should presumably be using pm_runtime_put() instead.

  reply	other threads:[~2015-12-19 17:13 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-18 20:58 [PATCH V7 00/24] Coresight integration with perf Mathieu Poirier
2015-12-18 20:58 ` [PATCH V7 01/24] coresight: implementing 'cpu_id()' API Mathieu Poirier
2015-12-18 20:58 ` [PATCH V7 02/24] coresight: associating path with session rather than tracer Mathieu Poirier
2015-12-20 15:29   ` Rabin Vincent
2015-12-23 16:23     ` Mathieu Poirier
2016-01-04 18:24     ` Mathieu Poirier
2016-01-05 13:15       ` Rabin Vincent
     [not found]         ` <CANLsYkwN=SOnfDfd8oF-2Z5Ef8oTPao6H_auQhoMpVAnokYkrg@mail.gmail.com>
2016-01-10 15:43           ` Rabin Vincent
2016-01-13 21:47             ` Mathieu Poirier
2016-01-16 13:54               ` Rabin Vincent
2016-01-19 23:54                 ` Mathieu Poirier
2015-12-18 20:58 ` [PATCH V7 03/24] coresight: add API to get sink from path Mathieu Poirier
2015-12-18 20:59 ` [PATCH V7 04/24] coresight: moving PM runtime operations to core framework Mathieu Poirier
2015-12-19 17:13   ` Rabin Vincent [this message]
2015-12-23 16:27     ` Mathieu Poirier
2015-12-24 19:20       ` Rabin Vincent
2015-12-18 20:59 ` [PATCH V7 05/24] coresight: etm3x: moving etm_readl/writel to header file Mathieu Poirier
2015-12-18 20:59 ` [PATCH V7 06/24] coresight: etm3x: moving sysFS entries to dedicated file Mathieu Poirier
2015-12-18 20:59 ` [PATCH V7 07/24] coresight: etm3x: unlocking tracers in default arch init Mathieu Poirier
2015-12-18 20:59 ` [PATCH V7 08/24] coresight: etm3x: splitting struct etm_drvdata Mathieu Poirier
2015-12-18 20:59 ` [PATCH V7 09/24] coresight: etm3x: adding operation mode for etm_enable() Mathieu Poirier
2015-12-18 20:59 ` [PATCH V7 10/24] coresight: etm3x: set progbit to stop trace collection Mathieu Poirier
2015-12-18 20:59 ` [PATCH V7 11/24] coresight: etm3x: changing default trace configuration Mathieu Poirier
2015-12-18 20:59 ` [PATCH V7 12/24] coresight: etm3x: consolidating initial config Mathieu Poirier
2015-12-18 20:59 ` [PATCH V7 13/24] coresight: etm3x: implementing user/kernel mode tracing Mathieu Poirier
2015-12-18 20:59 ` [PATCH V7 14/24] coresight: etm3x: implementing perf_enable/disable() API Mathieu Poirier
2015-12-18 20:59 ` [PATCH V7 15/24] coresight: etb10: moving to local atomic operations Mathieu Poirier
2015-12-18 20:59 ` [PATCH V7 16/24] coresight: etb10: adding operation mode for sink->enable() Mathieu Poirier
2015-12-18 20:59 ` [PATCH V7 17/24] coresight: etb10: implementing AUX space API Mathieu Poirier
2015-12-19 17:23   ` Rabin Vincent
2015-12-23 16:33     ` Mathieu Poirier
2015-12-18 20:59 ` [PATCH V7 18/24] coresight: updating documentation to reflect integration with perf Mathieu Poirier
2015-12-18 20:59 ` [PATCH V7 19/24] coresight: etm-perf: new PMU driver for ETM tracers Mathieu Poirier
2015-12-18 20:59 ` [PATCH V7 20/24] coresight: introducing a global trace ID function Mathieu Poirier
2015-12-18 20:59 ` [PATCH V7 21/24] perf tools: making function set_max_cpu_num() non static Mathieu Poirier
2015-12-18 20:59 ` [PATCH V7 22/24] perf tools: adding perf_evlist to *info_priv_size() Mathieu Poirier
2015-12-18 20:59 ` [PATCH V7 23/24] perf tools: making coresight PMU listable Mathieu Poirier
2015-12-18 20:59 ` [PATCH V7 24/24] perf tools: adding coresight etm PMU record capabilities Mathieu Poirier
2015-12-19 17:27   ` Rabin Vincent
2015-12-23 16:46     ` Mathieu Poirier
2015-12-19 17:42 ` [PATCH V7 00/24] Coresight integration with perf Rabin Vincent
2015-12-23 16:29   ` Mathieu Poirier

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=20151219171342.GA2437@debian \
    --to=rabin@rab.in \
    --cc=linux-arm-kernel@lists.infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).