Re: [PATCH 1/5] irq_work: Split raised and lazy lists

From: Peter Zijlstra
Date: Tue Jun 03 2014 - 10:54:57 EST


On Tue, Jun 03, 2014 at 04:40:16PM +0200, Frederic Weisbecker wrote:
> @@ -90,10 +89,10 @@ EXPORT_SYMBOL_GPL(irq_work_queue);
>
> bool irq_work_needs_cpu(void)
> {
> - struct llist_head *this_list;
> + struct llist_head *list;
>
> - this_list = &__get_cpu_var(irq_work_list);
> - if (llist_empty(this_list))
> + list = &__get_cpu_var(lazy_list);
> + if (llist_empty(list))
> return false;
>
> /* All work should have been flushed before going offline */

Does this mean needs_cpu() only checks the lazy list? What about archs
without the arch_irq_work_raise() function? They run the other list from
the tick too.

Attachment: pgpKWeLmi39SG.pgp
Description: PGP signature