Thread (27 messages) 27 messages, 6 authors, 2020-06-16

Re: hv_hypercall_pg page permissios

From: Peter Zijlstra <peterz@infradead.org>
Date: 2020-06-16 10:32:16
Also in: lkml

On Tue, Jun 16, 2020 at 12:24:12PM +0200, Christoph Hellwig wrote:
On Tue, Jun 16, 2020 at 12:23:50PM +0200, Christoph Hellwig wrote:
quoted
quoted
+	hv_hypercall_pg = module_alloc(PAGE_SIZE);
 	if (hv_hypercall_pg == NULL) {
 		wrmsrl(HV_X64_MSR_GUEST_OS_ID, 0);
 		goto remove_cpuhp_state;
 	}
 
+	set_memory_ro((unsigned long)hv_hypercall_pg, 1);
+	set_memory_x((unsigned long)hv_hypercall_pg, 1);
The changing of the permissions sucks.  I thought about adding
a module_alloc_prot with an explicit pgprot_t argument.  On x86
alone at least ftrace would also benefit from that.
How would ftrace benefit from a RX permission? We need to actually write
to the page first. This HV thing is special in that it lets the host
write.
The above is also missing a set_vm_flush_reset_perms.
Ah, indeed. Otherwise we don't clean up properly.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help