|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3 1/4] xen/arm/static-shmem: Static-shmem should be direct-mapped for direct-mapped domains
Hi Henry,
On 20/05/2024 16:52, Henry Wang wrote:
> Hi Michal, Luca,
>
> On 5/20/2024 7:24 PM, Michal Orzel wrote:
>> Hi Henry,
>>
>> +CC: Luca
>>
>> On 17/05/2024 05:21, Henry Wang wrote:
>>> To make things easier, add restriction that static shared memory
>>> should also be direct-mapped for direct-mapped domains. Check the
>>> host physical address to be matched with guest physical address when
>>> parsing the device tree. Document this restriction in the doc.
>> I'm ok with this restriction.
>>
>> @Luca, do you have any use case preventing us from making this restriction?
>>
>> This patch clashes with Luca series so depending on which goes first,
>
> I agree that there will be some conflicts between the two series. To
> avoid back and forth, if Luca's series goes in first, would it be ok for
> you if I place the same check from this patch in
> handle_shared_mem_bank() like below?
>
> diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
> index 9c3a83042d..2d23fa4917 100644
> --- a/xen/arch/arm/static-shmem.c
> +++ b/xen/arch/arm/static-shmem.c
> @@ -219,6 +219,13 @@ static int __init handle_shared_mem_bank(struct
> domain *d, paddr_t gbase,
> pbase = shm_bank->start;
> psize = shm_bank->size;
>
> + if ( is_domain_direct_mapped(d) && (pbase != gbase) )
> + {
> + printk("%pd: physical address 0x%"PRIpaddr" and guest address
> 0x%"PRIpaddr" are not direct-mapped.\n",
> + d, pbase, gbase);
> + return -EINVAL;
> + }
> +
> printk("%pd: SHMEM map from %s: mphys 0x%"PRIpaddr" -> gphys
> 0x%"PRIpaddr", size 0x%"PRIpaddr"\n",
> d, bank_from_heap ? "Xen heap" : "Host", pbase, gbase, psize);
>
>> Acked-by: Michal Orzel <michal.orzel@xxxxxxx>
>
> Thanks. I will take the tag if you are ok with above diff (for the case
> if this series goes in later than Luca's).
I would move this check to process_shm() right after "gbase = dt_read_paddr"
setting.
This would be the most natural placement for such a check.
~Michal
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |