On Mon, 2010-03-01 at 11:10 +0000, Catalin Marinas wrote: > > > Yes. That could be solved at set_pte_at() level using IPIs. Well, set_pte_at() itself is called with the PTE lock held, so you have to be careful with IPIs at that point. You need the flush to happen -before- the PTE is visible and you cannot synchronously send an IPI. > > For that case, I see two options. One is a big hammer but would make > > existing code work to "most" extent: Don't allow a page to be both > > writable and executable. Ping-pong the page permission lazily and > flush > > when transitioning from write to exec. > > Are you referring to the SMP and non-broadcasting cache maintenance > issue? The same pte could be shared between multiple CPUs, so once you > make it executable on one it becomes executable on the others. Right, you would have to play the ping-pong trick globally. That's what I do on ppc 440 for bluegene though that code isn't upstream. Cheers, Ben. -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html