> Which makes me wonder, why did you ever use a semaphore here? Looking at > the code its a straight forward mutex. And when you would have used a > mutex lockdep would have warned about this. The functionality that we are trying to add is to allow up to N simultaneous processors to execute the critical region. On current processors/platforms N=1 so a spinlock or mutex would be fine, but there will be platforms for which N is a small integer greater than one. Semaphore initialized to N looked to be the ideal primitive for this (until Motohiro-san ran the test case that showed the path where we call this code with a spinlock held). Next question is whether it is reasonable to get to this code while holding a spinlock. Isn't this a problem for architectures that need to use cross-processor interrupts to do a global TLB shootdown? -Tony -- 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
![]() |