On 2016年03月23日 00:16, Julien Grall wrote:
> Hi Shannon,
> 
> On 22/03/16 13:18, Shannon Zhao wrote:
>> On 2016年03月22日 08:42, Julien Grall wrote:
>>> Hi Shannon,
>>>
>>> On 17/03/2016 09:40, Shannon Zhao wrote:
>>>> From: Shannon Zhao <shannon.z...@linaro.org>
>>>>
>>>> Map the UEFI and ACPI tables which we created to non-RAM space in Dom0.
>>>>
>>>> Signed-off-by: Shannon Zhao <shannon.z...@linaro.org>
>>>> Reviewed-by: Stefano Stabellini <stefano.stabell...@eu.citrix.com>
>>>> ---
>>>>    xen/arch/arm/domain_build.c | 15 +++++++++++++++
>>>>    1 file changed, 15 insertions(+)
>>>>
>>>> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
>>>> index 008fc76..e036887 100644
>>>> --- a/xen/arch/arm/domain_build.c
>>>> +++ b/xen/arch/arm/domain_build.c
>>>> @@ -1691,6 +1691,21 @@ static int prepare_acpi(struct domain *d,
>>>> struct kernel_info *kinfo)
>>>>        acpi_create_efi_mmap_table(d->arch.efi_acpi_gpa,
>>>> d->arch.efi_acpi_len,
>>>>                                   d->arch.efi_acpi_table, &kinfo->mem,
>>>> tbl_add);
>>>>
>>>> +    /* Map the EFI and ACPI tables to Dom0 */
>>>> +    rc = map_regions_rw(d,
>>>> +                        paddr_to_pfn(d->arch.efi_acpi_gpa),
>>>> +                        PFN_UP(d->arch.efi_acpi_len),
>>>> +
>>>> paddr_to_pfn(virt_to_maddr(d->arch.efi_acpi_table)));
>>>
>>> The ACPI/EFI tables could potentially have data in the cache but are not
>>> written into the memory (because Xen is mapping the RAM with caching
>>> enabled). However, DOM0 may decide to map it with cache disabled.
>>> Therefore it would be possible for the domain to see wrong data.
>>>
>>> So I think you need to clean the cache for this region.
>> Oh, that would be good. Is there any existing function I can use?
> 
> You could reuse p2m_cache_flush. However this function will only flush
> cache for p2m_ram_* entries.
> 
> I think the best way would be to extend the CACHEFLUSH operations and
> maybe p2m_cache_flush (?).
So it needs to extend the CACHEFLUSH case to handle the p2m_mmio_direct
entry, right?

BTW, does the case you said exist? Before xen switches to Dom0, will it
invalid the cache?

Thanks,
-- 
Shannon

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

Reply via email to