[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <171250790396.435162.11246124579899247281.b4-ty@kernel.org>
Date: Sun, 07 Apr 2024 22:08:23 +0530
From: Vinod Koul <vkoul@...nel.org>
To: Dave Jiang <dave.jiang@...el.com>, Fenghua Yu <fenghua.yu@...el.com>
Cc: dmaengine@...r.kernel.org, linux-kernel <linux-kernel@...r.kernel.org>,
Rex Zhang <rex.zhang@...el.com>, Lijun Pan <lijun.pan@...el.com>
Subject: Re: [PATCH v4] dmaengine: idxd: Convert spinlock to mutex to lock
evl workqueue
On Thu, 04 Apr 2024 15:39:49 -0700, Fenghua Yu wrote:
> drain_workqueue() cannot be called safely in a spinlocked context due to
> possible task rescheduling. In the multi-task scenario, calling
> queue_work() while drain_workqueue() will lead to a Call Trace as
> pushing a work on a draining workqueue is not permitted in spinlocked
> context.
> Call Trace:
> <TASK>
> ? __warn+0x7d/0x140
> ? __queue_work+0x2b2/0x440
> ? report_bug+0x1f8/0x200
> ? handle_bug+0x3c/0x70
> ? exc_invalid_op+0x18/0x70
> ? asm_exc_invalid_op+0x1a/0x20
> ? __queue_work+0x2b2/0x440
> queue_work_on+0x28/0x30
> idxd_misc_thread+0x303/0x5a0 [idxd]
> ? __schedule+0x369/0xb40
> ? __pfx_irq_thread_fn+0x10/0x10
> ? irq_thread+0xbc/0x1b0
> irq_thread_fn+0x21/0x70
> irq_thread+0x102/0x1b0
> ? preempt_count_add+0x74/0xa0
> ? __pfx_irq_thread_dtor+0x10/0x10
> ? __pfx_irq_thread+0x10/0x10
> kthread+0x103/0x140
> ? __pfx_kthread+0x10/0x10
> ret_from_fork+0x31/0x50
> ? __pfx_kthread+0x10/0x10
> ret_from_fork_asm+0x1b/0x30
> </TASK>
>
> [...]
Applied, thanks!
[1/1] dmaengine: idxd: Convert spinlock to mutex to lock evl workqueue
commit: d5638de827cff0fce77007e426ec0ffdedf68a44
Best regards,
--
~Vinod
Powered by blists - more mailing lists