[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 Julien,

On 2017/3/14 21:32, Julien Grall wrote:
> 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.
>

Thanks for helping me to explain it. I will send a new version with
updated commit message. I think the new commit message would include:
1. Include alternative subsystem to the title.
2. Explain where the problem comes from.
3. An example to explain how to hit the BUG().
4. Which source trees and versions will be affected.

> Cheers,
>


-- 
Regards,
Wei Chen

_______________________________________________
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®.