Re: [GIT PULL] workqueue fixes for v4.3-rc5

From: Mike Galbraith
Date: Sun Oct 18 2015 - 23:52:37 EST


On Wed, 2015-10-14 at 16:24 -0400, Tejun Heo wrote:

> But in terms of API consistency, it sucks to have queue_work()
> guarantee local queueing but not queue_delayed_work(). The ideal
> situation would be updating both so that neither guarantees.

You don't have to change anything to have neither guarantee local
queueing. Called from a preemptible context, local means any CPU in
->cpus_allowed... which makes WORK_CPU_UNBOUND mean what one would
imagine WORK_CPU_UNBOUND to mean, not bound to any particular cpu.

sh-16017 3.N.. 1510500545us : queue_work_on: golly, migrated cpu7 -> cpu3 -- target cpu8
sh-16017 3.N.. 1510500550us : <stack trace>
=> tty_flip_buffer_push
=> pty_write
=> n_tty_write
=> tty_write
=> __vfs_write
=> vfs_write
=> SyS_write
=> entry_SYSCALL_64_fastpath

That was with a udelay(100) prior to disabling interrupts, but that just
makes it easier.

-Mike

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/