From patchwork Thu Sep 12 16:54:06 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Eugenio Perez Martin X-Patchwork-Id: 13802361 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.gnu.org (lists.gnu.org [209.51.188.17]) (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 7495EEED617 for ; Thu, 12 Sep 2024 16:55:25 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1son5N-0001xA-12; Thu, 12 Sep 2024 12:54:25 -0400 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 1son5L-0001vF-Jb for qemu-devel@nongnu.org; Thu, 12 Sep 2024 12:54:23 -0400 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 1son5J-0000Qk-2M for qemu-devel@nongnu.org; Thu, 12 Sep 2024 12:54:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1726160059; 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; bh=MHvOY4nBsNNdtk1IAO2BmMc/8Vv7OTKa4bXYZ0i3Dws=; b=CKpNzqcCRydXMbfO2GolQGVOCJiNPIEZxqnY40SthJKaPYkb9ngr9dX34oF1G2ZHBUgvF1 MAmJcvmytvVA1FpsC6rcIaqX7IZVf62rvdtyalIBapN0+KN4+zrsqg9a1SblaPU1lMkTg5 Kg3a7uAxOfiel9XmjD18Dsu6Rq4OU0k= Received: from mx-prod-mc-03.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-251-H6sLGCznNsiv7yjBLoamcA-1; Thu, 12 Sep 2024 12:54:16 -0400 X-MC-Unique: H6sLGCznNsiv7yjBLoamcA-1 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (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-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 566471955F28; Thu, 12 Sep 2024 16:54:15 +0000 (UTC) Received: from eperezma-thinkpadt480s.rmtes.csb (unknown [10.39.192.146]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 9A6A31955F54; Thu, 12 Sep 2024 16:54:10 +0000 (UTC) From: =?utf-8?q?Eugenio_P=C3=A9rez?= To: Jason Wang , qemu-devel@nongnu.org Cc: dtatulea@nvidia.com, mcoqueli@redhat.com, mst@redhat.com, si-wei.liu@oracle.com, qemu-stable@nongnu.org, leiyang@redhat.com, Ani Sinha Subject: [PATCH v2 0/2] Move net backend cleanup to NIC cleanup Date: Thu, 12 Sep 2024 18:54:06 +0200 Message-ID: <20240912165408.234447-1-eperezma@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 Received-SPF: pass client-ip=170.10.129.124; envelope-from=eperezma@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.143, 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_H3=0.001, RCVD_IN_MSPIKE_WL=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+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Commit a0d7215e33 ("vhost-vdpa: do not cleanup the vdpa/vhost-net structures if peer nic is present") effectively delayed the backend cleanup, allowing the frontend or the guest to access it resources as long as the frontend NIC is still visible to the guest. However it does not clean up the resources until the qemu process is over. This causes an effective leak if the device is deleted with device_del, as there is no way to close the vdpa device. This makes impossible to re-add that device to this or other QEMU instances until the first instance of QEMU is finished. Move the cleanup from qemu_cleanup to the NIC deletion. v2: Remove NIC peer also at net_cleanup. vhost-user trust all the backends are clean before qemu removes char devices. This is not a requisite introduced by this commit as system/runstate.c:qemu_cleanup shows. Eugenio PĂ©rez (2): net: parameterize the removing client from nc list net: move backend cleanup to NIC cleanup net/net.c | 44 ++++++++++++++++++++++++++++++++++---------- net/vhost-vdpa.c | 8 -------- 2 files changed, 34 insertions(+), 18 deletions(-)