Received: by 2002:a89:48b:0:b0:1f5:f2ab:c469 with SMTP id a11csp990830lqd; Thu, 25 Apr 2024 02:49:36 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCUVeIDwVgKbhTQiPHE/cskgzxtf7mnx8c3klboOa1frOWfFA5a+aF7qmmo1WXgzRLrqnvWCFD/4M32oGfltYp8qyJfi+J1wOnB0WqTJDQ== X-Google-Smtp-Source: AGHT+IHajABNGtrvXvatZG1PmolrAZa7f95tVNIZmnAx5AZsv0+jIsrPOem4X9NhKH0rFkbQREBz X-Received: by 2002:a05:6214:c6d:b0:6a0:9f54:6013 with SMTP id t13-20020a0562140c6d00b006a09f546013mr1953148qvj.2.1714038576226; Thu, 25 Apr 2024 02:49:36 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1714038576; cv=pass; d=google.com; s=arc-20160816; b=juV2irJdKmbix6ZPQmMkA4mWNnyf/pvlOM6+U+1G2Hrr0XWkIblfSkDSLDMqYmBrBl dBL0D50vV1pGURVvMWtvj1uPySIN9o39cQOzz45m36W6lxuyxoCk1VkCVNnyhs6s1Imj b0oBc82Tvng7vgBOl4k8NEGaLcJfYJRDnT+/gqFyWVMm+zch6KEx67Ax0J0yTCKwTj8F lQbeDq3OxWU9HgyEjoAaksyNttw/fvH+s0K3+c4AYSR7qIXrb6Cvue+a2fWrQChwFnkn NCx/27nPy4BWann1b339VSrJ0DXCZpPt9tSvmpY4gRuNeSF3oz5DVfkc9TtOcV5acUVR uCHg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:list-unsubscribe:list-subscribe :list-id:precedence:dkim-signature; bh=tClP56HRC4jtLkyQNL35pL67xVeU0Fa8cWNQ8DcTkjY=; fh=fl8ZPzEwMohRyUQTnnzcWXSRzgH6Tt/q5PszxwTiyHk=; b=UPHFUu30XT5XhZLJF5JKohKCJ0HWhc8URvxxzDEYS4EWtbb+9+UmvZUE8ZaPfjDV9I Y+5Lw6QMeCtvdOLXfrUQZv7PAah59W8ZawROkEyXoY7ziB6svP3hNcwTjJ6IfqMlg9zS K48m5Ez7jYP5RhblbKFg3WQIbpJvP3Y3lheDzlB3aD7wtWMfmZnVbUKQRpUGbGSGrMUP ser48FX6Sa9RtQpaci/mKLa3ZSDpA0ZMjXcENNwcq7XK6hsjc46c1/AFL1vzppP5bG7s dE6g/VSE2P4+OepxWsAl9sdkHxduCbj0p1P98hx02Hd58IrVs98ku38vSY4qdVhVTENu H4Iw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=dW5sVIxC; arc=pass (i=1 spf=pass spfdomain=google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-158326-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-158326-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id cz6-20020a056214088600b006a06d4c968asi11649439qvb.456.2024.04.25.02.49.36 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Apr 2024 02:49:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-158326-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=dW5sVIxC; arc=pass (i=1 spf=pass spfdomain=google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-158326-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-158326-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id EC6D21C23269 for ; Thu, 25 Apr 2024 09:49:35 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id A82C884E1D; Thu, 25 Apr 2024 09:49:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="dW5sVIxC" Received: from mail-vs1-f46.google.com (mail-vs1-f46.google.com [209.85.217.46]) (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 4BC1284E06 for ; Thu, 25 Apr 2024 09:49:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.217.46 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714038569; cv=none; b=RdXWt2eZJOkQ/4KRvQVYZztU8HwIMJD+3XnK4KJ0a/6/mgCsMqt2SQsGIRHJWh9vsWh7l9goeojAotuBTGVPUKE8y4enBKTbumDiPxDfspd+AZdpMmoIaEDxTWs479rU8H7J/tqBYFjJtr4ptzqfFJxT3RGpWaWc8kzTFk8wASU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714038569; c=relaxed/simple; bh=35aW69QPE+lCEJiyyhy9K78gc5bTQ0CCX9ATNwOcmrY=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=Y+sA+YPW2lWA6xI057ffHxK98vHFQbKgWrIMOp0IIlpJY9sVgB7sIh6cb7qy9JGHls6DgQSP12on1SO5oAx92EiR7BDi2fyA5114xSbsxogLa3xKrCubwokiz/ZozcVVNFVMhMw+zN5PYmn4g3wPx+3sPv5flHUQUAq/CALHujg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=dW5sVIxC; arc=none smtp.client-ip=209.85.217.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=google.com Received: by mail-vs1-f46.google.com with SMTP id ada2fe7eead31-47a0f54fb13so336937137.1 for ; Thu, 25 Apr 2024 02:49:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1714038567; x=1714643367; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=tClP56HRC4jtLkyQNL35pL67xVeU0Fa8cWNQ8DcTkjY=; b=dW5sVIxC34/UKwEhLrDvZQB1q44rzx6pOA3BqtXgaM46wjukJcG4kxyvq2Sjl1ppkf dA09IwEC76tG8p9rG9dDPJghLMI9xvAYCB7kp9bywikyc5FaAupZltIUfkuDI+UNXWTp Sd2HPP2KEHbUhCSLj7gOQF07cJjoXdmpOi8yzRxX+gaSRNbsuLRdKwhWEWoxFYPv80d3 Oy0wflZiWgAzAKHdbg6uH42KNbIZt7GGfhUBcxYLQmJgnZfrPYOMmEhBtinnhuv3wS1i DQDawGAzhz9PSEyQpbPo8M/L1N3oSSAvo/KskPjzUwX852oGlo+e0GZmXqHMSdUGVLvO vJKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714038567; x=1714643367; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tClP56HRC4jtLkyQNL35pL67xVeU0Fa8cWNQ8DcTkjY=; b=hTLqRuBv3DIj6X8a7R6hAAsZxsMSAOFhcI1NAp+HldUDHMfqDnkvVqOBHhZiSVnkAU HP3bFwyr8rTWZga5qx1rxw3Nsg0ANgnZ2jw2VqEzL14F7az5NF2I8v21o0nNH851xDvc az/MQsM3FcdyQJMYBje3P+SJF3HXrAsYKgdM3x1gTXeiWCDGgdXoRMOdsRh0jYEPNo7u YsZi421eqKbL/rLRF6XE41vSAH68MMXzePwd2xDeCZYX17ycKggUpkxdxDkASWkz4i+W H7Ubd7kc5LISd+XbH/ScC7o/4ZVTuCEz3nBa/Oe76DTPk8OQKWCq7s0/aLP7xWomUEn8 9IgA== X-Forwarded-Encrypted: i=1; AJvYcCWyS0DWXFSvSzMrOYwSPjo+t7dJf8JGihyifHXcjegyfq6rILTN4M+S3C15o/Zfb5Xla52480gXS76qo+aRmjSg5kFzBZuKjDiEPJgV X-Gm-Message-State: AOJu0YxJ1ZtCo0NMQoBepfcSJhaLFyTw4jOfOQII4ROGIIjNaqpyx35x hjXuTJBH1FKMSodnvSWiiJjqDYTZo1DuIq+jN3L4TQbQrgGQv3QkKtriiEaanRk09gblM13Pyzp PQXWO7dZc4fKoYYuDN+vct2Pw24sH5wcnVI3o X-Received: by 2002:a05:6102:11eb:b0:47b:9ca3:e03d with SMTP id e11-20020a05610211eb00b0047b9ca3e03dmr4935716vsg.11.1714038567115; Thu, 25 Apr 2024 02:49:27 -0700 (PDT) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20240412084056.1733704-1-steven.price@arm.com> <20240412084309.1733783-1-steven.price@arm.com> <20240412084309.1733783-2-steven.price@arm.com> In-Reply-To: <20240412084309.1733783-2-steven.price@arm.com> From: Fuad Tabba Date: Thu, 25 Apr 2024 10:48:50 +0100 Message-ID: Subject: Re: [PATCH v2 01/43] KVM: Prepare for handling only shared mappings in mmu_notifier events To: Steven Price Cc: kvm@vger.kernel.org, kvmarm@lists.linux.dev, Sean Christopherson , Catalin Marinas , Marc Zyngier , Will Deacon , James Morse , Oliver Upton , Suzuki K Poulose , Zenghui Yu , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Joey Gouly , Alexandru Elisei , Christoffer Dall , linux-coco@lists.linux.dev, Ganapatrao Kulkarni Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, On Fri, Apr 12, 2024 at 9:43=E2=80=AFAM Steven Price = wrote: > > From: Sean Christopherson > > Add flags to "struct kvm_gfn_range" to let notifier events target only > shared and only private mappings, and write up the existing mmu_notifier > events to be shared-only (private memory is never associated with a > userspace virtual address, i.e. can't be reached via mmu_notifiers). > > Add two flags so that KVM can handle the three possibilities (shared, > private, and shared+private) without needing something like a tri-state > enum. > > Link: https://lore.kernel.org/all/ZJX0hk+KpQP0KUyB@google.com > Signed-off-by: Sean Christopherson > Signed-off-by: Steven Price > --- > include/linux/kvm_host.h | 2 ++ > virt/kvm/kvm_main.c | 7 +++++++ > 2 files changed, 9 insertions(+) > > diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h > index 48f31dcd318a..c7581360fd88 100644 > --- a/include/linux/kvm_host.h > +++ b/include/linux/kvm_host.h > @@ -268,6 +268,8 @@ struct kvm_gfn_range { > gfn_t start; > gfn_t end; > union kvm_mmu_notifier_arg arg; > + bool only_private; > + bool only_shared; > bool may_block; > }; > bool kvm_unmap_gfn_range(struct kvm *kvm, struct kvm_gfn_range *range); > diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c > index fb49c2a60200..3486ceef6f4e 100644 > --- a/virt/kvm/kvm_main.c > +++ b/virt/kvm/kvm_main.c > @@ -633,6 +633,13 @@ static __always_inline kvm_mn_ret_t __kvm_handle_hva= _range(struct kvm *kvm, > * the second or later invocation of the handler)= . > */ > gfn_range.arg =3D range->arg; > + > + /* > + * HVA-based notifications aren't relevant to pri= vate > + * mappings as they don't have a userspace mappin= g. > + */ > + gfn_range.only_private =3D false; > + gfn_range.only_shared =3D true; > gfn_range.may_block =3D range->may_block; I'd discussed this with Sean when he posted this earlier. Having two booleans to encode three valid states could be confusing. In response, Sean suggested using an enum instead: https://lore.kernel.org/all/ZUO1Giju0GkUdF0o@google.com/ Cheers, /fuad > > /* > -- > 2.34.1 >