From patchwork Mon Jul 5 16:13:40 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 12359397 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.3 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8A79FC07E99 for ; Mon, 5 Jul 2021 16:13:56 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2EF286108B for ; Mon, 5 Jul 2021 16:13:56 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2EF286108B Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from list by lists.xenproject.org with outflank-mailman.150507.278269 (Exim 4.92) (envelope-from ) id 1m0REC-0001t8-Q1; Mon, 05 Jul 2021 16:13:48 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 150507.278269; Mon, 05 Jul 2021 16:13:48 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1m0REC-0001t1-Mc; Mon, 05 Jul 2021 16:13:48 +0000 Received: by outflank-mailman (input) for mailman id 150507; Mon, 05 Jul 2021 16:13:47 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1m0REB-0001sl-7D for xen-devel@lists.xenproject.org; Mon, 05 Jul 2021 16:13:47 +0000 Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.111.102]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id f8ab7dee-ddab-11eb-844d-12813bfff9fa; Mon, 05 Jul 2021 16:13:45 +0000 (UTC) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2168.outbound.protection.outlook.com [104.47.17.168]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-36-xUorxK5lMtOQQp4frzxBXQ-1; Mon, 05 Jul 2021 18:13:43 +0200 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by VI1PR0402MB2829.eurprd04.prod.outlook.com (2603:10a6:800:bb::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.33; Mon, 5 Jul 2021 16:13:42 +0000 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::99d3:99cd:8adf:3eea]) by VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::99d3:99cd:8adf:3eea%5]) with mapi id 15.20.4287.033; Mon, 5 Jul 2021 16:13:42 +0000 Received: from [10.156.60.236] (37.24.206.209) by PR0P264CA0051.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100:1d::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.22 via Frontend Transport; Mon, 5 Jul 2021 16:13:41 +0000 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: f8ab7dee-ddab-11eb-844d-12813bfff9fa DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1625501624; 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=biaX5SsQmY+gPFRyLqxO2anEddaixa5bVWAuEYf8xbE=; b=PCfPT0d1pJrfbBm+EDnfoN+cFUDQcO6BUUgvzub3+ct0Ae/EzXSaLxvnXifnJXepci1dmd mvJFXKV4OSf1wmhlEXlJQ/ZEBTwJDaNwKsDI9X9dXRn5XTbwfu30xqtcdhaAi9W8XHqsxf qGzYtIBU0RJJpD1YfE/Y4xppfuG8/Ks= X-MC-Unique: xUorxK5lMtOQQp4frzxBXQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YHjrJMkWOlKW0atV6/tIGhbejcpcYsg6WcL/qLaoY6R0p04IFDvWittu43xBdPy7BKoTKFa54uvbvYVse+OIwgen2s2HC8+DLKfX0+wPFu9S8TpecSd+8WTYrSivg9YiUW7FijxmfwfgdPo3US51s4eEPcKAzSaG4eYjRuGBKF87M67PSsH3MUkX5SXkEyOpeXajgyY+2lW/S/oH9p5sXExEqMnZgIchjv5eFOcuqldtx648IL5Mbo+aespZFi7a25n6hcvILsJLb7sIOe7X4fJi6EZy2A+qM86N9jkt75XMtOJVpBT44aeAd8t+vr7XT6oU+KzIwaL+GlF/8StKcA== 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-SenderADCheck; bh=biaX5SsQmY+gPFRyLqxO2anEddaixa5bVWAuEYf8xbE=; b=BhmIRUkmTymks4xRaWgAgc4HRlbV+ve6Yb0scmxyuxHYvg0+5SXLupVe5Cd7oUful46m4P79PLOFyDdmwgYwUPGDsm2zG5MUK509COTwudGs7XNiPuA1nb9mDZk1qTQv/LmKyDQxHY+le54P39rFphJz4VeVulD5LtYxCFvMQXDxnT8DGjyptT5VuJUT0S13qXFIqGTXGvkBP4uM+JAmgT2ypJiR6d2k8dN6wi6Sh7H+ZzA675vtlyZyB3pKVcPF0SBuES8zU5bYe2tVdnfxr9Mzmzo9XsGAmnVKeXrLAJ9elIHxrK5c4jlLXiy1Mk0MjRXn8JuBl4M+mDUS1/KCYA== 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 Authentication-Results: xen.org; dkim=none (message not signed) header.d=none;xen.org; dmarc=none action=none header.from=suse.com; Subject: [PATCH 13/16] shr_pages field is MEM_SHARING-only From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: =?utf-8?q?Roger_Pau_Monn=C3=A9?= , Tamas K Lengyel , Andrew Cooper , George Dunlap , Ian Jackson , Julien Grall , Stefano Stabellini , Wei Liu References: Message-ID: Date: Mon, 5 Jul 2021 18:13:40 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 In-Reply-To: Content-Language: en-US X-Originating-IP: [37.24.206.209] X-ClientProxiedBy: PR0P264CA0051.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100:1d::15) To VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7d9a75ad-11ed-4b60-6e92-08d93fcfdb6e X-MS-TrafficTypeDiagnostic: VI1PR0402MB2829: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3SoEema9qzsveH6aBAU6SPiY2JSKP0rgPrfvuG/4TlS0KK0+swEjihV7bFz4IUXtVw9tI3xcMx4M8tajD3hAgUDQTQ88Bv2kHznkrwnbHgLQCgTgyBT9Lljiq36U1a8wGKxcnr9g4s8MeizW9Unobic6PlOi37vWQ1iGocaQpDaDTm1LR8DONS/mJ0eiOqsmCjFRCeIspPb8EvzP3423ZMBQt7VUxl3/nG347EqabrGHJSFORLJVbQFMA5A6ugM9PHTPEiY59r9Myiot/DGlIkkkDCTNbO86j7BLt3kA7niUQQpuVFNvXAYy8IEvrE6Nw+ueMyPRD16Nwk15N3bn7ow77QErQDvPmf3rTr5OTOYSqs1+UVY+/F0xCkWS3Op6d13W+xTXCR2X5POuSBMsIUgDZ8JkktIXwVerE0EyqISu9w6uGs4cEEyUyYsydECoXO7wAC/ORZGKqM5yDmL+2l7r7yYlmCvKF8BopuTMFPCxtzMept92BtQNlMp/WCH+UO6ROT0ckP526mP1Gw/VwWlnrBmgbrB65yG9hCAAux0M/i1KyctA+2WmSxw27LhmHTxh54k9nJo5Xwv1bcrA5r0mOFZwJmlzs6edJnGg/7Mf2siYRTKpIzSb0acZEBxkBkWhT/pPcxn1xG9I20Um+EbUsgRYq8pha1e5m8uGEKCEFwWOU23lsCogfR3xI5zM32pFBjnfhOPqknqB8kWQXiB1mD+ykj0eKOzIhUPz/yw= 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:(39850400004)(366004)(136003)(376002)(346002)(396003)(6486002)(26005)(16576012)(478600001)(2616005)(956004)(86362001)(2906002)(6916009)(316002)(83380400001)(8676002)(16526019)(66556008)(36756003)(8936002)(38100700002)(54906003)(31696002)(4326008)(66476007)(186003)(66946007)(31686004)(5660300002)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?1WTGDGX95+O6FUMJIKs84aTsKiNU?= =?utf-8?q?rRmQLVVpcIsuhsIsYNABT2OE/zIqsqZ+KMAE6tZK6mAGd2NftrHE5lJnrBSq2WL7F?= =?utf-8?q?dzJ3jh5MwwLA6N5WTrnkdUwHIebi9hzGxbRAYBouRdsuH7WkT3LISWeRFCFW9S0re?= =?utf-8?q?l1EoPPNVBLcVyc0G6SITqcTxDkOJON/AEDSHj2GXZuP9c96o7RGFLd98SkKDd+pNp?= =?utf-8?q?W40ZXQyrsMyajore2Fal9v6yVr00AklZPJqunPBQH0rBIkyW8JtVoaW1zhLNDWJBm?= =?utf-8?q?g+1Gm3AdBNuYiuo0d0inBF0DrrQuvTzstpeVj+JgPxlTDTde3GsauzfsUecMx2wn+?= =?utf-8?q?QZUKDKIuvHI46BnsWqZgrYKrCDwb3L8zivbTWsgn/Gy/ZSXsdQeZZOvpD/LCqPJMt?= =?utf-8?q?Qd/qB7wCcyxUTcKib8UpZ5ElCg083aTw4Op6Wnn+pFbhki4Af/JbYiMJoLsseQYLA?= =?utf-8?q?UTcEpkvgxraUBo94TmYbifb4ulyZ4GMl+65Ck6KI1hpg1OceDinHf6Ir2/gyUKCc4?= =?utf-8?q?3yA2WF6GGqSsdYTVPQe2DjH1riQvqr5+xqB9V6nkxQW7MhtrpJJPW/A2MXXLHu0yQ?= =?utf-8?q?McQz+W0v9ZfMb3np9794zRtCAlBFzKDAr7/H9qHXFcnUZb2oaCRigb2gpE6vtzi1s?= =?utf-8?q?u/8AWgYkVOGPfDHJ39m74BPlvJIM9l2mAtp35TlhUd46s3v0f50MeQBruohhgGoLS?= =?utf-8?q?Oy4RFnBfr+DS0dFfcVn16WZWeiXSWsyx28RNT0PuRhwgon4DZjXVVdixNlEXTQQ7R?= =?utf-8?q?CjyNClpdgKfca3HsS5DE3bUftakYJC4Xtc+dq+oYHdeZTsuRipyvkM8uaABkMreZ3?= =?utf-8?q?pElfdeWBPRZfF4+NMC3mXnWhPoTMJNPbEmESLUEd3ssJrBhHZBcpxwOBH5pX/yxRC?= =?utf-8?q?cO0xhkRo8Vcje9JrnkmMXBcIzD+f6vb6OSE+lFkGfB+x7hUh6Unk2TBsVOPgioZPi?= =?utf-8?q?wu12eKey6qbX1IRAnVHqlR0jNk45SN/7M7kWYYeHTocHJdgXMSTiaO5j/9b90o4Bl?= =?utf-8?q?pKN/G75zCFbzk5kf4Zt3ioUHap12lrJZe1ogmxPEF57QBzNPX5LDpUftzpZ9sSVL6?= =?utf-8?q?/VT8GISo161B88yxfMkZ2ADthXRQV4lmlgDegtp+9JsEWnU2mg/mXDKCiL/JS+A1S?= =?utf-8?q?E/cS0YyTGjpB1+jRkleEhXGl6yWuMVkJe/hYfCqmOWvggP+ZRVG4zl0CdFG0CUm8w?= =?utf-8?q?lj/2CyKivkB9W1Z18LSu0MynDVV3QWnzD3jNjynH/xniAgvylicZ/ygntfKPgX8Zp?= =?utf-8?q?WPhjzd7w+fOF2Oyt?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7d9a75ad-11ed-4b60-6e92-08d93fcfdb6e X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jul 2021 16:13:42.2932 (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: 3VHQv4+gLQmlrhwxC2FJBLrxMNW7prRSD7DCFzKrNFGfbxqMLReTNxsisnUQYd0Lm95diYXgvrf3hdbr7U+T2w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB2829 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; if ( !p2m ) @@ -169,16 +168,17 @@ void p2m_teardown(struct p2m_domain *p2m p2m_lock(p2m); +#ifdef CONFIG_MEM_SHARING ASSERT(atomic_read(&d->shr_pages) == 0); +#endif -#ifdef CONFIG_HVM p2m->phys_table = pagetable_null(); while ( (pg = page_list_remove_head(&p2m->pages)) ) d->arch.paging.free_page(d, pg); -#endif p2m_unlock(p2m); +#endif } void p2m_final_teardown(struct domain *d) --- a/xen/common/domctl.c +++ b/xen/common/domctl.c @@ -109,7 +109,11 @@ void getdomaininfo(struct domain *d, str info->tot_pages = domain_tot_pages(d); info->max_pages = d->max_pages; info->outstanding_pages = d->outstanding_pages; +#ifdef CONFIG_MEM_SHARING info->shr_pages = atomic_read(&d->shr_pages); +#else + info->shr_pages = 0; +#endif info->paged_pages = atomic_read(&d->paged_pages); info->shared_info_frame = 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=%d dying=%d pause_count=%d\n", atomic_read(&d->refcnt), d->is_dying, atomic_read(&d->pause_count)); - printk(" nr_pages=%d xenheap_pages=%d shared_pages=%u paged_pages=%u " - "dirty_cpus={%*pbl} max_pages=%u\n", - domain_tot_pages(d), d->xenheap_pages, atomic_read(&d->shr_pages), + printk(" nr_pages=%u xenheap_pages=%u" +#ifdef CONFIG_MEM_SHARING + " shared_pages=%u" +#endif + " paged_pages=%u" + " dirty_cpus={%*pbl} max_pages=%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=%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_pages() */ unsigned int extra_pages; /* pages not included in domain_tot_pages() */ + +#ifdef CONFIG_MEM_SHARING atomic_t shr_pages; /* shared pages */ +#endif + atomic_t paged_pages; /* paged-out pages */ /* Scheduling. */