My question is how fast is mprotect. What will be the difference between mprotecting say 1 MB of contiguous memory as compared to 1 GB of contiguous memory? Of course I can measure the time, but I want to know what goes under the hood.
My question is how fast is mprotect . What will be the difference between
Share
A quick check on the source seems to indicate that it iterates over the process mappings in the selected region and change their flags. If you protect less than a whole mapping it’ll split it into two or three.
So in short it’s
O(n)wherenis the number of times you’ve called mmap.You can see all the current maps in
/proc/pid/maps