Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp744908pxa; Fri, 21 Aug 2020 21:30:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxOJcDNDguRTyhTUd7qv40AquNJ77jZgS/zVc9SAnBFtMNo0kQGvDIymCvNW/yUOgiEJS3H X-Received: by 2002:a17:906:4b0d:: with SMTP id y13mr5957609eju.39.1598070606884; Fri, 21 Aug 2020 21:30:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1598070606; cv=none; d=google.com; s=arc-20160816; b=hscJ/ow9qSWMfsmLLZfazQG8AMK8Kc36pKOniF6yxG9eUFPTrnsdXhWB43afFgh3FP 9tY4OjnhwjVb9gcGfPVdvs1UCuKoFz0sqoXdqZEdS9Gdhm5ZZDV4oC52r1AlzbRL8d5F R3w03h0/MZxA8KS1nElw/lRswXOIYe8OisAlzMtXpUEXYOThzjmzgLoHGQ2oilcj56KQ s9hHMgx2b5u8nXWk9oxf7hc58N8m7R/QATKtTKniLlo7huCb+OS3h3pnOWXif1lboOhQ kP7kjCY9tLdvCFNjnYslR8oncV19AJdPXpmkiSrdcUKSETaQkRPu6BhUSoHQkH3plzG0 Zo+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=uqBr/lnoyyjrVPbppt18J/CaYj+H3LTptFWomD24EK8=; b=noUUhtNE4AMU2P1pXbjMq4KtaLLC8Mjh3k2efnQZMZ0E7SoiYKHD4Jx4LT0rmH2Y6Q 1LaLFHr4WQcXw2FZyuYMZ3MHd+pg1bhRzTvNh8bl7e1kCYSNfphBVtLF8wZbL2sNgnXq 6vPfB5fIPdUT7fYpww4v14ky21dj3k/S01CG8szIYBk2AFQPqW70ww24PAn03FW43S6+ tTz7vM86qYPOUiB2LjduwJGp56ysJF/2X6ndrtjxgovXWSL8Zu0yUDRL+rNGRg78gBRM Uc5NG8wOxUbjoSb3ZRinNkfmRiDmw5wI2DfT2+bfPet6GJl1m9Pg2QDJCetq8lrgbzS9 VDRQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=k6gYU3BQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j26si2337820ejx.454.2020.08.21.21.29.43; Fri, 21 Aug 2020 21:30:06 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=k6gYU3BQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725917AbgHVE26 (ORCPT + 99 others); Sat, 22 Aug 2020 00:28:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60880 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726037AbgHVE2e (ORCPT ); Sat, 22 Aug 2020 00:28:34 -0400 Received: from mail-pf1-x444.google.com (mail-pf1-x444.google.com [IPv6:2607:f8b0:4864:20::444]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5D4EFC061574 for ; Fri, 21 Aug 2020 21:28:34 -0700 (PDT) Received: by mail-pf1-x444.google.com with SMTP id a79so2054563pfa.8 for ; Fri, 21 Aug 2020 21:28:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=uqBr/lnoyyjrVPbppt18J/CaYj+H3LTptFWomD24EK8=; b=k6gYU3BQoMFCaQD+AlH0UdJa7EouME7f09Wr67RQ0UgSnQtksUl9M/XY9lpiDXJEDE eqsBxJ21y3hKfagcR87kOSVqxwdBQ6XMKzHOzWNykOAhqOlwThPzkYmJWKfC0xP0o2p7 r3NbPu7gJKcMUICczwCpP02cNZxiMgTSg/TC5RK3W4eaALSDJi0Zwo3xeIvjxJDnL2lp PHada2DmX90mA9176PXGI//LblawMwTjFkvN/t5kWwrBHZ4ZZtQDX6caj/1/3B5dJnpB wZf7vueze3b+pmTZbvhWexQxEBZSO6C44UZSgMGZETqAVZ8YKNkd4hNY8J/ogHLEqJ5i G5/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=uqBr/lnoyyjrVPbppt18J/CaYj+H3LTptFWomD24EK8=; b=ZFeIZz2kwoCdufS1ytwVQwVjj9US93wuGbczRHq+EP7WcMrNmUQC/SJtJ2f8dTAt8K fKfik7Z/p83QeKG/q5xK1Rc/ovdDE7QsVEJLwVBclIa2z6i17Eb76jRLeOdPF6Hho8ep 72MGIF6Cg8idcreebBTPnN6K7XcssjAUQJYQo0lCTHmmzKrGdQGoSA9F8Tcu7oBtaak9 4D9kOu4ZwImBpXnGm5DE3e2kdgIX9xSHOMRsTjx2y+hjHa3v23Mb0GLwyj8+CI9U1ncy gQdK0g2qBYPLiO8S7N8SnmA9Yfwst2MslqvO5zS48OgSC6aZv075W+MGLyYmmbYpGAD5 MSHw== X-Gm-Message-State: AOAM532+OMERL9Mi9A4VGr/WCSdwSwJDIODUtfPkdeZfpggCL4+BAcrx UtJeMiOp4d5rtvgZLWmZOao= X-Received: by 2002:aa7:9ac2:: with SMTP id x2mr4896468pfp.57.1598070513961; Fri, 21 Aug 2020 21:28:33 -0700 (PDT) Received: from jacob-builder.jf.intel.com ([192.55.55.43]) by smtp.gmail.com with ESMTPSA id q5sm3341582pgi.31.2020.08.21.21.28.32 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 21 Aug 2020 21:28:33 -0700 (PDT) From: Jacob Pan X-Google-Original-From: Jacob Pan To: iommu@lists.linux-foundation.org, LKML , Jean-Philippe Brucker , "Lu Baolu" , Joerg Roedel , David Woodhouse Cc: Yi Liu , "Tian, Kevin" , Raj Ashok , Eric Auger , Wu Hao Subject: [PATCH v2 8/9] iommu/vt-d: Send IOASID bind/unbind notifications Date: Fri, 21 Aug 2020 21:35:17 -0700 Message-Id: <1598070918-21321-9-git-send-email-jacob.jun.pan@linux.intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1598070918-21321-1-git-send-email-jacob.jun.pan@linux.intel.com> References: <1598070918-21321-1-git-send-email-jacob.jun.pan@linux.intel.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Intel Scalable I/O Virtualization (SIOV) enabled platforms with ENQCMD in use by the guest, KVM must establish a guest-host PASID translation table prior to the issuing of ENQCMD. PASID translation table also depends on the IOMMU PASID entry, which is configured during the guest page table bind time. This patch adds a notification event to the IOMMU driver such that KVM can be notified when a new guest-host PASID mapping is established or demolished. Signed-off-by: Jacob Pan --- drivers/iommu/intel/svm.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/iommu/intel/svm.c b/drivers/iommu/intel/svm.c index 600e3ae5b656..d8a5efa75095 100644 --- a/drivers/iommu/intel/svm.c +++ b/drivers/iommu/intel/svm.c @@ -471,6 +471,11 @@ int intel_svm_bind_gpasid(struct iommu_domain *domain, struct device *dev, } mutex_unlock(&pasid_mutex); + /* + * Notify KVM new host-guest PASID bind is ready. KVM will set up + * PASID translation table to support guest ENQCMD. + */ + ioasid_notify(data->hpasid, IOASID_BIND, IOASID_NOTIFY_SET); return ret; } @@ -510,6 +515,8 @@ int intel_svm_unbind_gpasid(struct device *dev, int pasid) * and perform cleanup. */ ioasid_attach_data(pasid, NULL); + ioasid_notify(pasid, IOASID_UNBIND, + IOASID_NOTIFY_SET); kfree(svm); } } -- 2.7.4