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

Re: [PATCH 1/2] x86/p2m: make p2m_get_page_from_gfn() handle grant and shared cases better


  • To: Tamas K Lengyel <tamas@xxxxxxxxxxxxx>
  • From: Jan Beulich <jbeulich@xxxxxxxx>
  • Date: Thu, 24 Feb 2022 08:54:01 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.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=XlB7GjP4r9JbdA3p80n5siQ79+EBx92wRl/zmg2Hfyo=; b=F40pREI1IDhAV6rS99za5djklWR/dVvOo4UI1TtwOMLpZIu8FgsIptbGrRO+FZDV8sclSso+axaY4hBOlmHXEbNKgOe662dU3TSTnBTpP99BVHmOpWQ9DV05q486bv3+3SC+/YujkswAz8qqS4BwkNvfEz5KvAc0WVR4xVH8vfzbJWPOWTAiEjRY3/hsbBgTPvoj21a6jeTOff4YdkNn7AbOP7ZJe0KjGcrO4eAuJ0PpD+lUg3lw9fIYa04mWE9mafEE7Mw0Wvbm8JAyqO3iiyiJ/iN44GBuI5mr5Y1cKOCTNifjCax4WRuCbf5v3LpVy4zK0unJH7b9pNIDjI4KrQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BeMjWI1RJqkDfvNjUCBgwzldVAczXu07Y71EL6afFqnhVH6CDd6iTtEmQv8wYjygQtLB/ExG7Z2RmWQTJDvPB4XWr7GE1ypjH3C2tm9U75HzKrFb3oPuOWVIeMu5gt4rdD2Zx1OnfRQkSkMGRFG9eFJtb5mNvWn/aJzY+ZeUp5zADK2Es28LtWrg0N/0aElyjDajl06z/+XyfFPkrtzi7FZv1nW3l/9me7mVVrnXpxZCHE6weJwE2c3DmVay5srKLc7toh2wxWLrgJIf9JarUO7nzAxGNmjJAkxwQ8oZtMVh7ijuwRUK8ve5hSFpzFdhjZuVBQVmc9nGxb1/KidwEA==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com;
  • Cc: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, George Dunlap <george.dunlap@xxxxxxxxxx>
  • Delivery-date: Thu, 24 Feb 2022 07:54:14 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 23.02.2022 19:11, Tamas K Lengyel wrote:
>> @@ -607,6 +607,7 @@ struct page_info *p2m_get_page_from_gfn(
>>
>>          /* Error path: not a suitable GFN at all */
>>          if ( !p2m_is_ram(*t) && !p2m_is_paging(*t) && !p2m_is_pod(*t) &&
>> +             (!p2m_is_shared(*t) || !(q & P2M_UNSHARE)) &&
>>               !mem_sharing_is_fork(p2m->domain) )
>>              return NULL;
>>      }
> 
> I don't follow what this is fixing. A shared entry would return true
> to p2m_is_ram() - p2m_ram_shared is listed under P2M_RAM_TYPES - so
> the rest of the if statement would never be checked. So if we get past
> that check we know we definitely don't have a shared entry, ie
> p2m_is_shared must be false ie the check for P2M_UNSHARE is dead code.
> Am I missing something?

No, I am. I mistakenly took p2m_is_any_ram() to include the shared case,
but p2m_is_ram() to not do so. Thanks for pointing out, and I'm actually
happy to be able to droop this hunk.

Jan




 


Rackspace

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