From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8E5643C5857 for ; Thu, 20 Aug 2026 08:04:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787213066; cv=none; b=KS9bOQ7geZxkaJY5pCznXZNJ/WpgOr/T6kY/6/CsBz7dtqjrZMxXdRUHseiiF6GwFqyoCSmR9ONMnv2IsTSs52Or22voh5Dk9pL1PF37jYuk9uBOEeJ9uLMHDo2h3w8y53fZaKcO7V1rnvqfsO5MCetbnk28bKWeiw2L0c4I14w= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787213066; c=relaxed/simple; bh=ru4qweuJqGlhKUthy5/6S5+Rr1FUsZoR9Bxo6pxBe84=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=WdgvOnQsazeatUFwEG47D4aJfrLh7FfL8lSrwE8YTgQI8i95I6d++tZpROUkBhjyB2tr5qtv7t7EfUSWwvdFbiBbY1n4ZUQCrCEO4Qd7TwDjDxjvO2M+F4QdjHB5TmTwSMUebVqql02O7g7VCfokO01qUKm2Mjm4M3p2N80pmV8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=dWGuLFLL; arc=none smtp.client-ip=209.85.214.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="dWGuLFLL" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-2cc7ef7ec27so24354235ad.1 for ; Thu, 20 Aug 2026 01:04:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787213063; x=1787817863; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=x78ErVeCRHN6nIR5BE2bLaNonVUmCkwh6pqCr+oiUKE=; b=dWGuLFLLZEHINFCmRVl/uuhojokA6rfZWuDUqiyBBNXrK/SzTAQ+59pPbGpdNCCWu9 WbQPszq+BbQxq0yUfJGmIKh3VJqlk9DzJkVGWc+cY6xfD0lzQFMM31zkKZW74qEMLmq7 mFV+lvRJwUdwZQnStAOgr7j+K5QP6iEnPJpDfcoHu6h/ZKdMAn7bOcrlw2LwLKtHkb4J r+6F+Hqih4v6ZXpImURcasZlGZhbeuHlevRLAY4wwiRfvzt/FSYckTv/C5L8B1cTPrvw oQaZ0dJUheX9x2F3PpQqCYSxT4o4jm3OnTLbU74VFPkvb9XYHOFK+4u/lCRv1OO3G0/v N3/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787213063; x=1787817863; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=x78ErVeCRHN6nIR5BE2bLaNonVUmCkwh6pqCr+oiUKE=; b=ITeRQyacNg2J8+gf3Ibr+4M4iRmP3hWb65/X298a3TEu+rqi38Z+yUdRekkwa+ylgH iLBEcbAGoJFUEhpGgVJ88SzVjOt+SnV9kHtj72vqDoABf3eOS8tEmguwvkCmlrYyNJuO dcM+HntuDH2bI00TEcURT0ONzC/YILoy3AizLSg+xBRPGvVORWvqtJn2MbHMym5KlBaG yqHRcOiqFS8BWi2JxDhr3pEu7DR8IP70IqlTqZB7JZ483SF3u/N7JK3FM6LwMTTaCAK8 ESMmJVflA/wavItdol9Ql5NWB998kh5lR8za8UgPvTQr1Nd3xAwXyXa2sW9hzjzqN/RD MHOw== X-Forwarded-Encrypted: i=1; AHgh+Rq7lzUaPmET/K/yTgRqWY2G1Ylno2yf8+s0pKd+XBt2nu+l0EpvOR8Ht3AKIp/7+EH/5Fn8MdUv8ug5tis=@vger.kernel.org X-Gm-Message-State: AFuF++moTMnvxM3rNpyMTlcZxj+s42tTHwt3yzRiVaMbwo+3l9/BOxZq yn2zzVGlFCO+/Z3vGLLSmqjm40HZqMzHG5fCSLq6gUc938nVJUnxSGbz X-Gm-Gg: AR+sD13+/Iyda+8fiuAhP1K2bk3JAXvce0aB9D9jxevc5i6mcDo1Kwra7yyL//biwPS ifQpX8t9fRGXbbK7a6pdCwrOhW2hDPbbt/linhJbo0RokrDNm0EbHsgyCGkB14qtMdC6vntrcYu Y+qgS6R/GQStMhEoepohvMJ49fdtcPsaLQFLGjs8XkH9VE6S++K4qaa20qsbepaaFUQTSENfKpB QYrQsEOE6zgJ2uBKnGqi/uVYdUfrWtJL2XT2285jGFr4tKQCbWSp20G02kaa321SzOnO2s6l1zC 84/D89twWbnKWJo3Bo3QrzvflcADaW7BoIkdCsvkD+yUW6LAhEutVgQn9vrX+yFzDA+HBWjicYZ EBUWJf2TsP+4ElxUzQ0ODN+4XdlmmKh7wFsoLVcqWEvQukzwmofsG/BAbPcSBqPJNss//f+5c6V U73t2suWKlFC7iTTuJw/Y+MvJQrIrp+QpuM+L97L/4KhypWxvdP1d6wN5vaJt83NhnnLQbVg== X-Received: by 2002:a17:903:3887:b0:2d1:1a18:4d0a with SMTP id d9443c01a7336-2d5fd740167mr200442945ad.9.1787213062229; Thu, 20 Aug 2026 01:04:22 -0700 (PDT) Received: from [127.0.1.1] ([188.253.126.51]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d62e36e175sm3556075ad.50.2026.08.20.01.04.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Aug 2026 01:04:21 -0700 (PDT) From: Jia Jia To: stefanha@redhat.com, sgarzare@redhat.com, mst@redhat.com, jasowangio@gmail.com Cc: eperezma@redhat.com, weiyj.lk@gmail.com, kvm@vger.kernel.org, virtualization@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v7 0/3] vhost: fix device IOTLB feature lifecycle Date: Thu, 20 Aug 2026 16:03:29 +0800 Message-Id: <20260820080332.313933-1-physicalmtea@gmail.com> X-Mailer: git-send-email 2.34.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Both vhost-vsock and vhost-net can leave the device IOTLB attached when userspace clears VIRTIO_F_ACCESS_PLATFORM. They can also replace an existing IOTLB with a new empty table when a later feature update keeps ACCESS_PLATFORM enabled, for example when updating logging. When the IOTLB mode changes, the vring addresses previously supplied by userspace no longer have the same address-space meaning. Leaving those addresses installed would allow an old IOVA to be used as a direct userspace address after the IOTLB is detached. This series invalidates the vring access state during IOTLB transitions, makes IOTLB initialization idempotent, and uses a common teardown helper for vhost-vsock and vhost-net. IOTLB mode changes are applied even while a virtqueue backend is attached. The device-wide IOTLB is dropped first, each virtqueue then clears its IOTLB pointer and cached ring access under its own mutex, and the old table is freed only after every virtqueue has completed the handoff. A successful live mode change leaves the backend attached but invalidates the cached vring addresses. Userspace must configure the vring addresses for the new address mode before data processing can resume. When ACCESS_PLATFORM is enabled, the usual IOTLB miss/update protocol repopulates the new table. Changes since v6: - rebase on the current vhost tree; - remove blank lines between commit trailers; - drop unrelated error propagation changes from the backend patches. Jia Jia (3): vhost: invalidate vring access on IOTLB transitions vhost/vsock: discard IOTLB when ACCESS_PLATFORM is cleared vhost/net: discard IOTLB when ACCESS_PLATFORM is cleared drivers/vhost/net.c | 2 ++ drivers/vhost/vhost.c | 53 ++++++++++++++++++++++++++++++++++++++++++- drivers/vhost/vhost.h | 1 + drivers/vhost/vsock.c | 4 +++- 4 files changed, 58 insertions(+), 2 deletions(-) base-commit: b282418bc366194677eafd1dad180d92254586ac -- 2.34.1