Received: by 2002:a05:7412:2a91:b0:fc:a2b0:25d7 with SMTP id u17csp672979rdh; Wed, 14 Feb 2024 08:09:32 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCWfFIEyP+sC+TB194L9qt7/Qs5fH3yRl6N+PWKzxclxqcvsW+uENLGfupkGf+hTjDJuxOJJW2cmXAPvVExz7fRQDER/lEG8ZBzulalhnQ== X-Google-Smtp-Source: AGHT+IFjb15iEhQmppf0EjIHGjuo9R+Y1sde/KrOD04RfDki75J82iVqubiJai/dBIYAtspXL9Y8 X-Received: by 2002:a05:620a:14a5:b0:787:1e7b:df5b with SMTP id x5-20020a05620a14a500b007871e7bdf5bmr3034532qkj.51.1707926972366; Wed, 14 Feb 2024 08:09:32 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1707926972; cv=pass; d=google.com; s=arc-20160816; b=r+s+EAZzDT3eLgSHPxAyz42LtnFDwG5cde3X5ZPetVPzwqhtY4jWJIQ/f1sItUdEXS B6ZaKkHmWPlDu9hEbmCyle14B9+lcXlZie2lcZJKuw3aNjiPx3ttQhQUTbFE5AznJ4BX mozRwFo/PZUMyvUuqs5GpyBC6b/HvMBQ/cuUqIch8gsXJDiLchr+xqBaxJ0xJuUdXYwD qU5gZ+Jn1mJNdOWE2/DKk/S7KqVS69x2O7cXZzp71I8OIa+Too2WvQGhItwHw/W8GgDP RrBgNwKui0ijI2QFv8JjHPQtv0RWPuROZgpco2OnkN0QuwRbMv+593HWbcchTbDvrJBY 5C1Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:in-reply-to:organization:references:cc:to :content-language:subject:reply-to:user-agent:mime-version :list-unsubscribe:list-subscribe:list-id:precedence:date:message-id :from:dkim-signature; bh=qYfvmPaesO8YWN53cqmm2yO+rqp53z4kUnNbercSOGU=; fh=4kq6zDElAQ0w8SqRegaSYmuYklEMwdkXB40h6Hv5o6Q=; b=quSOqIm1GSWt5Lc55gMoZotdZ989btcZRpdfJumEYXQJ4M3vQMNnZ2nbk3Q3tG7+YK cLQaSNRZ49LTsBG/2UteNmXoQnQMe5l26sDW/9b1xzqPc8nViA+6dc2BM0H3PpdDbRAO DR4T8Ea8vtDabDgP0LmaeQ0VxjSmR31AuGF7Rv3miy2sXkMGR7QSsrwaPGOlbo8Cnh6H a0OaTXISiE5ZyfqslWaJns+ofdh6kBfSTlR5bIXhtRoEeDKNxpmjtLaYSrMLDTlPr1xv LpL8bnwgZXG66Zzix3OhoKuw7THQIxmrMijJBdU8+Fp7IezUvGyFxV8yppGBIzSmvXwJ WrNQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=AngGxXPN; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-65489-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-65489-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com X-Forwarded-Encrypted: i=2; AJvYcCWzb3YZ4DwP+8/MQCJATDapmtd2RR8HrieVqxuUvy6/uqoM6lHNUIoAtZ4R56HurSV6bPLkpt220bxaFBMtjXda7MpXG9j+RcjW1iCl7g== Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id u7-20020a05620a120700b00786703999d8si5703199qkj.231.2024.02.14.08.09.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Feb 2024 08:09:32 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-65489-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=@gmail.com header.s=20230601 header.b=AngGxXPN; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-65489-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-65489-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.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 026971C21498 for ; Wed, 14 Feb 2024 16:09:32 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id A16245FDD6; Wed, 14 Feb 2024 16:09:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="AngGxXPN" Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (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 0FDE45D732; Wed, 14 Feb 2024 16:09:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707926959; cv=none; b=vFBth7aZfnkqPh3RAinuebY0NVhujsDWnKJZaHGBzhKuc0YXHUOWvWn4dG2GMsPp4Z0G8rL5uT3KjjAXRX9SXBp5F5XagV1vwdlWqA7c7MEKMh4YtA7380GgegOf9Q1zgkCQjwZHoORdcAQDVDlJfSxqiVUWXNHJCkhdc2m8PTE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707926959; c=relaxed/simple; bh=dQoeYKZoENFVQvLsGVJmPnsaFxLZEW+StaKHuAoCXJ0=; h=From:Message-ID:Date:MIME-Version:Subject:To:Cc:References: In-Reply-To:Content-Type; b=ituthCBce9PrtJYyoDlrvzEWcjUZ0zB+K4Sfm9ogNWX7ZCqhcA0iGfB2BQh19BXtpdzPIk21iROGVh/oveymrKQslwf4IQV2o/fKtplILTc/B+ufIMaaNj3Zdawj/P2oG6Q3eqE8CTwAqcJEDOMAeTxzbnI3wABXBi31k5yPW4w= 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=AngGxXPN; arc=none smtp.client-ip=209.85.128.44 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 Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-41166710058so22628365e9.3; Wed, 14 Feb 2024 08:09:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707926956; x=1708531756; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:organization:references:cc:to :content-language:subject:reply-to:user-agent:mime-version:date :message-id:from:from:to:cc:subject:date:message-id:reply-to; bh=qYfvmPaesO8YWN53cqmm2yO+rqp53z4kUnNbercSOGU=; b=AngGxXPNv8C6+Fe1p8UeCbBRBuleUlbMZd3oKmV/fO8jkmptiBRvLgbOhg5u+2BTeB 3QEWweK2jgiRLUl+5GHjYPkuv/DjxOErqeNXNR0jDDvtqS5dAMqElaG5yIS5IB5P+CnV VE+qw+Jx/iTNk1c+X30VgtMOtkicUwqGo7VirEzfcFuwGELiMqbaa/Z5Mj3ki3JjqA7J Wwpq9xrxxex0Y8B1SSEhSDBL4ozNfoDe/gRTZ9K3qIv8cwmUjPw626hC05mGAxfBH0Ye p2RuneBHysNMXoeez6YxReNMDAdDV2706z2osT+P6C2sXQirv4ePQSIuFI21K1g90E1V tpOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707926956; x=1708531756; h=content-transfer-encoding:in-reply-to:organization:references:cc:to :content-language:subject:reply-to:user-agent:mime-version:date :message-id:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=qYfvmPaesO8YWN53cqmm2yO+rqp53z4kUnNbercSOGU=; b=CXUvXAHZwqWiLLi9LuQfhphu0Q2tHSMs0CCax+PWksKrmwhfIy385kQKYBffHMKrfe 2J0IufEhE+mfubcWui2lwRKLQRjTBIqZYFESP131AaF4Hv8TFpnxCUlMiipRdT9wTC8Z WAokz0pup57tygNs2Q6DNW6GDyXpl5zK57WE5A8IRXvmyYmS0hO75ffBjuRnhWVVzlmo zpqsjPLLV42PbZNiLZ0lZM0GtMvdN7JmO2yjLztdo6NUfzdX9CAqJPGljwClVKu7Rz+C c8juv15MK7lY+PSufCpLfV66sQ43nimXjGI+YZuWANC1jYkAdt1318V3bXoubb7RoElG q9HQ== X-Forwarded-Encrypted: i=1; AJvYcCVr7Qk+wX3gPd+y/U2fietKeCKTNzciSTTOzRHiVUd5h67JLBYKnezIREWqk8M0HRQ/RlJdW40fEIPm5C9KjG+1HoByJqvBg3f26zw3xaHu1nw2pnlvmKGqhVJ3hfOqqLqpLIeYWUwxYRG0K7g9NcWG34PmQhVFERWgMqvQwLucX5FYdwbdnaYQ2sdHOZPSPhHdIqdG0gz7j96MmaJz X-Gm-Message-State: AOJu0YywcRQhW4DShVLtw0FE4iZYzQS/nSXCrQPRXH3TTCbWtKjrP2VB BwjhNxrMYvyZWXT4kZ+9fN8GWIZH8iWUQ7+BZ+iCds0OTGVtyfwA X-Received: by 2002:a05:600c:35d6:b0:410:d8fa:fa5f with SMTP id r22-20020a05600c35d600b00410d8fafa5fmr2698181wmq.11.1707926956005; Wed, 14 Feb 2024 08:09:16 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCVJhlD+mcvhAaSJKZYf9+Nf0YrHsZXIbSGJYOxZwxaLmrbYRTabfVe63syiSYHd3UlFKRm2UBHVx1o40zkVnNmf+2ryPyDd/nh+S3kQk05loZsE1TOEfRpTjuz6xlDl/uXAqSfGiOtxUUABpqqQlyL979sOHEijeSvIDucbdnwdWGLjPjpRBGBmBoY5sgOhWI2hEkmF8YA/3SD5hOGyPnMM+aPjPya8j0GFpXmScMFxW5DgVOmVtb7Q08MZ75KqmVdEvC+jmQJR1k2G6fgIX8neByJn8uxEjB5HHhm1QiDJYxFCUvueO4joZfM3q1Mod5fNzHYS+lTG9gAiJiGvDnBY640d135etRuTY6hIqaMG7amUQtouqVs3YMos/9XXyeo2vkuyfTfbmrOBBqfXU9TRE+stjRacbwkssitqqBAguPVGrUP6Q0h5Q8R9L/zXYux4a740zZMgZEm7GT4P7yFz9mc0nGZ1u1bsyX2Iwm6ydxN3L7UQlT7JuIwXs3SjWtmyB61Xzh8V6dm7xYA9jIU0/RRsBCrCrCLl8iWdgKVVjQ== Received: from [192.168.11.205] (54-240-197-228.amazon.com. [54.240.197.228]) by smtp.gmail.com with ESMTPSA id 26-20020a05600c229a00b00411d640085csm2315458wmf.43.2024.02.14.08.09.14 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 14 Feb 2024 08:09:15 -0800 (PST) From: Paul Durrant X-Google-Original-From: Paul Durrant Message-ID: <02385b22-1a59-4bf0-ba08-0da18ca75f74@xen.org> Date: Wed, 14 Feb 2024 16:09:01 +0000 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Reply-To: paul@xen.org Subject: Re: [PATCH v12 08/20] KVM: pfncache: allow a cache to be activated with a fixed (userspace) HVA Content-Language: en-US To: Sean Christopherson , David Woodhouse Cc: Paolo Bonzini , Jonathan Corbet , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" , Shuah Khan , kvm@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Christian Borntraeger , Janosch Frank , Claudio Imbrenda , David Hildenbrand References: <20240115125707.1183-1-paul@xen.org> <20240115125707.1183-9-paul@xen.org> <7c31e31d0f0ad3f40619f8e0ecf67f1e3d3eef5f.camel@infradead.org> Organization: Xen Project In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 14/02/2024 16:01, Sean Christopherson wrote: > On Tue, Feb 06, 2024, David Woodhouse wrote: >> On Tue, 2024-02-06 at 20:03 -0800, Sean Christopherson wrote: >>> +s390 folks (question on kvm_is_error_gpa() for ya) >>> >>> On Mon, Jan 15, 2024, Paul Durrant wrote: >>>> @@ -1398,7 +1414,9 @@ void kvm_gpc_deactivate(struct gfn_to_pfn_cache *gpc); >>>>   static inline void kvm_gpc_mark_dirty(struct gfn_to_pfn_cache *gpc) >>>>   { >>>>         lockdep_assert_held(&gpc->lock); >>>> -       mark_page_dirty_in_slot(gpc->kvm, gpc->memslot, gpc->gpa >> PAGE_SHIFT); >>>> + >>>> +       if (gpc->gpa != KVM_XEN_INVALID_GPA) >>> >>> KVM_XEN_INVALID_GPA absolutely doesn't belong in common code.  Not to mention >>> that it will break when Paolo (rightly) moves it to an x86 header. >>> >>> https://lore.kernel.org/all/20240131233056.10845-3-pbonzini@redhat.com >> >> We can use plain INVALID_GPA for that, I think. ISTR the reason we have >> a separate KVM_XEN_INVALID_GPA is because that's a userspace API. >> >> ... >> >>> But! kvm_is_error_gpa() already exists, and it very, very sneakily >>> does a memslot lookup and checks for a valid HVA. >> >> Hm, that doesn't sound as fast as simple comparison. We also can't do >> it from kvm_gpc_check(), can we? > > You snipped the part where I suggested renaming the existing kvm_is_error_gpa(). > > I am suggesting we do the below (and obviously rename the s390 usage, too), and > then the gpc code can use use kvm_is_error_gpa(). > > diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h > index bbfefd7e612f..e1df988e4d57 100644 > --- a/include/linux/kvm_host.h > +++ b/include/linux/kvm_host.h > @@ -148,6 +148,11 @@ static inline bool kvm_is_error_hva(unsigned long addr) > > #endif > > +static inline bool kvm_is_error_gpa(gpa_t gpa) > +{ > + return gpa == INVALID_GPA; > +} > + Are you ok with a local kvm_gpc_is_error_gpa() or somesuch until there is agreement with s390? Paul > #define KVM_ERR_PTR_BAD_PAGE (ERR_PTR(-ENOENT)) > > static inline bool is_error_page(struct page *page) > @@ -1787,7 +1792,7 @@ static inline hpa_t pfn_to_hpa(kvm_pfn_t pfn) > return (hpa_t)pfn << PAGE_SHIFT; > } > > -static inline bool kvm_is_error_gpa(struct kvm *kvm, gpa_t gpa) > +static inline bool kvm_gpa_is_in_memslot(struct kvm *kvm, gpa_t gpa) > { > unsigned long hva = gfn_to_hva(kvm, gpa_to_gfn(gpa)); >