From patchwork Fri Feb 7 16:20:47 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Igor Mammedov X-Patchwork-Id: 862998 Delivered-To: patch@linaro.org Received: by 2002:a5d:4e42:0:b0:385:e875:8a9e with SMTP id r2csp410927wrt; Fri, 7 Feb 2025 08:22:26 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCWssUnMXXQHddPmGplGSj917pZ+ZlyiVv/EixpT9TbZXTxFZWImoonmYpxeWt3C747iFNx1Wg==@linaro.org X-Google-Smtp-Source: AGHT+IETcnW4zNLXRUHChrKJVbfcrxukuNJZ0WDH+FAWtHcAfLGequBKGRnv/60rMtU7UreaSuSI X-Received: by 2002:a05:6122:54f:b0:518:a2af:d666 with SMTP id 71dfb90a1353d-51f2e0c4d56mr2763069e0c.1.1738945346423; Fri, 07 Feb 2025 08:22:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1738945346; cv=none; d=google.com; s=arc-20240605; b=i3kQpP2sqwnhrkQKqwG2vNBc82vZPSk7kHDMxNEBroD71AzgiRNbZOHClVh5/Z/Kls zAO9pyVn6Xu2tw6CBgVIKAng6q8x6Zi0DeRfH48vBw5VVjupKvZGYfD7iTGawlOVJdQt EbT6tOrKpZqdEL/2yzbIaj4jIPIyYreeILboxpiG4GQ+jeo78l3yvHfY5dD2HWdLtMP/ t29XrGQYChQa4Bgknp2PhgIy8F3ukFOiJ3D2Y2ZAmNuulmRS7n3Cb6aVjq0lR7GWg+/+ 0jheCiFWusqoQM4loUDL7w7Tk7jquGg58ftkpFDr1iEV5Sis7U8WWazgtkINWCPlA+d7 G6RA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=dS3mG7q7Qhof/soXKvmjdSRvuo+ZNyeAZO9Cl/N//jo=; fh=Qm4he0j/2HEFEky1nY3wE0kJk/SPaNt21SupHmhsiC0=; b=KHyVmoKJYKyuBF3YRKxo9areAxpbcE222eg5Y8skcVMirfiXiqVo/n4NwV6G8dm86C ddVK86viHAa+vs+/Fn4mKf5uXtyxSbswvKis1jMboZXw8kkLjj84tnuDMVq7he3m3Kvf /zKLrlOtdJc5Pgy8WI4HJnS5fIgjHYD4TG92FtvQFYQS6JU1hLUapFMBdWNkvr/weAkw DlUCgCeFhvNK1WSlCIJ+FQZtG8Yu9law6Vre5Px5B5BhE9i/PYb9cwjxOHvOiARZ8jpW pLbKJYdqu4CPmON5Jrs0uYxaVsvtVIieP3ElP/4G4e1G3PC0ZKvrDdkyn6rBxpWHP/c0 7shA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=NPMiKoPr; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 71dfb90a1353d-51f3a08eae5si288536e0c.171.2025.02.07.08.22.26 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 07 Feb 2025 08:22:26 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=NPMiKoPr; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tgR6p-0000y1-RR; Fri, 07 Feb 2025 11:21:39 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tgR6e-0000up-65 for qemu-devel@nongnu.org; Fri, 07 Feb 2025 11:21:28 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tgR6Y-0007jZ-Je for qemu-devel@nongnu.org; Fri, 07 Feb 2025 11:21:27 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1738945281; 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=dS3mG7q7Qhof/soXKvmjdSRvuo+ZNyeAZO9Cl/N//jo=; b=NPMiKoPr4vEGuKfi4pDfZtZjo8rkC7MD5BRZHEu99AvI2/voyDtgVPKIK4afSG/aTLUm7z Z4Wko7qjFI3Kaul22vMSYVk3nQ2F62tSEnANDPWqn7j17st37s1qBUl2QV/g0oDXfZuRo8 qzw5lqlqfyit9SVXPpIMQf3YzTn2vj8= Received: from mx-prod-mc-02.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-53-oMh-emOuOZOhvvgumhecOA-1; Fri, 07 Feb 2025 11:21:18 -0500 X-MC-Unique: oMh-emOuOZOhvvgumhecOA-1 X-Mimecast-MFC-AGG-ID: oMh-emOuOZOhvvgumhecOA Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 3713719560B5; Fri, 7 Feb 2025 16:21:17 +0000 (UTC) Received: from dell-r430-03.lab.eng.brq2.redhat.com (dell-r430-03.lab.eng.brq2.redhat.com [10.37.153.18]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id E602F18004A7; Fri, 7 Feb 2025 16:21:14 +0000 (UTC) From: Igor Mammedov To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Richard Henderson , =?utf-8?q?Philippe_Mathie?= =?utf-8?q?u-Daud=C3=A9?= , =?utf-8?q?Alex_Benn=C3=A9e?= , kvm@vger.kernel.org, peterx@redhat.com Subject: [PATCH v2 09/10] accel/kvm: Assert vCPU is created when calling kvm_dirty_ring_reap*() Date: Fri, 7 Feb 2025 17:20:47 +0100 Message-ID: <20250207162048.1890669-10-imammedo@redhat.com> In-Reply-To: <20250207162048.1890669-1-imammedo@redhat.com> References: <20250207162048.1890669-1-imammedo@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 Received-SPF: pass client-ip=170.10.129.124; envelope-from=imammedo@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Philippe Mathieu-Daudé Previous commits made sure vCPUs are realized before accelerators (such KVM) use them. Ensure that by asserting the vCPU is created, no need to return. For more context, see commit 56adee407fc ("kvm: dirty-ring: Fix race with vcpu creation"). Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Richard Henderson Signed-off-by: Igor Mammedov --- CC: kvm@vger.kernel.org CC: peterx@redhat.com --- accel/kvm/kvm-all.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index c65b790433..cb56d120a9 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -831,13 +831,11 @@ static uint32_t kvm_dirty_ring_reap_one(KVMState *s, CPUState *cpu) uint32_t count = 0, fetch = cpu->kvm_fetch_index; /* - * It's possible that we race with vcpu creation code where the vcpu is + * It's not possible that we race with vcpu creation code where the vcpu is * put onto the vcpus list but not yet initialized the dirty ring - * structures. If so, skip it. + * structures. */ - if (!cpu->created) { - return 0; - } + assert(cpu->created); assert(dirty_gfns && ring_size); trace_kvm_dirty_ring_reap_vcpu(cpu->cpu_index);