From patchwork Mon Nov 21 12:13:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 13050795 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 942C2C4332F for ; Mon, 21 Nov 2022 12:14:13 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.446577.702210 (Exim 4.92) (envelope-from ) id 1ox5gZ-0001WH-Jb; Mon, 21 Nov 2022 12:14:03 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 446577.702210; Mon, 21 Nov 2022 12:14:03 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ox5gZ-0001WA-GE; Mon, 21 Nov 2022 12:14:03 +0000 Received: by outflank-mailman (input) for mailman id 446577; Mon, 21 Nov 2022 12:14:01 +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 1ox5gX-0001T8-Kg for xen-devel@lists.xenproject.org; Mon, 21 Nov 2022 12:14:01 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on20630.outbound.protection.outlook.com [2a01:111:f400:7d00::630]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id fb00bee5-6995-11ed-91b6-6bf2151ebd3b; Mon, 21 Nov 2022 13:14:00 +0100 (CET) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by PAXPR04MB8509.eurprd04.prod.outlook.com (2603:10a6:102:210::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5834.15; Mon, 21 Nov 2022 12:13:58 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::4da2:ea8b:e71e:b8d8]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::4da2:ea8b:e71e:b8d8%4]) with mapi id 15.20.5834.011; Mon, 21 Nov 2022 12:13:58 +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: fb00bee5-6995-11ed-91b6-6bf2151ebd3b ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MUWmWmKnV+iBVAwjZMHG1XqSqRRB+qdBbn7pKSUs/SBOsmkV5GwXPF/v6nnEFksxQGMAhIHvvjcjYKJNMQiZqSJA3XYRZOlDUZ632sM/gxgVnzZx4Dv7v8jW7nvo/qHx68d3Ow+dVL87yt1vmdsrzVKIu8xsXO63/wVRb7kdcbbcnB4gBMF3QXM0xsGYaJ1FBR5IN2hBFlMwuv8ZkCp70wmV0/UygPi4ZeL6DGNw/y6Ldz8Cz8mDk0Nmc2MO7sXMqN14gEQHP7ztkjsqxKmSw0ZCN+6m+UTJUFovtAd3zam/L+4bK9n2MsWIKrkbm7Oekoa4av0KUIRqCNahPB7ljA== 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=tfkW11X9pDByfM7tL7/0F2TK04AeoKyeauuXX07eoQI=; b=JAh37n2ZUEHxokUli2eKfVW1aaKUsv4rLIh8Z7bvk5lQUO6ynblszCOA4mm/bdlXGSW95CBUCI5V2D5/ZueomBpkz+0OoAlbxDYGtZ2oHxCQAoHk0Q5xGe1dGKalpI1Ilf96HW49+d6tGl1e9dTzrLoOsMZD2Y95OpbbbNdq5OmV9SuH4GNdl7NBvlfPH7IhMxmrw4twYzBZNkxzR6Wd5EFf7GKWGIPhhPbSdeYcNF2rmpgcK4UR0z+KeBRVPcw3kzcyJF3EQHjqkYPPLfbS8rP6nozKFUbGFhklYD4F/9hIo8nN2mya4UVW9oMcpFJbbHdG9DyQ3q7E0xiCZgwjBg== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tfkW11X9pDByfM7tL7/0F2TK04AeoKyeauuXX07eoQI=; b=BBXWIrA6ibhNu4L4A8so0gBcf0nj7VA079ICHPdBWWf04TQ5y8QYLXnnss8cgSWElehjvOW+jJU4DvPDBnFuTY6KG+6L6DbU4O+wwzwO0wfHIMutWTo0LRxcEgWacXhp791ZprG8SUpHlP/FTetxO8vSm56Nl59oWwynlbINmV0BsOZmRV+U4czBY3vBX0BsoHNZVoP/03B1tEGc6UByK+b7hf74V532HI3AUptKYQywrSt8WMVg2bf+3bfdEL6GqOT+DK+b6qa1TrX9jnGf9Ge5YSmhPJydlezW1v8WYLidbxXGM6icikDlhFNI+LfSxt6Fq4k7Uy0pOfO/tklX7Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Mon, 21 Nov 2022 13:13:57 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 Content-Language: en-US To: "xen-devel@lists.xenproject.org" Cc: Paul Durrant , Andrew Cooper , Wei Liu , =?utf-8?q?Roger_Pau_Monn=C3=A9?= From: Jan Beulich Subject: [PATCH] x86/Viridian: don't mark IRQ vectors as pending when vLAPIC is disabled X-ClientProxiedBy: FR0P281CA0129.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:97::15) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|PAXPR04MB8509:EE_ X-MS-Office365-Filtering-Correlation-Id: 4c151ad7-f28e-4979-7a5f-08dacbb9de70 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Flt8IEoZuedTSYfEVt+anvEFbo5ofqqoEUHZN/ImWDmHZ5+jf7t/y7jGUErK5c97VL5PxnhX00JgfHZXHEYTUHvDqt45u8vJeVCUOC6ZXnUbaZE87dCABMcIt1k29Gkn/Up+sDT5eXdLiAynbO2tKVWW8S1XDo4pQvPbK5KUUWFo58jBqumxkdFHtvJXHI9i/fFAkDuwXi84XpO0mHw0IXtjytbuxCViKaelWW1pbwDOAQ5LdVG0+r5vQOASkQRjiOvc/hjPd0ZJ1iBtpGCfxMOqeKTl/wO2eavrE6FCNvesyRnMhlH/oKmFdHowjGNojk6d8q2/kf0I9yfSKwdI7AKZE5VTNRd5ynJ3GrGHyTVHIlAmzP8jo/fpo8iWlCSkIrIxbBjmGTYiRa5PL7H4QJmcxGDi5rvL8/5cNZtMmYN4crZcKSYU9kzanEC52apIEzSHLoUZdgQr8ZjzDL4fa5oOaiB3VU5G8EZ4vayxXWjCSWLyPOXNvdq0C/HWxn2Uu8VsfRjF08Eq4rtprXoJaxr71DGuFerspqoaRZ1GvxvwxYEOwKHjDTFEMRMV4A+tJbPHoo0WSDxh7p6d1A3KE5mUKnODVxPqblh8iel02HoTyu/mW46jsZnBHoWGV54BygbEmKoVGGVMHW/SSEJMib4gLi1rjuvPTjWwWHVg4u2yUp4bjL749nLk68G+5fP6tVQCcAsdJto3EfxyIHvZZvvmIyj7JS23YVyaUDOH23Q= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VE1PR04MB6560.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(396003)(136003)(346002)(376002)(39860400002)(451199015)(31686004)(2906002)(2616005)(186003)(38100700002)(31696002)(26005)(478600001)(6506007)(66946007)(66556008)(6512007)(5660300002)(316002)(4326008)(8676002)(6916009)(66476007)(36756003)(8936002)(6486002)(83380400001)(86362001)(41300700001)(54906003)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?bfcbHXgzI9Kwk3EiOITA7bAGLYL3?= =?utf-8?q?xl4AGGINr1ZcdefOjfhVl1jZxU/M7TrZniRpQs62xCzjvvt3ZUPG/rEl7kn6D9FAU?= =?utf-8?q?PdmHUko2/d/VN0uKDcKz+QrS0oqubhqxsIaKDlhAXtdpIHqurWdu2M/O+YmN8/nen?= =?utf-8?q?fQV66XZ41pOrsUVi7B4yVLiWASeso0zskNL0mfKWwWBnDmAPwbVLAvfnHckDbZGz7?= =?utf-8?q?XTPjkUXxmJg/x8dTy595CaTAzJ3woA4S0PSwhqlK3enTW4og4OPGW4t7zfXaoqji1?= =?utf-8?q?q2SiKxkACtZgee8RSKG93humj0dIVlAWWwBnszkCqbNUNgRk2rmx+A4DQ96HcaE7k?= =?utf-8?q?IXPk3q5M8TFDXAcSmAIhUnyRLl9hCRfcgQy0faikorQXpqDUZSipesDmscK8h3ppB?= =?utf-8?q?L6xBgK43Y7Loq/kUEwnlhAn3MXGiO4PsrLYdTXyAzCEFhqNwCI3/l99L2whf9clUR?= =?utf-8?q?ewY+w9tPX1PJ2N1zwUN6NZW49FPVy40F0Y77FaLVL4TvswpB+a5QC14/Y5L+lieOZ?= =?utf-8?q?stcLptD779ucLw2i2SFhhqqSpUkTzIIwA5VhQ6vOfDlcEs99cWXtB3XptEoky8IT1?= =?utf-8?q?OK4IM6C1o6/DF00fpGzIpSzvEbI1ea4AFtF2OWgq4CSJ75WiNexPF+M8M7T9Ep6SC?= =?utf-8?q?5KxlWtpijIlmnlLQL5AtzdfDubrcZepH8OLp8quMEGhGCU1RUvIDuxHFbpuw4+7Rb?= =?utf-8?q?5yIHR/N/pY3S9VEKpMHRVb2/yhbRJqfQMJuS3wYwvFPFZb2/8LXdkMiQfiyYs4B5F?= =?utf-8?q?1J4IHgZz0WBdZKk2pszsWy4IRuX+EQEC6NYD5p1+XMKslRwCSyeVrD7YXULMvnyBe?= =?utf-8?q?h/c0Bbu1Y6LPYd9T9T3xa6SaPitvnwFCK9ztXXdVitI4WKMTHKErsOKbeVlAlXmZt?= =?utf-8?q?1KZ3fCM85tEOfftZ3VVlLWBG4/l7jPhioMCtX3boCU5M+Br04budLWT2T4nV//nb3?= =?utf-8?q?djSA1IeF/+NKwYtqEbTUKeiMEbZFSJ6B/fZ23oyd60lXlF128gcG4vtwJ5tEIUS84?= =?utf-8?q?oP9yhFifZbSfctedje5U6sQj38x6DVx3XON7Jgf9jVp3u+hZ74uhFYW4AfppP5API?= =?utf-8?q?dRzBb5dLpnrtPfqBQPXXYpw6CSpSxmzD1RGwUjLny13oj/AuVfWB+uYQLFJqUBnf+?= =?utf-8?q?cnr0Yfkd1i7Lq6ejkeGOzpYHSlZFgY9cLNAMd5XcL7YZG9dpYbOivQnpR/N5Bum06?= =?utf-8?q?NR89ouNeAaekYiKx/poARMPVr5F9VJS0z6NvsoqDj6l/1NEnFluupQv9HgklYSHll?= =?utf-8?q?Ilv1y5myntTWN5xwJEDvSaKX+3Nuu1tFQdX6t0mnmbypyX+pC793o2ODRswW5TPQv?= =?utf-8?q?KMG8wFlKz6RZAHhGuSfQeajEDMxzaKhYFXcgaT/zjaFUeyKwaIXiOpiTreVoDN1qZ?= =?utf-8?q?kivXwN6McWOCPWCY/uWvWYhuD9ynRNj9rKOtCrT1w/WM+QGOq3PRZCqdcigNIbwrl?= =?utf-8?q?OmTQFmLLPVNBR9bDLIeWHGkSV6GMsVyMxhYZYdzPW6oWU/7mjB8Yf2ZenTv+f19H5?= =?utf-8?q?fn6M5aIOH+Ma?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4c151ad7-f28e-4979-7a5f-08dacbb9de70 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2022 12:13:58.8273 (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: GuGDiuVx42woSDwynum9KfVkiTp8bw2snao/LiF76iDbv5BPABcFx7QOtNF8GM/AvUPBgua7+BnMPiCfH6cyfw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8509 In software-disabled state an LAPIC does not accept any interrupt requests and hence no IRR bit would newly become set while in this state. As a result it is also wrong for us to mark Viridian IPI or timer vectors as having a pending request when the vLAPIC is in this state. Such interrupts are simply lost. Introduce a local variable in send_ipi() to help readability. Fixes: fda96b7382ea ("viridian: add implementation of the HvSendSyntheticClusterIpi hypercall") Fixes: 26fba3c85571 ("viridian: add implementation of synthetic timers") Signed-off-by: Jan Beulich Acked-by: Andrew Cooper Reviewed-by: Paul Durrant --- a/xen/arch/x86/hvm/viridian/synic.c +++ b/xen/arch/x86/hvm/viridian/synic.c @@ -359,7 +359,7 @@ bool viridian_synic_deliver_timer_msg(st BUILD_BUG_ON(sizeof(payload) > sizeof(msg->u.payload)); memcpy(msg->u.payload, &payload, sizeof(payload)); - if ( !vs->masked ) + if ( !vs->masked && vlapic_enabled(vcpu_vlapic(v)) ) vlapic_set_irq(vcpu_vlapic(v), vs->vector, 0); return true; --- a/xen/arch/x86/hvm/viridian/viridian.c +++ b/xen/arch/x86/hvm/viridian/viridian.c @@ -811,7 +811,12 @@ static void send_ipi(struct hypercall_vp cpu_raise_softirq_batch_begin(); for_each_vp ( vpmask, vp ) - vlapic_set_irq(vcpu_vlapic(currd->vcpu[vp]), vector, 0); + { + struct vlapic *vlapic = vcpu_vlapic(currd->vcpu[vp]); + + if ( vlapic_enabled(vlapic) ) + vlapic_set_irq(vlapic, vector, 0); + } if ( nr > 1 ) cpu_raise_softirq_batch_finish();