Messages in this thread | | | Subject | RE: [2.6.25-rc5-mm1][regression] ia64: hackbench doesn't finish>12 hour | Date | Thu, 20 Mar 2008 09:04:08 -0700 | From | "Luck, Tony" <> |
| |
> 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
| |