Messages in this thread |  | | Date | Tue, 03 Dec 2013 15:47:47 -0800 | From | "H. Peter Anvin" <> | Subject | Re: [PATCH?] uprobes: change uprobe_write_opcode() to modify the page directly |
| |
On 12/03/2013 02:01 PM, Linus Torvalds wrote: > On Tue, Dec 3, 2013 at 12:54 PM, Oleg Nesterov <oleg@redhat.com> wrote: >> >> So do you think the patch I sent is wrong? Why? > > I think the TLB shootdown should guarantee that it's ok on other > CPU's, since that's basically what we do on mmap. >
I think that is true for other CPUs; however, there are definitely CPUs out there (which Linux supports) for which you have to synchronize the I and D sides "manually" after writing code through memory, at least through the CPU. That is at least one reason why MIPS has a cacheflush() system call, for example.
> But looking closer at this, I think I see why the old code did what it > did. I think it's breaking shared mmap pages on purpose rather than > dirtying them. Which is probably the right thing to do. >
In other words, treating them as MAP_PRIVATE? Wouldn't it be better to throw an error if we can't honor the semantics of the mapping that we are using?
-hpa
|  |