Messages in this thread Patch in this message | | | Date | Tue, 16 May 2006 09:28:18 -0700 | From | Daniel Walker <> | Subject | [PATCH -rt] scheduling while atomic in fs/file.c |
| |
Quite the smp_processor_id() warnings. The timer was pinned before, but the spinlock protection is such that the timer can migrate with out issues. Allowing the timers to migrate (although not often) will allow them to move off busy cpu's , and potentially follow the work queue that they wake up.
Signed-Off-By: Daniel Walker <dwalker@mvista.com>
Index: linux-2.6.16/fs/file.c =================================================================== --- linux-2.6.16.orig/fs/file.c +++ linux-2.6.16/fs/file.c @@ -137,7 +137,9 @@ static void free_fdtable_rcu(struct rcu_ kfree(fdt->fd); kfree(fdt); } else { - fddef = &get_cpu_var(fdtable_defer_list); + + fddef = &per_cpu(fdtable_defer_list, raw_smp_processor_id()); + spin_lock(&fddef->lock); fdt->next = fddef->next; fddef->next = fdt; @@ -149,7 +151,6 @@ static void free_fdtable_rcu(struct rcu_ if (!schedule_work(&fddef->wq)) mod_timer(&fddef->timer, 5); spin_unlock(&fddef->lock); - put_cpu_var(fdtable_defer_list); } } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |