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

Re: [XEN v9 4/4] xen/arm64: io: Handle data abort due to cache maintenance instructions





On 04/03/2022 12:13, Ayan Kumar Halder wrote:
Hi Julien,

Hi,


On 04/03/2022 10:46, Julien Grall wrote:
Hi Ayan,

On 01/03/2022 12:40, Ayan Kumar Halder wrote:
When the data abort is caused due to cache maintenance for an address,
there are two scenarios:-

1. Address belonging to a non emulated region - For this, Xen should
set the corresponding bit in the translation table entry to valid and
return to the guest to retry the instruction. This can happen sometimes
as Xen need to set the translation table entry to invalid. (for eg
'Break-Before-Make' sequence).

2. Address belongs to an emulated region - Xen should ignore the
instruction (ie increment the PC) and return to the guest.

I would be explicit and say something along the lines:

"Xen doesn't cache data for emulated regions. So we can safely ignore them".

There is a third scenarios:

The address belongs to neither an emulated region nor has a valid mapping in the P2M.

To check this, we should test "try_handle_mmio() == IO_UNHANDLED". If so then send an abort to the guest.

Is this correct ?
I think it would be too late because if the region is emulated, then we would have already tried to handle it.

Instead, I think we need to check after we confirmed that the region is emulated or we need to forward to an IOREQ server.

So the check would have to be duplicated here.

Cheers,

--
Julien Grall



 


Rackspace

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