Received: by 2002:a05:6358:a55:b0:ec:fcf4:3ecf with SMTP id 21csp1788046rwb; Thu, 19 Jan 2023 15:42:34 -0800 (PST) X-Google-Smtp-Source: AMrXdXsPQimHzkz58gda0Nr1SMXUnZBepfOplEftwRprfpKPB93K9RoF6PIU0m4PHKIXFF9XMA0l X-Received: by 2002:a05:6a00:288c:b0:586:8ead:a8e8 with SMTP id ch12-20020a056a00288c00b005868eada8e8mr14300315pfb.8.1674171754497; Thu, 19 Jan 2023 15:42:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1674171754; cv=none; d=google.com; s=arc-20160816; b=aGpxAwDlSYiFCNl0IaqopjiSpeB7gGfw1Vfed4bx73HcmSvnEGXC6LZsfsmNLGHVbi SIT2126aPFEB0plhHRFDxD5OyzsQrTnTM1SvCepS5hEhcROsHJT7ZjWtNxc/8s1RDMHc zE+bASg3bLxaaT/EqOnEXVIzG+i5K4lX7R3F1Ngqz+HlPFC5WXia8SQmBjlwixzaoXJk CoI54OFd5eo/YSa2yUzaKIBM/bNvuhpeMHoPc1xPgO/qSjuMlACn/Q0E+aLqc+KOKpPE F6RPQTSHHbHOC5RMy8lDQFOra8dHAZTnVKNbkQIK2Tu9o1/lhgDWO7S5zp+XKGyNuuZz otSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject:reply-to:dkim-signature; bh=zOEJRVUCnaSTu3apvVVhayxrqQN65NFZYiVFw16tleY=; b=ys3DEjbtc2yfreUYUxyktmhvty/J2ca/oNM2oaD5YiF1Hp0bX9U4VJD+8Rav9lNcIl y6hNmPiape2uVpkCGcqoRO4GBxCbq8XkWd2ZoxhoL65q+nzCRtTHD4jEnIFxeD6+I47Q MS/3yhRxyjyzt9DZ5jZXjioPUB+eDlS0cvIrrhC6YUND4wM7dwbAyEOOfzSJsrAB1oBA Mw00I3xL8W7YPCxFGB9lSxzQ7W7yKomil2F5vKeM/RasBAJaCOi3qKIqFRB3KegHf3lB 2D+n1rb9Qryaz12T726B0+8B8z7norIZtcZo41BXET78FNO9TYr7AnJfUpqTfw62hPjF fCTA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=eJ7o2qnA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bt17-20020a056a00439100b0058de1206c61si7050157pfb.100.2023.01.19.15.42.29; Thu, 19 Jan 2023 15:42:34 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=eJ7o2qnA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229723AbjASXOW (ORCPT + 46 others); Thu, 19 Jan 2023 18:14:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56386 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230516AbjASXNb (ORCPT ); Thu, 19 Jan 2023 18:13:31 -0500 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7F78CA959D for ; Thu, 19 Jan 2023 15:05:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1674169504; h=from:from:reply-to: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=zOEJRVUCnaSTu3apvVVhayxrqQN65NFZYiVFw16tleY=; b=eJ7o2qnAZkYoKCBXMs/7JNknYsDI2/mLkmGbzuPS0zGPJNl3R0dnRaeT4TIz7iTEF5dljQ HwXCsfciIPGT+uvMKawZJkjMBnOxvQGdATg1psaBL4mmSYkH/9vDBrFi1PibkjIX4X/YI6 D81iYJBsi/dUaAvqrxaKp9tADoVWXmg= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-507-QQjCKQRFPT6Xs2gyRAdLDA-1; Thu, 19 Jan 2023 18:05:01 -0500 X-MC-Unique: QQjCKQRFPT6Xs2gyRAdLDA-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 69B7D1C05154; Thu, 19 Jan 2023 23:05:00 +0000 (UTC) Received: from [10.64.54.98] (vpn2-54-98.bne.redhat.com [10.64.54.98]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 33EED40C6EC4; Thu, 19 Jan 2023 23:04:52 +0000 (UTC) Reply-To: Gavin Shan Subject: Re: [PATCH 1/4] KVM: arm64: Allow saving vgic3 LPI pending status in no running vcpu context To: Marc Zyngier Cc: Oliver Upton , kvmarm@lists.linux.dev, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, pbonzini@redhat.com, corbet@lwn.net, james.morse@arm.com, suzuki.poulose@arm.com, yuzenghui@huawei.com, catalin.marinas@arm.com, will@kernel.org, ricarkol@google.com, eric.auger@redhat.com, yuzhe@nfschina.com, renzhengeek@gmail.com, ardb@kernel.org, peterx@redhat.com, seanjc@google.com, shan.gavin@gmail.com References: <20230116040405.260935-1-gshan@redhat.com> <20230116040405.260935-2-gshan@redhat.com> <0626e135-5d6b-8d09-ccd1-068e42a052f6@redhat.com> <86v8l2msqk.wl-maz@kernel.org> From: Gavin Shan Message-ID: <685ae61a-951f-e611-7491-948f19f1827e@redhat.com> Date: Fri, 20 Jan 2023 10:04:50 +1100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.0 MIME-Version: 1.0 In-Reply-To: <86v8l2msqk.wl-maz@kernel.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 3.1 on 10.11.54.2 X-Spam-Status: No, score=-2.2 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Marc, On 1/20/23 2:47 AM, Marc Zyngier wrote: > On Thu, 19 Jan 2023 01:11:44 +0000, > Gavin Shan wrote: >> >> I will have vgic_write_guest_lock() in v2. Note that those 3 paths can't be >> running in parallel since one switch is shared by them. Alternatively, we >> extend struct vgic_dist::save_tables_in_progress from 'bool' to 'unsigned long'. >> Several bit is defined for each site as below. In this way, the 3 paths can be >> running in parallel: >> >> unsigned long struct vgic_dist::save_tables_in_progress >> >> #define VGIC_DIST_SAVE_ITS_ITE 0 /* ITS Translation Entry */ >> #define VGIC_DIST_SAVE_ITS_DTE 1 /* ITS Device Table Entry */ >> #define VGIC_DIST_SAVE_ITS_CTE 2 /* ITS Collection Table Entry */ >> #define VGIC_DIST_SAVE_ITS_CT 3 /* ITS Collection Table */ >> #define VGIC_DIST_SAVE_VGIC3_LPI 4 /* VGIC3 LPI Pending Status */ >> #define VGIC_DIST_SAVE_VGIC3_PENDING_TABLE 5 /* VGIC3 Pending Table */ >> >> The drawback is the calls are limited to 64. If those 3 paths can't be running >> in parallel, we needn't the extension at all. > > It should all be completely sequential. KVM_DEV_ARM_ITS_SAVE_TABLES > runs in a context where everything is locked, and so is > VGIC_DIST_SAVE_VGIC3_PENDING_TABLE. > Thanks for your confirm. Yeah, it's sequential because 'kvm->lock' is hold on KVM_DEV_ARM_ITS_SAVE_TABLES and VGIC_DIST_SAVE_VGIC3_PENDING_TABLE. So all good to have one shared switch. v2 will be posted pretty soon. Thanks, Gavin