previous index next

If the application writes to code from a writable region (which is now read-only), we trap the fault, remove the region from executable list, invalidate all corresponding code cache fragments, mark the region writable, and re-execute the writing instruction.

Now, to perform the actual invalidation, we don't know if another thread is executing inside a target fragment. Sequential consistency requires immediate invalidation of all affected fragments, which can only be accomplished via a brute-force, expensive, suspend-all-threads approach...

  Copyright © 2004 Derek Bruening