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, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>