* Christoph Lameter (clameter@xxxxxxx) wrote: > On Tue, 4 Sep 2007, Mathieu Desnoyers wrote: > > > @@ -1566,12 +1565,13 @@ redo: > > object[c->offset]) != object)) > > goto redo; > > > > - put_cpu(); > > + local_exit(flags); > > if (unlikely((gfpflags & __GFP_ZERO))) > > memset(object, 0, c->objsize); > > > > return object; > > slow: > > + local_exit(flags); > > Here we can be rescheduled to another processors. > > > return __slab_alloc(s, gfpflags, node, addr, c) > > c may point to the wrong processor. Good point. the current CPU is not updated at the beginning of the slow path. I'll post the updated patchset. Comments are welcome, especially about the naming scheme which is currently awkward. Mathieu -- Mathieu Desnoyers Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68 - To unsubscribe from this list: send the line "unsubscribe linux-ia64" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
![]() |