Messages in this thread | | | Date | Tue, 20 Dec 2016 14:08:20 +0100 | From | Oleg Nesterov <> | Subject | Re: [tip:perf/urgent] uprobes: Fix uprobes on MIPS, allow for a cache flush after ixol breakpoint creation |
| |
On 12/19, tip-bot for Marcin Nowakowski wrote: > > uprobes: Fix uprobes on MIPS, allow for a cache flush after ixol breakpoint creation > > Commit: > > 72e6ae285a1d ('ARM: 8043/1: uprobes need icache flush after xol write' > > ... has introduced an arch-specific method to ensure all caches are > flushed appropriately after an instruction is written to an XOL page.
when this page is already mmaped,
> However, when the XOL area is created and the out-of-line breakpoint > instruction is copied, caches are not flushed at all and stale data may > be found in icache.
but in this case the page is not mmaped yet, the probed application will take a page fault if it tries to execute this insn,
> Replace a simple copy_to_page() with arch_uprobe_copy_ixol() to allow > the arch to ensure all caches are updated accordingly. > > This change fixes uprobes on MIPS InterAptiv (tested on Creator Ci40).
OK, I know nothing about MIPS, but could you help me understand this change?
See above. If we really need flush_icache_range() here then perhaps we should modify install_special_mapping() and/or __do_fault/special_mapping_fault paths instead?
Oleg.
| |