From nobody Sat Apr 20 10:07:47 2024 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=1dmarc=pass fromdomain=oracle.com); dmarc=pass(p=none dis=none) header.from=oracle.com ARC-Seal: i=2; a=rsa-sha256; t=1617052553; cv=pass; d=zohomail.com; s=zohoarc; b=J3kyOYQgemVbVl2MqNotjk2Q9n7hbL2+TGNR+y4AXq3upLd20RLZn7C2y84+BlUKixiP1/ZJzTTpuTJ0VPVTkPB9LJak9nICaiq6kv+VzoQJF5hocH6BDFOvbhSENq6m0yd2VSO14x4Lekm6ct+1aZCoiB74XFFgTNPUpqbDMnk= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1617052553; 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=g3s/RCDGEyaC3QTwLUFnQb6XJRasTN8+0afNbC6QMlw=; b=K550Z1bguDei18vMY3izOju3Un3SzJpqu41u46pEQnxALeqoBrldrO5FyB6pMNqmkd7QxxbH2cjOmfe7zkjPnUHkWP+vXtpoAhXahIm3VNKqVYeX8VLB/KlLNsS8dy3IEY3ILIbrriEA1Ix904d5HXFolFWMD9mOYkhaJ9msMfs= 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=1dmarc=pass fromdomain=oracle.com); dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1617052553189130.74154970846814; Mon, 29 Mar 2021 14:15:53 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.103266.197056 (Exim 4.92) (envelope-from ) id 1lQzEN-0006Qe-UA; Mon, 29 Mar 2021 21:15:27 +0000 Received: by outflank-mailman (output) from mailman id 103266.197056; Mon, 29 Mar 2021 21:15:27 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lQzEN-0006QV-KK; Mon, 29 Mar 2021 21:15:27 +0000 Received: by outflank-mailman (input) for mailman id 103266; Mon, 29 Mar 2021 21:15:26 +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 1lQzEM-0006Pz-Ep for xen-devel@lists.xenproject.org; Mon, 29 Mar 2021 21:15:26 +0000 Received: from aserp2130.oracle.com (unknown [141.146.126.79]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 52edc7c8-c85b-45d3-ad43-76f9ab5ebb0b; Mon, 29 Mar 2021 21:15:25 +0000 (UTC) Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 12TL8u09028614; Mon, 29 Mar 2021 21:15:23 GMT Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by aserp2130.oracle.com with ESMTP id 37ht7bd4gm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 29 Mar 2021 21:15:23 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 12TLAkVo131526; Mon, 29 Mar 2021 21:15:22 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2173.outbound.protection.outlook.com [104.47.56.173]) by aserp3020.oracle.com with ESMTP id 37jekxp8rn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 29 Mar 2021 21:15:22 +0000 Received: from BYAPR10MB3288.namprd10.prod.outlook.com (2603:10b6:a03:156::21) by SJ0PR10MB4416.namprd10.prod.outlook.com (2603:10b6:a03:2ae::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.29; Mon, 29 Mar 2021 21:15:18 +0000 Received: from BYAPR10MB3288.namprd10.prod.outlook.com ([fe80::f489:4e25:63e0:c721]) by BYAPR10MB3288.namprd10.prod.outlook.com ([fe80::f489:4e25:63e0:c721%7]) with mapi id 15.20.3977.033; Mon, 29 Mar 2021 21:15:17 +0000 Received: from bostrovs-us.us.oracle.com (209.17.40.37) by MW4PR04CA0095.namprd04.prod.outlook.com (2603:10b6:303:83::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.32 via Frontend Transport; Mon, 29 Mar 2021 21:15:16 +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: 52edc7c8-c85b-45d3-ad43-76f9ab5ebb0b DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-type : content-transfer-encoding : mime-version; s=corp-2020-01-29; bh=g3s/RCDGEyaC3QTwLUFnQb6XJRasTN8+0afNbC6QMlw=; b=NVJxLNnGB77N0yexChq0RsBgXUSbhYqB5mBCvsX2EZddh1ySMdlX9NoAydmtzHhpY/j2 Ck0gkdSAUL552tJbrbMhQFG6vC+twGyPzq8PSft8Aha5NYLgAp82I2gZ3jcVnlPYY+YY BJn1Z48sjnmQtJh5H5TuCkCjgCrQpoE+8d9TX2zyETVMwhNON0FbNW6C5iJo2EjllGzV jEVgVyR9OawIFzRW7M2wMJZGYxHTWOMl1kSdw7jYBxhZfkFJpFoiSCDgqgM4FOIuRmqr vR2OSWtEYJ0vSysh+MNfAUW3IhbxowCRx8q3+hh9Zq3raglH+dUr+JRDnmlRsUIIfoPh ng== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WpH9daAzIyM1kOKFsvOJPb7DVkBg311L0Z4U7Yz3EthzRqyQw79hL8ihyr+WJq6gJCNTISToI6jPIsD3d1ASvxoBE8vnPMT0KWhrEKH8zmd+5ZS12DcaeSNCdkOLSYgBZzMVQ6n1GDyawkWlLvxsYRJIKZrayL9jJBzneqvq60pHjZTj0Gl/QcTq4LtUVjDv5URmolhLPFnbHDSSVniuU+TfEGstX2NG5eYYYqPi4Spt9k1rzQcbRHm/qdVPxAPgRbhMtEgOaMHkReSIwNAm0B+GDK1Kk1mODKvJkwAt0hEViV9d8K3G11pF5GwwA/jL1WpQRx/rgTp5M1j2NsElWQ== 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=g3s/RCDGEyaC3QTwLUFnQb6XJRasTN8+0afNbC6QMlw=; b=gU4ST/B5e4QQYTJD7vtz0Qq8x612XcXMv63aXFpMn1aKuunBpVNZV32YnWFNmYSgf+pvHhF1s5bQ7X+XYCW6ggLs1+Kp09rOZ6i15uBOA2xQVQsLa5nkr4AY4EPz/ilMpMOj/X9gzg/cZ+OUF5REI4sLeLU3G9jn1OrxrXgyxHlbUCyYmRbjkIobc/sWJx1uR0AaS8kGNvd1PwYsVLVn1pXRZr4w3GG0KT1xxWSj184P5Wi+pKnlRuvsut4QuESm64tTbN1zBEvUJCsQJM4+ZPtPjWQrmW3SF4Lm/xI2a/FpRl5gRIbvkCKJePfPzuD5QOO8k1m3xgfXGjxbTU7pUQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=g3s/RCDGEyaC3QTwLUFnQb6XJRasTN8+0afNbC6QMlw=; b=hEYpmcFeRdvenpVVcAEHkUZMzrb9oQ1FA5SbbCa2OgbJYvZYT2TqdDtjWAYy9tA74JU6qaMpCq72o8D3Ko0jQIlZ1hk7LsFTbU9LhxMw2GV+qxqw2WjEKmQ8OuuJH+f/rk2b1isJnfX7895favJpFNlZ/dnISG0TU7NBX+tDE5A= Authentication-Results: lists.xenproject.org; dkim=none (message not signed) header.d=none;lists.xenproject.org; dmarc=none action=none header.from=oracle.com; From: Boris Ostrovsky To: xen-devel@lists.xenproject.org Cc: jbeulich@suse.com, andrew.cooper3@citrix.com, roger.pau@citrix.com, wl@xen.org, boris.ostrovsky@oracle.com, stephen.s.brennan@oracle.com, iwj@xenproject.org Subject: [PATCH for-4.15 v3 1/2] x86/vpt: Do not take pt_migrate rwlock in some cases Date: Mon, 29 Mar 2021 17:15:01 -0400 Message-Id: <1617052502-14181-2-git-send-email-boris.ostrovsky@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1617052502-14181-1-git-send-email-boris.ostrovsky@oracle.com> References: <1617052502-14181-1-git-send-email-boris.ostrovsky@oracle.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Originating-IP: [209.17.40.37] X-ClientProxiedBy: MW4PR04CA0095.namprd04.prod.outlook.com (2603:10b6:303:83::10) To BYAPR10MB3288.namprd10.prod.outlook.com (2603:10b6:a03:156::21) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5d03350d-8e52-40b6-f8d7-08d8f2f7c0bd X-MS-TrafficTypeDiagnostic: SJ0PR10MB4416: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4125; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: gporBrCHo6zVJfZCTQfeAba5Klga78LAmzmN5W0LLP1pfRyWIaBy/+7FVeZcdIA9emHoLNnQXqYXV25HRAU7dyNtkaWSm4EAggxCpM+od4E6phtzvqf2ErzyMRXTkx+PGjUStkbkPq6tO6UPFJ5uPFAmuF0CMo8SQTCBxvM8haMlLWxI3JlSf28MerxAa9wrYEjHDLcwrd6cqxNxf0ZI+BWjPoo61MoRDSLHC+OQ5JRXlQnuhvNBQr99m/2o4bmP6RDyz8GMxQZej5BOjo7uA8fkebvV/3j273JcZFjynlasqtBVD53zkZ/NqgnIcGYIN+OzYNR7xe+kZQhANcIToW4hRjUMY86Ll0ts4J0RWhnb5IwrzBcjiRGoNYMHV1tEdMkfB1FuBv9RcGhss7ECVEfF6P/unK7DQvTsfaFiXkijssuLHdYpUrXoyPhBzFKqmVXgeIOpjwTd+/1tfiYfp03kCZ3MsJuQeS/iSANRNC8Kgjufiz9GFVbO1Lx0usNXDUw5bKWuEzLxdEHw3safvBh5kmtT79WAfUQMpDCjEE5zrVUFGK7ZenNPS4JstiDKAtlNlD5lRE6kd4rbHeXWeDyb+s34TeHw78EBOTQCfVFyJ83IbKsveO9D87U/0d6BQ4Hr3jn9HbE9o2t7cyOUMfETqWB1dCHtCibXBcfaNNY= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB3288.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(136003)(39860400002)(346002)(396003)(376002)(366004)(316002)(5660300002)(36756003)(6916009)(8936002)(6666004)(83380400001)(2906002)(16526019)(186003)(44832011)(2616005)(38100700001)(4326008)(66946007)(478600001)(6486002)(7696005)(52116002)(8676002)(956004)(26005)(66556008)(66476007)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?Rkx4WTRpRUEyYUFud3JRcWZzcHYwb0hxQXZnbnZwMXRLZXdVc2RNYXBIZ0tS?= =?utf-8?B?eDFJUENuWldIZHZ3OGUzWmZOUGhWMUJZUjdtVmpPeDhJVkRnYkc4cUNzVU9x?= =?utf-8?B?N0JkazJCajIxWlBmdVBoNXlJOGt6ZXhnM1p0anlXTzIvT3Z0YVNCVlFmU1Fa?= =?utf-8?B?WElBTHNJRk5YQ2R0TkNEQzlQY2psRFRzc3BkZ2xicUFCU0pWRWN4Slg4OENO?= =?utf-8?B?YnMzMmJRdFVTa05qMENHZ1BVT1ljUGdrYTlrTkpTUE5BZ3hzL0dmS0hiT2hj?= =?utf-8?B?cmpjdHhUcGU5eXl4VVkycjUwRlE0MkoyLzBWcWIvRVh4WDdoS25BUENUcmh2?= =?utf-8?B?Q0VGSllOU01pSFVJQmNXRmpGV0FMSCsyUW0rRDhIeElRTlVMakJpajRnMm1s?= =?utf-8?B?ZFpteEoxRnNmY3pyd2NLci9TUGtkOEczZldZTDVaamY5UlFvMVBpNDQzclp6?= =?utf-8?B?YWJkMkN5bFB1emp6ZjlUUTk1T3NFbjlSK3dJTGtVY0x6Z2ZqREdTWk1UZGFy?= =?utf-8?B?MkpQQWFRQTBlWXBMKzVzS0R4TzdHUkVzOGFFWWhoZjJ1Rkh5emJlQlU4cnky?= =?utf-8?B?cmduTHVCYy9HSzFCcTFiVWtxZ1NXTmRRN0F3VHR6UkRnNnlmRVZJZzNBY0x6?= =?utf-8?B?Nm5uek9tc3o1cXA1WEFkUGt2blI3Y2M3L1pLd09tTDZHL1NOMXJGVmRMRjMx?= =?utf-8?B?L0ZnbTlnR1pvR2lXcVhCSUJSdmI1THkwUHJDLzh4SUNiUHMrd1FOV3VEZVZO?= =?utf-8?B?d3BTYmEvSXJaZ0lhUlNpdWNHZmhQbmlVWE4zOStVMU9kL0dPM0JnYXpEUHpr?= =?utf-8?B?QlhYd2lrU0xCY3hHVVVBQ1BXUjd1WnVpL3RCUnZDdkVyODNwQXdOL3pQTndY?= =?utf-8?B?NThNNUVnRmtNa204VSs1VEc1RnZGRUJNWnRNeVdBWFV0RWgzVFJsMUNjblho?= =?utf-8?B?VitmUzk1bzVCdGxJanRHcFF6bEdTS0krUDRsbjRMTGNUcjlhckF4OFRiNHRx?= =?utf-8?B?QjJwL3k4cWMwd3cxVkcyL3lBd0lhNXVnaGlQMVRNL2RBTm1PNFhyQWdqYUdT?= =?utf-8?B?Z200dnBibm54R1ZDcDRheHI1YXJ5QllhVkcwQlJZeVBJNkpvQm56YTlGRU5S?= =?utf-8?B?UWdCcXN5clltOXN3RXBPVk0wZWtWV2orczdodU1vRmFmNEVXeER3cEdZWGdW?= =?utf-8?B?ZFFxT0VpbnpyQzdmdEtTZnhqbG1xcHQwb2dlTFpVaDlKaXFnSWlxZ2RMcDJh?= =?utf-8?B?aWRDUi9PRVVLaHRmVGxRLyt6bXdMUVB0Tk53ZzFUVXVqQ2d4UFlKZ0lZa0dR?= =?utf-8?B?MCtaYkU3cjNySm9EaGljbjA4SFBseHAyZjR3aDBaVjRYWEQwNUtBREFlS05E?= =?utf-8?B?SHVXQTZCTzF1bFN3eCtldExScEVDZHJHdnpOUWR3NUVteCt5WmhFL1BCSmFJ?= =?utf-8?B?VlhWNHg1cU8zWmgyb0xkamE1MVVYdTBTK0xYbU9DMTcxVHJLUGtMSmZoTHVC?= =?utf-8?B?YXdzWC9ndkVHOXVJNjZLSXhsSCtmYmMwUmdsR3Bpb0UrejVmKzhDNXp2dldR?= =?utf-8?B?OUZjUjRiSnhRdXVkRnh1ZEhtbXFSL2djSmp1Sk43UDQrMFJKNEI5R0Q4NHFq?= =?utf-8?B?SnRqWWkzY2d4b3Q1TjUxa0VkMUJDWUFJVm53dTZtUXdLdGdZVEwzdjV0UHB6?= =?utf-8?B?dXQ4S0Izb3BsOTI4aWRMWmFRK1NZY2tLRHBTSExoR1RmZkZHTUhjRkp5Vita?= =?utf-8?Q?J1lIO1Eij+9WwyDJi0w+Ocqoe+P08PaFuHYmUa6?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5d03350d-8e52-40b6-f8d7-08d8f2f7c0bd X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB3288.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Mar 2021 21:15:17.8633 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 8+cnL/DSWQN7cfSsaYgJYzc5DpGERbRe37lYEbxUcFhE76qvy606s425YEGMUUvFgWj5+N+UQrJnv/mPXH+LrZrq9q+7JwDVqfYlTG542n0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB4416 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9938 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 mlxscore=0 phishscore=0 suspectscore=0 mlxlogscore=999 adultscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2103250000 definitions=main-2103290157 X-Proofpoint-GUID: lUVoQD8gmjRWIznPSEdIL9OorTfsgQJO X-Proofpoint-ORIG-GUID: lUVoQD8gmjRWIznPSEdIL9OorTfsgQJO X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9938 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 phishscore=0 spamscore=0 clxscore=1015 mlxscore=0 bulkscore=0 priorityscore=1501 adultscore=0 impostorscore=0 malwarescore=0 lowpriorityscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2103250000 definitions=main-2103290157 X-ZohoMail-DKIM: pass (identity @oracle.com) Commit 8e76aef72820 ("x86/vpt: fix race when migrating timers between vCPUs") addressed XSA-336 by introducing a per-domain rwlock that was intended to protect periodic timer during VCPU migration. Since such migration is an infrequent event no performance impact was expected. Unfortunately this turned out not to be the case: on a fairly large guest (92 VCPUs) we've observed as much as 40% TPCC performance regression with some guest kernels. Further investigation pointed to pt_migrate read lock taken in pt_update_irq() as the largest contributor to this regression. With large number of VCPUs and large number of VMEXITs (from where pt_update_irq() is always called) the update of an atomic in read_lock() is thought to be the main cause. Stephen Brennan analyzed locking pattern and classified lock users as follows: 1. Functions which read (maybe write) all periodic_time instances attached to a particular vCPU. These are functions which use pt_vcpu_lock() such as pt_restore_timer(), pt_save_timer(), etc. 2. Functions which want to modify a particular periodic_time object. These functions lock whichever vCPU the periodic_time is attached to, but since the vCPU could be modified without holding any lock, they are vulnerable to XSA-336. Functions in this group use pt_lock(), such as pt_timer_fn() or destroy_periodic_time(). 3. Functions which not only want to modify the periodic_time, but also would like to modify the =3Dvcpu=3D fields. These are create_periodic_time() or pt_adjust_vcpu(). They create XSA-336 conditions for group 2, but we can't simply hold 2 vcpu locks due to the deadlock risk. Roger then pointed out that group 1 functions don't really need to hold the pt_migrate rwlock and that instead groups 2 and 3 should hold per-vcpu lock whenever they modify per-vcpu timer lists. Suggested-by: Stephen Brennan Suggested-by: Roger Pau Monn=C3=A9 Signed-off-by: Boris Ostrovsky Reviewed-by: Roger Pau Monn=C3=A9 Reviewed-by: Stephen Brennan --- v3: * Updated comments as proposed by Roger * Updated commit message (Roger, Stephen) * Added pt->vcpu=3D=3Dv test in pt_adjust_vcpu() (Jan) * Use v instead of pt->vcpu as argument to locking helpers in create_period= ic_time() and pt_adjust_vcpu() (Jan) xen/arch/x86/hvm/vpt.c | 44 ++++++++++++++++++++++++++++++++++-----= ---- xen/include/asm-x86/hvm/vpt.h | 18 ++++++++++++------ 2 files changed, 47 insertions(+), 15 deletions(-) diff --git a/xen/arch/x86/hvm/vpt.c b/xen/arch/x86/hvm/vpt.c index 4c2afe2e9154..560fab9cfc60 100644 --- a/xen/arch/x86/hvm/vpt.c +++ b/xen/arch/x86/hvm/vpt.c @@ -153,32 +153,43 @@ static int pt_irq_masked(struct periodic_time *pt) return 1; } =20 +/* + * Functions which read (maybe write) all periodic_time instances + * attached to a particular vCPU use pt_vcpu_{un}lock locking helpers. + * + * Such users are explicitly forbidden from changing the value of the + * pt->vcpu field, because another thread holding the pt_migrate lock + * may already be spinning waiting for your vcpu lock. + */ static void pt_vcpu_lock(struct vcpu *v) { - read_lock(&v->domain->arch.hvm.pl_time->pt_migrate); spin_lock(&v->arch.hvm.tm_lock); } =20 static void pt_vcpu_unlock(struct vcpu *v) { spin_unlock(&v->arch.hvm.tm_lock); - read_unlock(&v->domain->arch.hvm.pl_time->pt_migrate); } =20 +/* + * Functions which want to modify a particular periodic_time object + * use pt_{un}lock locking helpers. + * + * These users lock whichever vCPU the periodic_time is attached to, + * but since the vCPU could be modified without holding any lock, they + * need to take an additional lock that protects against pt->vcpu + * changing. + */ static void pt_lock(struct periodic_time *pt) { - /* - * We cannot use pt_vcpu_lock here, because we need to acquire the - * per-domain lock first and then (re-)fetch the value of pt->vcpu, or - * else we might be using a stale value of pt->vcpu. - */ read_lock(&pt->vcpu->domain->arch.hvm.pl_time->pt_migrate); spin_lock(&pt->vcpu->arch.hvm.tm_lock); } =20 static void pt_unlock(struct periodic_time *pt) { - pt_vcpu_unlock(pt->vcpu); + spin_unlock(&pt->vcpu->arch.hvm.tm_lock); + read_unlock(&pt->vcpu->domain->arch.hvm.pl_time->pt_migrate); } =20 static void pt_process_missed_ticks(struct periodic_time *pt) @@ -543,8 +554,10 @@ void create_periodic_time( pt->cb =3D cb; pt->priv =3D data; =20 + pt_vcpu_lock(v); pt->on_list =3D 1; list_add(&pt->list, &v->arch.hvm.tm_list); + pt_vcpu_unlock(v); =20 init_timer(&pt->timer, pt_timer_fn, pt, v->processor); set_timer(&pt->timer, pt->scheduled); @@ -580,13 +593,26 @@ static void pt_adjust_vcpu(struct periodic_time *pt, = struct vcpu *v) return; =20 write_lock(&pt->vcpu->domain->arch.hvm.pl_time->pt_migrate); + + if ( pt->vcpu =3D=3D v ) + goto out; + + pt_vcpu_lock(pt->vcpu); + if ( pt->on_list ) + list_del(&pt->list); + pt_vcpu_unlock(pt->vcpu); + pt->vcpu =3D v; + + pt_vcpu_lock(v); if ( pt->on_list ) { - list_del(&pt->list); list_add(&pt->list, &v->arch.hvm.tm_list); migrate_timer(&pt->timer, v->processor); } + pt_vcpu_unlock(v); + + out: write_unlock(&pt->vcpu->domain->arch.hvm.pl_time->pt_migrate); } =20 diff --git a/xen/include/asm-x86/hvm/vpt.h b/xen/include/asm-x86/hvm/vpt.h index 39d26cbda496..74c0cedd11cc 100644 --- a/xen/include/asm-x86/hvm/vpt.h +++ b/xen/include/asm-x86/hvm/vpt.h @@ -128,12 +128,18 @@ struct pl_time { /* platform time */ struct RTCState vrtc; struct HPETState vhpet; struct PMTState vpmt; - /* - * rwlock to prevent periodic_time vCPU migration. Take the lock in re= ad - * mode in order to prevent the vcpu field of periodic_time from chang= ing. - * Lock must be taken in write mode when changes to the vcpu field are - * performed, as it allows exclusive access to all the timers of a dom= ain. - */ + /* + * Functions which want to modify the vcpu field of the vpt need + * to hold the global lock (pt_migrate) in write mode together + * with the per-vcpu locks of the lists being modified. Functions + * that want to lock a periodic_timer that's possibly on a + * different vCPU list need to take the lock in read mode first in + * order to prevent the vcpu field of periodic_timer from + * changing. + * + * Note that two vcpu locks cannot be held at the same time to + * avoid a deadlock. + */ rwlock_t pt_migrate; /* guest_time =3D Xen sys time + stime_offset */ int64_t stime_offset; --=20 1.8.3.1 From nobody Sat Apr 20 10:07:47 2024 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=1dmarc=pass fromdomain=oracle.com); dmarc=pass(p=none dis=none) header.from=oracle.com ARC-Seal: i=2; a=rsa-sha256; t=1617052552; cv=pass; d=zohomail.com; s=zohoarc; b=OVqUNjAUuyyn19uutM2UXO0ZoWCWxke6W+UJXbUqhaew1emjf0CqqLSn7A93/KAeoQB5l4SyrQr9azQyFJDGq9117jqwM80rMLzUcZIfxjlI6QpUcXkQE7tbX78twLvQyKexY9jl2sXh1/dM99ghLuZL+3mD2+Ptk2kDwoDydhY= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1617052552; h=Content-Type: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=ivlZR+JN8fPCmMqrrPDqj0Vqn0pzdwEdR9x+/IBM4g8=; b=TY9hnrWA64LWUkdv7jJq8GMdonTXFXzb5OBDZmEptpsJ7AhG2wfAWkVfRRm0CjZuDZoP/U8fDuAG4GWNCtbV8k7frMgIXIu47BAdYGKlOgedIMYvnkJlilZjCRumTwk4IHZ/MgRUSHV/aehvmnRTeCmWFXZIgVBohYTZcfDoCJA= 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=1dmarc=pass fromdomain=oracle.com); dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1617052552503941.8090503842402; Mon, 29 Mar 2021 14:15:52 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.103267.197070 (Exim 4.92) (envelope-from ) id 1lQzER-0006Ss-7f; Mon, 29 Mar 2021 21:15:31 +0000 Received: by outflank-mailman (output) from mailman id 103267.197070; Mon, 29 Mar 2021 21:15:31 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lQzER-0006Sl-4N; Mon, 29 Mar 2021 21:15:31 +0000 Received: by outflank-mailman (input) for mailman id 103267; Mon, 29 Mar 2021 21:15:29 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lQzEP-0006Pu-Qw for xen-devel@lists.xenproject.org; Mon, 29 Mar 2021 21:15:29 +0000 Received: from userp2130.oracle.com (unknown [156.151.31.86]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 2dc537ff-a2cb-40c2-bc38-571311742598; Mon, 29 Mar 2021 21:15:26 +0000 (UTC) Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 12TL93X2149008; Mon, 29 Mar 2021 21:15:24 GMT Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by userp2130.oracle.com with ESMTP id 37hv4r50rj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 29 Mar 2021 21:15:24 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 12TLAkVp131526; Mon, 29 Mar 2021 21:15:23 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2173.outbound.protection.outlook.com [104.47.56.173]) by aserp3020.oracle.com with ESMTP id 37jekxp8rn-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 29 Mar 2021 21:15:23 +0000 Received: from BYAPR10MB3288.namprd10.prod.outlook.com (2603:10b6:a03:156::21) by SJ0PR10MB4416.namprd10.prod.outlook.com (2603:10b6:a03:2ae::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.29; Mon, 29 Mar 2021 21:15:21 +0000 Received: from BYAPR10MB3288.namprd10.prod.outlook.com ([fe80::f489:4e25:63e0:c721]) by BYAPR10MB3288.namprd10.prod.outlook.com ([fe80::f489:4e25:63e0:c721%7]) with mapi id 15.20.3977.033; Mon, 29 Mar 2021 21:15:21 +0000 Received: from bostrovs-us.us.oracle.com (209.17.40.37) by MW4PR04CA0095.namprd04.prod.outlook.com (2603:10b6:303:83::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.32 via Frontend Transport; Mon, 29 Mar 2021 21:15:18 +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: 2dc537ff-a2cb-40c2-bc38-571311742598 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-type : mime-version; s=corp-2020-01-29; bh=ivlZR+JN8fPCmMqrrPDqj0Vqn0pzdwEdR9x+/IBM4g8=; b=Mcplh4EucM48vC0OsjgpeD4PFj9MXegkqwJi06KJBzzCd89XvueDhIHcKi57ao+kK95m 1wbFcXN95PmyxChRnmRrwMV5f73jjQRl+/POICviirEeyKJp/KqbmcvqIdH8XuND9K6F kRqkszJwsnrRowPNRY952j46dX/wZlfK17zuwl46WJOYlXnF4CIqAUpDDMSC8X7OuJBE gtwpwhtfge1YeL7f6B3PVyAjGG309FW1MSam8jpeLpmQy8TBfC7ip7yYHoNkYsG1DeNd KtsVCR941BQyx0CibfUNkJqFYrulat+QjrT9tOvoo0YgXG//FzM16ceCX1riGGVraz6e lw== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=W1AZhgISStcdkDVTC/CvbFIMZBumE7/TPl5bzOY5Hni9boGkLxnlbru+UHMT+NJYQeXUNYlQ/5Rhf/HgMlH38wgkSyBD+g0rsWVAMXo7BAW+6yfzHchoQQQYF31UcjLVLfspkyXNyduv6pk2JQZ6/pKTCxx0wqG7A9Ux04OSksLOF9rxPPH+7/oHdroXFhW673ZSOo1PbKJL8u1KqBJAc8YRwGqlhiL02fJCByEDH8q93IXx62lV8Hxu9hziay35r+3Lg7m1sOPBQFUD+rhaaqZon1NEXJZ8QtTpxv7+tlZp9rHCyapAIL1SF93iB+Zl106xyS5HzUYlJBYSBKeIgQ== 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=ivlZR+JN8fPCmMqrrPDqj0Vqn0pzdwEdR9x+/IBM4g8=; b=Ge9NzWdV1aavrOFdGJNHeim2UkPqMgyJiKyHwr2ikQJTrNgwtkERNF0ZzywBn/QdSLWJHpwf5kob1+1FZED2+965Kq8L21B4SnnvO6Pg5+jHiauJK2/jHU5MqxQAZ2qX5lM8oiQdUmDH2HTgq2a1LKJgOQMzCII0UYAlmAATIWeoyXuKijWi3q/UmWGLq5Vjm9T8YA3EiaGdd2RBL1l5RR0wSNIhjt3b7mCHXXO37JQyjDFcBcIJ1v2uYJWJvW/Gjfp0NAW2T4oPVvuyRZWNDF+vv7Tg5vvmT28zbTAGJzvKSLsx/rz+LyOZe+v38sZqZdZ7C6lVD0ZWBJfwv8J1pw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ivlZR+JN8fPCmMqrrPDqj0Vqn0pzdwEdR9x+/IBM4g8=; b=UAqplVG4vs/2Bfh6x5OVNZFKhX/NtOwmXqsFCfgzqG9eJtCgzKOsIs+JCR/UlJnxwiYwWg5i31+bp9NTCaVTJjv/UuyHscxHSiIKzJ2+d6Km5FKYQd7aNgUAb4oNEFhHQEt91SYWV/j9ctLwcRznXNFloCgV/VY4KvVeg5Hbdmw= Authentication-Results: lists.xenproject.org; dkim=none (message not signed) header.d=none;lists.xenproject.org; dmarc=none action=none header.from=oracle.com; From: Boris Ostrovsky To: xen-devel@lists.xenproject.org Cc: jbeulich@suse.com, andrew.cooper3@citrix.com, roger.pau@citrix.com, wl@xen.org, boris.ostrovsky@oracle.com, stephen.s.brennan@oracle.com, iwj@xenproject.org Subject: [PATCH v3 2/2] x86/vpt: Simplify locking argument to write_{un}lock Date: Mon, 29 Mar 2021 17:15:02 -0400 Message-Id: <1617052502-14181-3-git-send-email-boris.ostrovsky@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1617052502-14181-1-git-send-email-boris.ostrovsky@oracle.com> References: <1617052502-14181-1-git-send-email-boris.ostrovsky@oracle.com> X-Originating-IP: [209.17.40.37] X-ClientProxiedBy: MW4PR04CA0095.namprd04.prod.outlook.com (2603:10b6:303:83::10) To BYAPR10MB3288.namprd10.prod.outlook.com (2603:10b6:a03:156::21) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3efc8d69-a83c-4a4e-220b-08d8f2f7c197 X-MS-TrafficTypeDiagnostic: SJ0PR10MB4416: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:660; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HoAxWbBhralypUVp0Q2lLTso8gmfV2PwqXnwuqhMcsIdi4ZAWHSuKRgRn0qT2C9YVmuPxd7Y+TC31iZLd6XC7mfpmdQXFhCVhzEKGv/xEwpwNycGG3fhODL8EkrAOoXIgPVldBm25iCMt6Ns0OznvTd0dl08sOu8+ILCaYFM4tHXInHUMvxR7/KsiqwM1OIJnIufvVwl8a5DaB+YqYLGpicsFc+b5vhygRcHvxV52vDueRDE9w/9vODjttxUbHwso4Hv3UeX3fvdKt8UGOR8RvaXYkrPb+uWbzgM8G+TBZILmqZVAdh7uM8BVLW2pK97RsXOBXDT20lASKul0LNnY6aOEbKmJfg33AC0CuWJTCTj7/T2YJX5/BKcpPz10mk6K+vQLznrNWGf4H12u1LOUXrwXbJipLnUnk25TCdymbAYb+XbfWGj9GKvw+N/fFO5ile13alrzNKBzsQOdSXc0vhOKbVaxQLaTGk6rtZxsaslh9wEdBLSoyZYhqik2QqBCiiB7w3reZv9fu/y9XjTKxBEo77AvA2PjWMdgLXiOvgOgETkBnkDiDo357jZM1ueofZmY0ucNue3NmLM/7iUcz0UPRlceOMUr0tSe+CL8Q7MZr8Ut/a/3ySfsiog9NMgwQt2WOHNV9JFZfqRCT6hocqFhYmq9C7bKxtNTuxpd+c= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB3288.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(136003)(39860400002)(346002)(396003)(376002)(366004)(316002)(5660300002)(36756003)(6916009)(8936002)(6666004)(83380400001)(2906002)(16526019)(186003)(44832011)(2616005)(38100700001)(4326008)(66946007)(478600001)(6486002)(7696005)(52116002)(8676002)(956004)(26005)(66556008)(66476007)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?Sqp14K9dw7ucqx6U5olNAAwJqCMAfz8fn3IIgCi508WhSvO7Wmg4Fgs7DBs8?= =?us-ascii?Q?ixSQRCYufpgCL2Z7G+44plxUiRsYFcyPsGrfRJxtvZWofyExs9Gj5XNhRfKO?= =?us-ascii?Q?YwokiikkLD7C4gmzFSSh4bqDIUviOFZITaRQlbphuXVwEiwJD/jzOH0hdgzx?= =?us-ascii?Q?+GYwSVlOR1iuoyA1BEijsneTYR+sOR/szYcWJxBL/ZcnqcqOF/9LiVH8cMl/?= =?us-ascii?Q?0kgWIoACFeTZTyyh4Yts5sTlWYjXmM1ZaKyQeV03O7JWk/8KzAqVab7VqTaQ?= =?us-ascii?Q?iwyH8Q+3/IAPszyPs29qrAQzIU1bsRh+rqsmpNO1ztQ4YKH2vvhgIQcnjIDw?= =?us-ascii?Q?a3jkD5yGbAlmQYn19plFBO1XJ14yHZYqoDFsb+hjdq8axaNEuIABitt91UeA?= =?us-ascii?Q?x+BDm5ynhPlTliu/tU3vuv+ycCziFmleSkXSn/s1iv0O8vA/Pv34DDXf5q0v?= =?us-ascii?Q?Z8VrIESgclcrUHYIo68y6vJJn6h1H1zi+IYsD3m1jQPnlLhH1Dx5oEnm+rpx?= =?us-ascii?Q?qY2WLk0CIqju+vp2Qc+5ayln/9BcEZyzyh2ojALDWYKxH/WOyRlLCci4HUnD?= =?us-ascii?Q?+YYV2QXE8hzbt6nIpfpxWE4fU9zGgv2oQ+OGu0xOyj8HTDBrVYSTxFdoWdHc?= =?us-ascii?Q?AposiEB6ewPReBH7uy/qqibNStzhOn5qFVcFL4pEliyrxNHJ0+FZzytgPawi?= =?us-ascii?Q?UwNOGyEYqTW3WHqETEuGfMBgtXYlMFso5Q5dlw8YfuLCdOQWge8uzH/N/dwj?= =?us-ascii?Q?2fBeqi9uUZjIvJ8mdDjXDI39Y9egvwhxLBWhaSzGkddNLYceGHfKVVsUJONz?= =?us-ascii?Q?dhBMnfeRyq6FaTH4FIMGwbKfDRxs7FSPFvVoEFvja0b+4lXgdPNMxMQQ1/dc?= =?us-ascii?Q?KoClsII+BM+j5i2Wni64EIPk3sFDNOkDfmRoslMHdm1FPZlLpgh/bIbYznJ5?= =?us-ascii?Q?/Fske0FIOwCniMwoB7QTkd2rD7Q0rTHlNHQCdPic9kt1ICk238mjAYUl7Ur2?= =?us-ascii?Q?oJe7Z9aVqsKXjIr9BHlv6GqV6Ud1/sbvm4kp08cFIrntWmF8/FLTFbi2l07A?= =?us-ascii?Q?wvYvZ1LRjTlE0e/tn7G/DgnpKlMx+5m/hS0itzjx8nS7+FwP6ZBRTEY2zcJf?= =?us-ascii?Q?SdtqWdZn//CDKLcRegpisrpJfLhg6WcREDm8iK5KgghnKlJ8LozXs435MWJK?= =?us-ascii?Q?tz00rO+WCuiI3p7BfmDNKdgFGVrIsRT2TiBWOe//1ajgtOn2bAxcqWv9qHwN?= =?us-ascii?Q?ITwd9Yl+SUWUg/VafplpVh7dvYxVVjm9LUmPvYfBybquhstOse6a7mLF6ET7?= =?us-ascii?Q?Joa6GZopZqzLdxYqD+F/znjJ?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3efc8d69-a83c-4a4e-220b-08d8f2f7c197 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB3288.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Mar 2021 21:15:21.4083 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: qnAGnk0bX+EqJhK+xquExG5pN/jgDkheVdIGhWLLdwyyXiEq7GOVZzVWZJ5L6AhqcuyuBqbbZHPl7oVlhWZ1cTQt1Ecf16xBU/FaM2L5+DI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB4416 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9938 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 mlxscore=0 phishscore=0 suspectscore=0 mlxlogscore=967 adultscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2103250000 definitions=main-2103290157 X-Proofpoint-ORIG-GUID: 68bcp-Nj3eF4dIsN6f4BCHRNfPQQ7gzI X-Proofpoint-GUID: 68bcp-Nj3eF4dIsN6f4BCHRNfPQQ7gzI X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9938 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 phishscore=0 adultscore=0 mlxlogscore=999 malwarescore=0 spamscore=0 suspectscore=0 clxscore=1015 bulkscore=0 lowpriorityscore=0 impostorscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2103250000 definitions=main-2103290157 X-ZohoMail-DKIM: pass (identity @oracle.com) Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Make both create_periodic_time() and pt_adjust_vcpu() call write_{un}lock with similar arguments. Requested-by: Jan Beulich Signed-off-by: Boris Ostrovsky Reviewed-by: Roger Pau Monn=C3=A9 --- New patch. I ended up doing what Jan asked --- create_periodic_time() is also using di= fferent start pointers in lock() and unlock(). xen/arch/x86/hvm/vpt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xen/arch/x86/hvm/vpt.c b/xen/arch/x86/hvm/vpt.c index 560fab9cfc60..4cc0a0848bd7 100644 --- a/xen/arch/x86/hvm/vpt.c +++ b/xen/arch/x86/hvm/vpt.c @@ -592,7 +592,7 @@ static void pt_adjust_vcpu(struct periodic_time *pt, st= ruct vcpu *v) if ( pt->vcpu =3D=3D NULL ) return; =20 - write_lock(&pt->vcpu->domain->arch.hvm.pl_time->pt_migrate); + write_lock(&v->domain->arch.hvm.pl_time->pt_migrate); =20 if ( pt->vcpu =3D=3D v ) goto out; @@ -613,7 +613,7 @@ static void pt_adjust_vcpu(struct periodic_time *pt, st= ruct vcpu *v) pt_vcpu_unlock(v); =20 out: - write_unlock(&pt->vcpu->domain->arch.hvm.pl_time->pt_migrate); + write_unlock(&v->domain->arch.hvm.pl_time->pt_migrate); } =20 void pt_adjust_global_vcpu_target(struct vcpu *v) --=20 1.8.3.1