[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] xen/arm: Register re-mapped Xen area as a temporary virtual region
Hi Konrad, On 14/03/17 13:20, Konrad Rzeszutek Wilk wrote: On Tue, Mar 14, 2017 at 05:27:17PM +0800, Wei Chen wrote:While we're doing apply_alternatives, we will generate new instructions if required. The new instructions need to update the Xen text section, but Xen text section is read-only. So we re-map Xen to a new virtual address to enable write access. The targets of the new generated instructions are located in this re-mapped Xen area. But we haven't register this area as a virtual region, so the checking code determines the targets are not in the Xen text section, the new instructions could not be generated.Could you expand on that please? Where is the checking code that determines this? Are we talking about the traps handling and them scanning this new region? But you are saying 'new instructions'.. Hm, please enlighten! He is talking about the check in branch_insn_requires_update. There is some sanity checking about the branch offset. Because Xen text section is marked as read-only and we configure the hardware to not allow a region to be writable and executable at the same time, we need to re-map Xen in a temporary area. This means that the pc given in parameter of branch_insn_requires_update will point to a value in the re-mapped area. So the check is_active_kernel_text will always return false. Registering the virtual region temporarily will solve the problem.Wei, it would be worth to explain that you hit the BUG(); in branch_insn_* and show an example in the commit message. Cheers, -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |