[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Clarification regarding MEM_ACCESS_* flags usage



Hello Tamas and Ravzan,

I have been looking into mem access support on ARM and I am wondering how we expect the flags MEM_ACCESS_{R,W,X} to be used when the permission fault is happening during stage 1 page table walk.

For instance, if the fault is happening when the processor is loading an instruction, MEM_ACCESS_X will be set. However, the table walker may have failed because it is not possible to read the entry or update it (e.g dirty management).

Let say the region has been protected read-write (I think it is XENMEM_access_x), it means that mem access will think it doesn't have to deal with the error and bail out. So the guest vCPU will get stuck forever repeating the stage-1 page table walk and getting an instruction fault.

Similarly, the bit ESR_EL2.WnR during a data abort indicates whether the instruction was a load or store and not whether the page table walker was reading or writing the entry (see more details on [1]).

So what is the expectation of the flags MEM_ACCESS_R (e.g npfec.read_access) and MEM_ACCESS_W (e.g npfec.write_access) for stage-2 abort on stage-1 page table walk?

Regards,

[1] https://patchwork.kernel.org/patch/9356377/

--
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.