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

Re: [PATCH V7 1/2] xen/arm: Harden the P2M code in p2m_remove_mapping()


  • To: Julien Grall <julien@xxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@xxxxxxxx>
  • Date: Sat, 16 Jul 2022 15:29:15 +0000
  • Accept-language: en-US, ru-RU
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=6xshPb5lPc/HAxThS2vp8lPrOIubeqM3CHtihU+Px9Q=; b=X49xPLm6PYUThVTTHb/IOPpr106mu89JBMO9qjKfKsAkMx6zCMB571V42idLGhfiaj8wz/J3U5dcGua6MQ7EcRnHs18RtcJ0+BNG9DAuJLIaBLHa/ky/2SgX5Iwf78H/hqWHFu8UedgGDPES6OrMcjAya9UmGo4+7a5yvb3vfagfo0Rl6BF/od2/5mvB1TiyFPlUXzMc7E0ut9Vsa9ReMqderneUMQGeVY/47+xuPvtBKeAltfZBtanaPYFHLRB3pQPlLFb5R6HZMxRL/5kVqtWiSFJlMWSsdpeDIf3UUW8LP9cOa/G2Ss7HUMaq7XQ+dPmoGDv6qsaJIt10TI/IpA==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=l6hVNrDLpff8Q07sx0AuaER5zQBZIqI+7N7d4TEVrrq8xPHRUtqCb5yZHsxMG9jfT64MF5SGVxfwKJqLi917MK5e5zGTdo1wJAkKZvrr6QlmLV9z4/7t8AF0qEH2fdI7Striri18T1pfEjK2BKLE9kQmzQNna199z9UabzYopB/2z+o9lqYpBIJk9kWFwToL+GNgMJPvJV6kv+wIPkzBj/tNiU6LnPfk5o5psJctiE2Y5hikbngjdC9hpjkM4iqppC8oMF1e5FBbM4icQgPH2D/2tsPvMw1XCVTXbhT/3IsTvxbcyIvarhVS1Iy/pCUtulzpJMcLIyyfpOqrkWWd7g==
  • Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Julien Grall <jgrall@xxxxxxxxxx>, Oleksandr Tyshchenko <olekstysh@xxxxxxxxx>
  • Delivery-date: Sat, 16 Jul 2022 15:29:33 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHYmSRZ9DGrhwhfOkObghuNT/IAia2BGPyAgAAGWIA=
  • Thread-topic: [PATCH V7 1/2] xen/arm: Harden the P2M code in p2m_remove_mapping()

On 16.07.22 18:06, Julien Grall wrote:
> Hi Oleksandr,


Hello Julien



>
> In the future, please provide a cover letter (even if it is short) 
> when you bundle multiple patches. This is useful to make generic 
> comments and help threading in e-mail client (each patch would be a 
> subthread of 0 rather than 1).


Yes, will do.


>
> On 16/07/2022 15:56, Oleksandr Tyshchenko wrote:
>> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx>
>>
>> Borrow the x86's check from p2m_remove_page() which was added
>> by the following commit: c65ea16dbcafbe4fe21693b18f8c2a3c5d14600e
>> "x86/p2m: don't assert that the passed in MFN matches for a remove"
>> and adjust it to the Arm code base.
>>
>> Basically, this check will be strictly needed for the xenheap pages
>> after applying a subsequent commit which will introduce xenheap based
>> M2P approach on Arm. But, it will be a good opportunity to harden
>> the P2M code for *every* RAM pages since it is possible to remove
>> any GFN - MFN mapping currently on Arm (even with the wrong helpers).
>>
>> Suggested-by: Julien Grall <jgrall@xxxxxxxxxx>
>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx>
>> ---
>> You can find the corresponding discussion at:
>> https://urldefense.com/v3/__https://lore.kernel.org/xen-devel/82d8bfe0-cb46-d303-6a60-2324dd76a1f7@xxxxxxx/__;!!GF_29dbcQIUBPA!3a2u-XL4NvAzSMfz72LARrdWVFvq2In5ZpUdxP2cSt7bM8PgV7P_ZclZG2R-rE9PcosUHyqsKRNfVG2TiM9Tlg$
>>  
>> [lore[.]kernel[.]org]
>> https://urldefense.com/v3/__https://lore.kernel.org/xen-devel/1652294845-13980-2-git-send-email-olekstysh@xxxxxxxxx/__;!!GF_29dbcQIUBPA!3a2u-XL4NvAzSMfz72LARrdWVFvq2In5ZpUdxP2cSt7bM8PgV7P_ZclZG2R-rE9PcosUHyqsKRNfVG0kg7IZSA$
>>  
>> [lore[.]kernel[.]org]
>>
>> Changes V6 -> V7:
>>     - make this commit to be the first
>>     - update commit description and add a comment in code
>> ---
>>   xen/arch/arm/p2m.c | 28 ++++++++++++++++++++++++++++
>>   1 file changed, 28 insertions(+)
>>
>> diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
>> index d00c2e462a..2a0d383df4 100644
>> --- a/xen/arch/arm/p2m.c
>> +++ b/xen/arch/arm/p2m.c
>> @@ -1308,11 +1308,39 @@ static inline int p2m_remove_mapping(struct 
>> domain *d,
>>                                        mfn_t mfn)
>>   {
>>       struct p2m_domain *p2m = p2m_get_hostp2m(d);
>> +    unsigned long i;
>>       int rc;
>>         p2m_write_lock(p2m);
>> +    /*
>> +     * Before removing the GFN - MFN mapping for any RAM pages make 
>> sure
>> +     * that there is no difference between what is already mapped 
>> and what
>> +     * is requested to be unmapped.
>> +     * If they don't match bail out early. For instance, this could 
>> happen
>> +     * if two CPUs are requesting to unmap the same P2M concurrently.
>
> Missing word: P2M *entry*

Yes. May I please ask, could this be done on the commit if this appears 
to be the last version?


>
> Other than that:
>
> Reviewed-by: Julien Grall <jgrall@xxxxxxxxxx>


Thank you!


>
>
> Cheers,
>
-- 
Regards,

Oleksandr Tyshchenko

 


Rackspace

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