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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/