From nobody Mon Feb 9 10:32:34 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=suse.com); dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=2; a=rsa-sha256; t=1645632301; cv=pass; d=zohomail.com; s=zohoarc; b=KF64EGVqnyMW/Yr7hoqWFF9d61LCtB7LyQZbgYIuyrvjvf8NjCkSoWo40rLwRA+pAW3nMthvBWGGD7jzPzBhzhH9vZXKueoCtfqVWGaAV5kQmxG0kqiwjX0WLCAnGBEYcBV38MhdEFj1OglWY75ttJyAEremUGVET7AwsA6QwEw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1645632301; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=c0HTObp3YJHfE/uo6Cw54yUOSGjrcQcQ2DoP9QPbuT4=; b=UhzANmXXhiS3X/eNzSRP71NcrYNd21+/pIApx8+8lnxC3cSe+T2HMlnNe9mMp/YexNbZ+c5zP77v5d/kNfp89AEN/uyTGJnD0H7XMIKEodcUrR05V7ygZWcijPhU4Mp2/x/fk5m7qebddW4NMqCu/BQ73cf+KL1d8CuB+J2EBxs= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=suse.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1645632301747312.281255698269; Wed, 23 Feb 2022 08:05:01 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.277531.474069 (Exim 4.92) (envelope-from ) id 1nMu86-0007Wx-C0; Wed, 23 Feb 2022 16:04:38 +0000 Received: by outflank-mailman (output) from mailman id 277531.474069; Wed, 23 Feb 2022 16:04:38 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1nMu86-0007Wq-8t; Wed, 23 Feb 2022 16:04:38 +0000 Received: by outflank-mailman (input) for mailman id 277531; Wed, 23 Feb 2022 16:04:37 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1nMu85-00064O-10 for xen-devel@lists.xenproject.org; Wed, 23 Feb 2022 16:04:37 +0000 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 4bee537c-94c2-11ec-8eb8-a37418f5ba1a; Wed, 23 Feb 2022 17:04:36 +0100 (CET) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04lp2052.outbound.protection.outlook.com [104.47.13.52]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-16-ST5p_GrHNC20dxGWWejDcQ-1; Wed, 23 Feb 2022 17:04:34 +0100 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by DB3PR0402MB3803.eurprd04.prod.outlook.com (2603:10a6:8:e::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4951.19; Wed, 23 Feb 2022 16:04:32 +0000 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::d479:b728:345c:bd65]) by VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::d479:b728:345c:bd65%6]) with mapi id 15.20.5017.022; Wed, 23 Feb 2022 16:04:32 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 4bee537c-94c2-11ec-8eb8-a37418f5ba1a DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1645632275; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=c0HTObp3YJHfE/uo6Cw54yUOSGjrcQcQ2DoP9QPbuT4=; b=MzfkmX9mSAA8fG2Kk7xA9vQkN+R+/1dd/a6dbeVWIocd11KNYQlfJv50+n6x2nGPB2iQaS BlWulrb7USHOhbe/6nuI6wFwJRTk/Cb2TEpZZJQ3IxW5Lbmw5EYJcab+UBnA//vc8vYMSz InFCN4BZ5+HaJSNI63ObtChHDphTA1s= X-MC-Unique: ST5p_GrHNC20dxGWWejDcQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DnoGcvjpGOCw2/KNiC75fZjWsUL6EVBZdVidcg6OXrpMjR44lVZovtzTBYIKe8ghYoVnMmA3c7b1APMJlZNiFfv6LhSYwfjdVhcP61Kp++sTrHh4DG0EVQOrXX/8A3MSGl14wEknZeDrKXrEPahNOCHBLdUTRqBDYkQG+CAs5ejclkpwMn1J6Wc0DwiXBtieTxjLj1Q1cR0I2mcEx6+PD+7OiKcSexznqA0mVw0JQBZN0NQU+c3/uanwatWsqjw8OmBg1FZq3aRymjdH8naLBbgB8t1xif/BQ2OXXOCqvvWb5tAoxFTXDaQqNslXcu6s+kCRr/cPuCnFinGKmRplPw== 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=c0HTObp3YJHfE/uo6Cw54yUOSGjrcQcQ2DoP9QPbuT4=; b=WrDHh2h4pIv+lDQzuL9521foq7aOShXKvDvQQ7k0Lke7Fb5dLEQEoUJvjc0ymn6z7riHpgeQrvabgZ0YbeocnDEuJLG5rday55b6oyAR+TvUQV9rlsMr2o8myEIPzRX2znj8jdh69mOnuozb0fdNTWxKiJvMdfWu48HRus+3AgsycY7SttjmBs5yQIqkVyeDRgDYYoN1BQGbxcZZzl3YtgiF3hwBbyOiz0uJXinUFi9TVHa1IvrDtH3gdkhunC5sSuAkEQpwJdpbwD1C/mJE4eiOBsn1AATIEvmHFuogM77Fmq4EwRgAeH3Iv7cwWGc61HT0HP+jcDmRtJoIYrRY4Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Wed, 23 Feb 2022 17:04:30 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.6.1 Subject: [PATCH v2 11/14] shr_pages field is MEM_SHARING-only Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= , Andrew Cooper , George Dunlap , Julien Grall , Stefano Stabellini , Wei Liu References: In-Reply-To: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM7PR02CA0012.eurprd02.prod.outlook.com (2603:10a6:20b:100::22) To VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4e192341-4fe7-4004-4c74-08d9f6e62dec X-MS-TrafficTypeDiagnostic: DB3PR0402MB3803:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: s6lpIxStBEmhwTnParHSK0fvUq/209veCbXgl6W7GoQzqCfpW7AHe/VqjoW++6twYKwiGnlO/8OThFbI1sCMj19BF+PVAMp0Cz4bpIrtxsp017m8cD4FlxJQa32yg3UWwbCy4O9/z4MsRDQjpyH06YJbHHSEN+35wRJAjur2GaoyALQTC+8OYmuUFHCkKPSGCoXtQANsMBNkrAmJYVJu43I5Aio/a1pJCUdLIn2qiwWl8EXt5rZgAbyjnoZSjivGxGSnn4FPDO5VdjNCoClG2wTLXWdAsYQMSkIQ2G1HKJtQDpwyh7X6UMGjErT/T1c7CMfJylF4K4Uycrclaux+lN2FAMhE1DQYsSODVWkN2zX0dVSFtihn7RyfD5Juj/YPvyDnQOjlZVjGseZ2fi59oiaEAwXr3Adrx2+oTZBLtQ5Uwq8Ols1mR5p0/u6/CBIMnXTS9U6LluenR6E0By9LyEz9YMvz1dbUaA4P29BRwt2Xh+PhfC97j33asvjiaKl+mtWnIOJx6iIthvfu6YXdkcoXNWS9+GCN5XoiwU1KUWXhGSuMIj3qPKXhGyz3hiv8r/eKhYwW/rcAeGarCHNjlKpUy4uKm/60yhlYkWqpeMWD4cItKaRWA/fqtTE26QVzLy1nrMIktf4xC3VyMFBB4cuzTTih8is6B7EdnuXOgXRLBxtW1GKnPEEvzXxRTOAW/90N1y8pRRC3kQwH9+/TzbFFD8nD/pMOQ7lTcB1eHF87hF1ObqhRUtmr8JdCzzMd X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(6512007)(66476007)(8676002)(6916009)(6506007)(31686004)(86362001)(8936002)(31696002)(6486002)(316002)(66556008)(508600001)(66946007)(26005)(5660300002)(36756003)(83380400001)(4326008)(38100700002)(186003)(2906002)(54906003)(2616005)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VkR6K0M3WlRGYmZRdkVqVXB2TDZyRUNSQzNXMjRqelkwcURYZE40b242L2dS?= =?utf-8?B?allGc1VHdkd3MlRHWCtzMHppQW50ZlBuTVJPeUxKN01mWlpmczk1Z2hxdzVN?= =?utf-8?B?Vk94S2NWME16QUt4MjZhMDFqQ0tYOWcxeFpoSXlKZHN5dnJTOFVtb1J5MFda?= =?utf-8?B?eFBXZllIL09sT2NBVVF0THZPR2diNWJhRlB6ZENIMnhqZVBncHN2ZWR3emVR?= =?utf-8?B?aHFBaUt6bHNjbkVhdUdoL0N4TGtodXFFT2NhUHhpbXN6MEJ5ZmhVOXUrLzFu?= =?utf-8?B?c1F4QmtFakk5Yy9XYUJpN2g2UzlQQ1d5R3kwc3B0UUlIa0JhOE5JMjZGbFhO?= =?utf-8?B?RmhLTnUrYnM2RHJGYnFoNzltbExjd09SVzdjaGQrRDlsVWdFTURVeU01dytJ?= =?utf-8?B?WUY4eEtzdCswRTZrSG5tWjJ5Ry9McUM0Uk0rTXFocnVIcCs3S2FGUW5UalNi?= =?utf-8?B?Q0EzZWVidmFocXVHTTZ5M3hzNVpBOVFIQ2V4WDFNQUkrS1J6NWEvdldtTmhl?= =?utf-8?B?QzZkZUE2QUIxNFZaMEJpZXlvSWQrZ2dKNG5tMmdEMUpFNHQxUjdUbkVPZU00?= =?utf-8?B?aWVlWXFKZlBGL1h0VUF2b25ZNHFKLy9zMHFOVjdsZ1FGUWE3QWlIUkplL1ZZ?= =?utf-8?B?d0E3MXcvVWIxd25mOGNjTmtmb3RtYnplSCtlbU1UeXc5MHFhZFdudkQ0ODlp?= =?utf-8?B?amhNbmlVYkVmZngxY0lnMlJ0aUhOcjJ2dFZ3ZXNObE5LbGxKaDZXbUdYWnRP?= =?utf-8?B?TW1ROWxXS0s3UEtwMWdmZUNBSDZOclFjTlVIY0dDTVNnTUx3d1Y5MSt0WU1y?= =?utf-8?B?cU1JQjRaRnFyeUlYOG9VRTFFQnA0V1UxZTJPRXd4UW5TcGw0QnZVcysvZFFa?= =?utf-8?B?YTgyRS9zaEdENThwM1lmSHBmbEYxVVdhNkcvZzBnWnVCdENjOGpyRGd6aEdP?= =?utf-8?B?YTBDNkl2SzlwRFhMakVKVklPUEx0WXpNQ0JjUWUyRFhEYkZZYUtPTjdoRCtL?= =?utf-8?B?QmpNK0o1ZFVRcjl0VEtKa01TTThIYjlBSnJWMUFIUDBzNzJObmR4VklxOXZp?= =?utf-8?B?TnJMVXdVbjdRdFhnRUdURHpocWsvSnVmRTRYWXh1VzNIRFg0aUFqRXVXZUVP?= =?utf-8?B?QkZaTU9qZWsrMzluMitxQTJtK1dOc0JYK3NXUWFNdG5JOEswamRjcGlpaHBV?= =?utf-8?B?OGJXZ3MvMW5rR2NyQkJWVDhSN1QvT3JxTWhaMi9QOXdacW44MWNESjdKN3Fo?= =?utf-8?B?alFsYyt4YnNrQW40V2NDLzBtN1FFYkYxQmFiR3dOR1ZqbGNhK09GYVZEVGhZ?= =?utf-8?B?UGhScHN2TFB4eUdzOHdvN0FvK0FxQzFsNDQvWnd2TlVBSnV5TE1BOFd6VmJI?= =?utf-8?B?ZzlMUlZmNkcxRmRSQk5tWWtmZzI4U0NGRTBmRGg1TnVUcFlRbjUwSkpDOGNP?= =?utf-8?B?Q3kxYi9seFBzTmdjdlBDYlJ3cktORFFDbHFvYldLd3pCUTV3NHhGQi9BVzAx?= =?utf-8?B?WVl2aEMzUkpzVFhsYkgrLzNHc1JUNmxDbXZpQS9zTWFncnM3S2hKWkRFLzNk?= =?utf-8?B?M1Z4ZVRzT3ZVSE12eC84WFFqazR1em54Y2VFRXJudXZZdmhHRmxxSjN3TGUv?= =?utf-8?B?RjVJNFU2UzZ1cmNrbE5ncFBuZDY4UkxVYWJNcWo5dGNTN0htVHhOV2Vtbnp3?= =?utf-8?B?cklKN1pFT241M2tEVnVibU9MSThTTTZYVTJFdW84UUpBRlVDU0pFV0tlWjdN?= =?utf-8?B?U2c3M2JyWFhlM0xpa3pmbjc4SHB4R3p6dkUrRUlvSVZxU3N4SnNXN2p2VG5O?= =?utf-8?B?WnFOK01IK2tSb3ZmNXgxVnRvR0tqTmlwR3RERkx2OWtORllzTGZyL1U0QkRl?= =?utf-8?B?S0tqemVBYitaUEZjYWFUamthbVBqVDdxWTUzdE9KczlSbFFSWjY3NU94TU4z?= =?utf-8?B?V2hNRE1kSkZLZk5NVGpzV0pZYVJmeXRpZit5T2Zhc2hNVDdoU3JodlUwNVVa?= =?utf-8?B?bFV4MlVLZGFRYlZJL2p3bTdSbGJqakhYMlppR0pPRWxOeWc1c3VlM0MvYWdH?= =?utf-8?B?dTR0aFgreVhjdXk0TzA1U3lQTThOQit4VnNpdTdjcElQWXBtTkIwa2JwdWE4?= =?utf-8?B?aTQyeHFmSUNuR0FUZlMrYlVtWmxydVIxelZTNWMxOWhNZ2pIUTlmQUd5SDhw?= =?utf-8?Q?MQOpuodnSObfiXDRXIcGwyg=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4e192341-4fe7-4004-4c74-08d9f6e62dec X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Feb 2022 16:04:32.4413 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: SFyDBtjzEiPkhQH2+gxfHn/6ZS3qcSPMmWf/RP3QWkaND0RL/lodLlhzTxqsOG/uMfOC2bNjJ5JHhfrzYszpqg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0402MB3803 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1645632302662100001 Content-Type: text/plain; charset="utf-8" Conditionalize it and its uses accordingly. The main goal though is to demonstrate that x86's p2m_teardown() is now empty when !HVM, which in particular means the last remaining use of p2m_lock() in this cases goes away. Signed-off-by: Jan Beulich Reviewed-by: Tamas K Lengyel Reviewed-by: George Dunlap --- I was on the edge of introducing a helper for atomic_read(&d->shr_pages) but decided against because of dump_domains() not being able to use it sensibly (I really want to omit the output field altogether there when !MEM_SHARING). --- a/xen/arch/x86/mm/p2m-basic.c +++ b/xen/arch/x86/mm/p2m-basic.c @@ -159,7 +159,6 @@ void p2m_teardown(struct p2m_domain *p2m { #ifdef CONFIG_HVM struct page_info *pg; -#endif struct domain *d; =20 if ( !p2m ) @@ -169,16 +168,17 @@ void p2m_teardown(struct p2m_domain *p2m =20 p2m_lock(p2m); =20 +#ifdef CONFIG_MEM_SHARING ASSERT(atomic_read(&d->shr_pages) =3D=3D 0); +#endif =20 -#ifdef CONFIG_HVM p2m->phys_table =3D pagetable_null(); =20 while ( (pg =3D page_list_remove_head(&p2m->pages)) ) d->arch.paging.free_page(d, pg); -#endif =20 p2m_unlock(p2m); +#endif } =20 void p2m_final_teardown(struct domain *d) --- a/xen/common/domctl.c +++ b/xen/common/domctl.c @@ -109,7 +109,9 @@ void getdomaininfo(struct domain *d, str info->tot_pages =3D domain_tot_pages(d); info->max_pages =3D d->max_pages; info->outstanding_pages =3D d->outstanding_pages; +#ifdef CONFIG_MEM_SHARING info->shr_pages =3D atomic_read(&d->shr_pages); +#endif info->paged_pages =3D atomic_read(&d->paged_pages); info->shared_info_frame =3D gfn_x(mfn_to_gfn(d, _mfn(virt_to_mfn(d->shared_info)))); --- a/xen/common/keyhandler.c +++ b/xen/common/keyhandler.c @@ -274,9 +274,16 @@ static void dump_domains(unsigned char k printk(" refcnt=3D%d dying=3D%d pause_count=3D%d\n", atomic_read(&d->refcnt), d->is_dying, atomic_read(&d->pause_count)); - printk(" nr_pages=3D%d xenheap_pages=3D%d shared_pages=3D%u pag= ed_pages=3D%u " - "dirty_cpus=3D{%*pbl} max_pages=3D%u\n", - domain_tot_pages(d), d->xenheap_pages, atomic_read(&d->shr_= pages), + printk(" nr_pages=3D%u xenheap_pages=3D%u" +#ifdef CONFIG_MEM_SHARING + " shared_pages=3D%u" +#endif + " paged_pages=3D%u" + " dirty_cpus=3D{%*pbl} max_pages=3D%u\n", + domain_tot_pages(d), d->xenheap_pages, +#ifdef CONFIG_MEM_SHARING + atomic_read(&d->shr_pages), +#endif atomic_read(&d->paged_pages), CPUMASK_PR(d->dirty_cpumask), d->max_pages); printk(" handle=3D%02x%02x%02x%02x-%02x%02x-%02x%02x-" --- a/xen/include/xen/sched.h +++ b/xen/include/xen/sched.h @@ -385,7 +385,11 @@ struct domain unsigned int outstanding_pages; /* pages claimed but not possessed= */ unsigned int max_pages; /* maximum value for domain_tot_pa= ges() */ unsigned int extra_pages; /* pages not included in domain_to= t_pages() */ + +#ifdef CONFIG_MEM_SHARING atomic_t shr_pages; /* shared pages */ +#endif + atomic_t paged_pages; /* paged-out pages */ =20 /* Scheduling. */