Message ID | 20240215152916.1158-1-paul@xen.org |
---|---|
Headers |
Return-Path: <linux-kernel+bounces-67219-ouuuleilei=gmail.com@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:b825:b0:106:860b:bbdd with SMTP id da37csp485462dyb; Thu, 15 Feb 2024 07:42:29 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCXxogPwH67qMuxG9YI7oOhECUsW+fG0bJjRt1u9ilSme0KvEisCiKwzUx3NVHtdY3VhwtO6RX34EIlNDPf0n0louyILuQ== X-Google-Smtp-Source: AGHT+IGRRUHn/AYBVwHUbSIFByCPnNncKYF47Ev01hNuEidrdT125GqkfuEYPdOWi9wjXRSIVVPC X-Received: by 2002:a05:620a:572:b0:785:c7e6:3be5 with SMTP id p18-20020a05620a057200b00785c7e63be5mr2024170qkp.53.1708011749749; Thu, 15 Feb 2024 07:42:29 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708011749; cv=pass; d=google.com; s=arc-20160816; b=UUC+uyZaZXeO6WDBy6sJgcW3X1VUbq3vg0FuA9gw+H5p+8/Htdzdm0Lx7deEzSrgjl Ed7ETW4HEsbED6FlodjonQkx4cxGee85TN91wGHBS7ZUNRK3/cxK/OtBPOe6OGKhdL8K ThUNMrQcv3iPFPBl4QhD2qQtocIZ5WAxyFW4ANTsnZoOfoDp+IYR4iLMN64McJ4Iyf8H ICvwPqYyDoNChboqNX1xenntJxbWFsMg6lhe6x766mDf8XUK8ircSLCzJTAV3WOud1cy 6AnkOclK4tJCsk+alrcJLRlMwFSQ3qPYNvlmauxU4OPvb2ip61NLOsZBYSHSQd2mauOM A0kA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:to:from :dkim-signature; bh=TEpTKi5UZCiDihe14d8Icy5BIjVsO8aW29qRo71K668=; fh=NrOggL3VZvuSFh5W9Wj2+kLgS4v0nogfnAWvBJoouXQ=; b=SPG/dnLMa+nGTs0pOhqSaCuVARUXd+2wxZdKIWP7U1duIvI7c469b37DI5QXG6mDDN h8+ZpGIvcQauVAlMQixDxIiFfWW9MEd1kTiKgJZwn6sXhLH8I0MapG1eTNdPCCVvRbDT woFmfcc6s6r0cE9x7EQeNRORNP0cboeNV9sU10Oi/oau1H608sQ48tQiEc+SPlY+IdyB ulWjFby1d/YSyf8ea0BnDVebHqP45/Ax1x2tIQhxywDanA0x6oiSOn7Q9LqyJpoyMFzk 0QlT509IytYE8UIs9amMMico3sWUAwDfHKpfExiB4bUi96upQeKf26sf1AR8FQh4xILB gdbg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@xen.org header.s=20200302mail header.b=Hu3vy5io; arc=pass (i=1 spf=pass spfdomain=xen.org dkim=pass dkdomain=xen.org); spf=pass (google.com: domain of linux-kernel+bounces-67219-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-67219-ouuuleilei=gmail.com@vger.kernel.org" Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id m18-20020ae9e712000000b0078727f14a18si1694584qka.94.2024.02.15.07.42.29 for <ouuuleilei@gmail.com> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Feb 2024 07:42:29 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-67219-ouuuleilei=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=@xen.org header.s=20200302mail header.b=Hu3vy5io; arc=pass (i=1 spf=pass spfdomain=xen.org dkim=pass dkdomain=xen.org); spf=pass (google.com: domain of linux-kernel+bounces-67219-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-67219-ouuuleilei=gmail.com@vger.kernel.org" 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 C18391C23896 for <ouuuleilei@gmail.com>; Thu, 15 Feb 2024 15:41:52 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B226913473A; Thu, 15 Feb 2024 15:41:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=xen.org header.i=@xen.org header.b="Hu3vy5io" Received: from mail.xenproject.org (mail.xenproject.org [104.130.215.37]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 60C7C133988; Thu, 15 Feb 2024 15:41:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=104.130.215.37 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708011676; cv=none; b=ADzyb7LylTiGlYzIpAuPP9H558EkV0R9WqPQOtm3rR9jsyS4XnrVi5CjQWMZbJS6q2YQBOJwdUjDhlRP0/bsc+bRG32mpX+pyYYSz6ZLABsJK+E5evohjOTwauFmRC13VOzhVerrq1Vmh9BTbdMZcXcwNrgm3LFW5NLEVnRzgt0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708011676; c=relaxed/simple; bh=BPxOajaOUpZ8zqhwZLHWGPlmk25NyFlciVy4aXnDiuE=; h=From:To:Subject:Date:Message-Id:MIME-Version; b=Y/RsTmFK1y8mA59h+UrO3NpWUkucGJJJXDk3XNL+ZvSCr4Rl5IzXuleofiiOmpQRhPJxtZ94x7Y7ikE9BLrSc0PSVPvvmKL+knjGySkCGzQH2dDAIXJwqCsDQ/+OB7aMRgBAEeF2E4utSQVrCmPkpHTeK+Dolan1ALVqxf1LZYs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=xen.org; spf=pass smtp.mailfrom=xen.org; dkim=pass (1024-bit key) header.d=xen.org header.i=@xen.org header.b=Hu3vy5io; arc=none smtp.client-ip=104.130.215.37 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=xen.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=xen.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:Message-Id:Date: Subject:To:From; bh=TEpTKi5UZCiDihe14d8Icy5BIjVsO8aW29qRo71K668=; b=Hu3vy5ioZ A2o4SB5Ah6zJp7nMx/Qnx/ooYOEoOrdDLeqBIr//u6kyvxrovmIZ/lxMajKOKn+4Pt8/buEe73GBb pqrpMAjM5hYBKdZ+NZI01N1vFsy5vT0M98ud51iJV6Kw0k37LsUfGJd++yOKfOCj1FBdi1fZMtZ8P efGMNk7I=; Received: from xenbits.xenproject.org ([104.239.192.120]) by mail.xenproject.org with esmtp (Exim 4.92) (envelope-from <paul@xen.org>) id 1radgB-0001B5-T7; Thu, 15 Feb 2024 15:29:39 +0000 Received: from 54-240-197-226.amazon.com ([54.240.197.226] helo=REM-PW02S00X.ant.amazon.com) by xenbits.xenproject.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <paul@xen.org>) id 1radgB-00089r-DW; Thu, 15 Feb 2024 15:29:39 +0000 From: Paul Durrant <paul@xen.org> To: Paolo Bonzini <pbonzini@redhat.com>, Jonathan Corbet <corbet@lwn.net>, Christian Borntraeger <borntraeger@linux.ibm.com>, Janosch Frank <frankja@linux.ibm.com>, Claudio Imbrenda <imbrenda@linux.ibm.com>, David Hildenbrand <david@redhat.com>, Heiko Carstens <hca@linux.ibm.com>, Vasily Gorbik <gor@linux.ibm.com>, Alexander Gordeev <agordeev@linux.ibm.com>, Sven Schnelle <svens@linux.ibm.com>, Sean Christopherson <seanjc@google.com>, Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>, David Woodhouse <dwmw2@infradead.org>, Paul Durrant <paul@xen.org>, Shuah Khan <shuah@kernel.org>, kvm@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org, linux-kselftest@vger.kernel.org Subject: [PATCH v13 00/21] KVM: xen: update shared_info and vcpu_info handling Date: Thu, 15 Feb 2024 15:28:55 +0000 Message-Id: <20240215152916.1158-1-paul@xen.org> X-Mailer: git-send-email 2.39.2 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: <linux-kernel.vger.kernel.org> List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org> List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1790980128507123094 X-GMAIL-MSGID: 1790980128507123094 |
Series |
KVM: xen: update shared_info and vcpu_info handling
|
|
Message
Paul Durrant
Feb. 15, 2024, 3:28 p.m. UTC
From: Paul Durrant <pdurrant@amazon.com>
This series contains a new patch from Sean added since v12 [1]:
* KVM: s390: Refactor kvm_is_error_gpa() into kvm_is_gpa_in_memslot()
This frees up the function name kvm_is_error_gpa() such that it can then be
re-defined in:
* KVM: pfncache: allow a cache to be activated with a fixed (userspace) HVA
to be used for a simple GPA validation helper function. The patch also now
contains an either/or address check for GPA versus HVA in
__kvm_gpc_refresh().
In:
* KVM: pfncache: add a mark-dirty helper
The function name has been changed from kvm_gpc_mark_dirty() to
kvm_gpc_mark_dirty_in_slot().
In:
* KVM: x86/xen: allow shared_info to be mapped by fixed HVA
missing HVA validation checks have been added and the 'hva == 0' test
has been changed to '!hva'. The KVM_XEN_ATTR_TYPE_SHARED_INFO and
KVM_XEN_ATTR_TYPE_SHARED_INFO_HVA cases are still largely handled as one
though as separation leads to duplicate calls to
kvm_xen_shared_info_init() which looks messy.
Also, patches with a 'xen' prefix have now been modified to have a
'x86/xen' prefix and patches with a 'selftests / xen' prefix have been
modified to have simply a 'selftests' prefix.
[1] https://lore.kernel.org/kvm/20240115125707.1183-1-paul@xen.org/
David Woodhouse (1):
KVM: pfncache: rework __kvm_gpc_refresh() to fix locking issues
Paul Durrant (19):
KVM: pfncache: Add a map helper function
KVM: pfncache: remove unnecessary exports
KVM: x86/xen: mark guest pages dirty with the pfncache lock held
KVM: pfncache: add a mark-dirty helper
KVM: pfncache: remove KVM_GUEST_USES_PFN usage
KVM: pfncache: stop open-coding offset_in_page()
KVM: pfncache: include page offset in uhva and use it consistently
KVM: pfncache: allow a cache to be activated with a fixed (userspace)
HVA
KVM: x86/xen: separate initialization of shared_info cache and content
KVM: x86/xen: re-initialize shared_info if guest (32/64-bit) mode is
set
KVM: x86/xen: allow shared_info to be mapped by fixed HVA
KVM: x86/xen: allow vcpu_info to be mapped by fixed HVA
KVM: selftests: map Xen's shared_info page using HVA rather than GFN
KVM: selftests: re-map Xen's vcpu_info using HVA rather than GPA
KVM: x86/xen: advertize the KVM_XEN_HVM_CONFIG_SHARED_INFO_HVA
capability
KVM: x86/xen: split up kvm_xen_set_evtchn_fast()
KVM: x86/xen: don't block on pfncache locks in
kvm_xen_set_evtchn_fast()
KVM: pfncache: check the need for invalidation under read lock first
KVM: x86/xen: allow vcpu_info content to be 'safely' copied
Sean Christopherson (1):
KVM: s390: Refactor kvm_is_error_gpa() into kvm_is_gpa_in_memslot()
Documentation/virt/kvm/api.rst | 53 ++-
arch/s390/kvm/diag.c | 2 +-
arch/s390/kvm/gaccess.c | 14 +-
arch/s390/kvm/kvm-s390.c | 4 +-
arch/s390/kvm/priv.c | 4 +-
arch/s390/kvm/sigp.c | 2 +-
arch/x86/kvm/x86.c | 7 +-
arch/x86/kvm/xen.c | 361 +++++++++++------
include/linux/kvm_host.h | 49 ++-
include/linux/kvm_types.h | 8 -
include/uapi/linux/kvm.h | 9 +-
.../selftests/kvm/x86_64/xen_shinfo_test.c | 59 ++-
virt/kvm/pfncache.c | 382 ++++++++++--------
13 files changed, 591 insertions(+), 363 deletions(-)
base-commit: 7455665a3521aa7b56245c0a2810f748adc5fdd4
Comments
On Thu, Feb 15, 2024, Paul Durrant wrote: > David Woodhouse (1): > KVM: pfncache: rework __kvm_gpc_refresh() to fix locking issues > > Paul Durrant (19): > KVM: pfncache: Add a map helper function > KVM: pfncache: remove unnecessary exports > KVM: x86/xen: mark guest pages dirty with the pfncache lock held > KVM: pfncache: add a mark-dirty helper > KVM: pfncache: remove KVM_GUEST_USES_PFN usage > KVM: pfncache: stop open-coding offset_in_page() > KVM: pfncache: include page offset in uhva and use it consistently > KVM: pfncache: allow a cache to be activated with a fixed (userspace) > HVA > KVM: x86/xen: separate initialization of shared_info cache and content > KVM: x86/xen: re-initialize shared_info if guest (32/64-bit) mode is > set > KVM: x86/xen: allow shared_info to be mapped by fixed HVA > KVM: x86/xen: allow vcpu_info to be mapped by fixed HVA > KVM: selftests: map Xen's shared_info page using HVA rather than GFN > KVM: selftests: re-map Xen's vcpu_info using HVA rather than GPA > KVM: x86/xen: advertize the KVM_XEN_HVM_CONFIG_SHARED_INFO_HVA > capability > KVM: x86/xen: split up kvm_xen_set_evtchn_fast() > KVM: x86/xen: don't block on pfncache locks in > kvm_xen_set_evtchn_fast() > KVM: pfncache: check the need for invalidation under read lock first > KVM: x86/xen: allow vcpu_info content to be 'safely' copied > > Sean Christopherson (1): > KVM: s390: Refactor kvm_is_error_gpa() into kvm_is_gpa_in_memslot() > > Documentation/virt/kvm/api.rst | 53 ++- > arch/s390/kvm/diag.c | 2 +- > arch/s390/kvm/gaccess.c | 14 +- > arch/s390/kvm/kvm-s390.c | 4 +- > arch/s390/kvm/priv.c | 4 +- > arch/s390/kvm/sigp.c | 2 +- > arch/x86/kvm/x86.c | 7 +- > arch/x86/kvm/xen.c | 361 +++++++++++------ > include/linux/kvm_host.h | 49 ++- > include/linux/kvm_types.h | 8 - > include/uapi/linux/kvm.h | 9 +- > .../selftests/kvm/x86_64/xen_shinfo_test.c | 59 ++- > virt/kvm/pfncache.c | 382 ++++++++++-------- > 13 files changed, 591 insertions(+), 363 deletions(-) Except for the read_trylock() patch, just a few nits that I can fixup when applying, though I'll defeinitely want your eyeballs on the end result as they tweaks aren't _that_ trivial. Running tests now, if all goes well I'll push to kvm-x86 within the hour.
On 19/02/2024 22:06, Sean Christopherson wrote: > On Thu, Feb 15, 2024, Paul Durrant wrote: >> David Woodhouse (1): >> KVM: pfncache: rework __kvm_gpc_refresh() to fix locking issues >> >> Paul Durrant (19): >> KVM: pfncache: Add a map helper function >> KVM: pfncache: remove unnecessary exports >> KVM: x86/xen: mark guest pages dirty with the pfncache lock held >> KVM: pfncache: add a mark-dirty helper >> KVM: pfncache: remove KVM_GUEST_USES_PFN usage >> KVM: pfncache: stop open-coding offset_in_page() >> KVM: pfncache: include page offset in uhva and use it consistently >> KVM: pfncache: allow a cache to be activated with a fixed (userspace) >> HVA >> KVM: x86/xen: separate initialization of shared_info cache and content >> KVM: x86/xen: re-initialize shared_info if guest (32/64-bit) mode is >> set >> KVM: x86/xen: allow shared_info to be mapped by fixed HVA >> KVM: x86/xen: allow vcpu_info to be mapped by fixed HVA >> KVM: selftests: map Xen's shared_info page using HVA rather than GFN >> KVM: selftests: re-map Xen's vcpu_info using HVA rather than GPA >> KVM: x86/xen: advertize the KVM_XEN_HVM_CONFIG_SHARED_INFO_HVA >> capability >> KVM: x86/xen: split up kvm_xen_set_evtchn_fast() >> KVM: x86/xen: don't block on pfncache locks in >> kvm_xen_set_evtchn_fast() >> KVM: pfncache: check the need for invalidation under read lock first >> KVM: x86/xen: allow vcpu_info content to be 'safely' copied >> >> Sean Christopherson (1): >> KVM: s390: Refactor kvm_is_error_gpa() into kvm_is_gpa_in_memslot() >> >> Documentation/virt/kvm/api.rst | 53 ++- >> arch/s390/kvm/diag.c | 2 +- >> arch/s390/kvm/gaccess.c | 14 +- >> arch/s390/kvm/kvm-s390.c | 4 +- >> arch/s390/kvm/priv.c | 4 +- >> arch/s390/kvm/sigp.c | 2 +- >> arch/x86/kvm/x86.c | 7 +- >> arch/x86/kvm/xen.c | 361 +++++++++++------ >> include/linux/kvm_host.h | 49 ++- >> include/linux/kvm_types.h | 8 - >> include/uapi/linux/kvm.h | 9 +- >> .../selftests/kvm/x86_64/xen_shinfo_test.c | 59 ++- >> virt/kvm/pfncache.c | 382 ++++++++++-------- >> 13 files changed, 591 insertions(+), 363 deletions(-) > > Except for the read_trylock() patch, just a few nits that I can fixup when > applying, though I'll defeinitely want your eyeballs on the end result as they > tweaks aren't _that_ trivial. > > Running tests now, if all goes well I'll push to kvm-x86 within the hour. Oh, I read this last and you already made the changes :-) I'll check kvm-x86. Thanks.
On 20/02/2024 09:14, Paul Durrant wrote: > On 19/02/2024 22:06, Sean Christopherson wrote: >> On Thu, Feb 15, 2024, Paul Durrant wrote: >>> David Woodhouse (1): >>> KVM: pfncache: rework __kvm_gpc_refresh() to fix locking issues >>> >>> Paul Durrant (19): >>> KVM: pfncache: Add a map helper function >>> KVM: pfncache: remove unnecessary exports >>> KVM: x86/xen: mark guest pages dirty with the pfncache lock held >>> KVM: pfncache: add a mark-dirty helper >>> KVM: pfncache: remove KVM_GUEST_USES_PFN usage >>> KVM: pfncache: stop open-coding offset_in_page() >>> KVM: pfncache: include page offset in uhva and use it consistently >>> KVM: pfncache: allow a cache to be activated with a fixed (userspace) >>> HVA >>> KVM: x86/xen: separate initialization of shared_info cache and >>> content >>> KVM: x86/xen: re-initialize shared_info if guest (32/64-bit) mode is >>> set >>> KVM: x86/xen: allow shared_info to be mapped by fixed HVA >>> KVM: x86/xen: allow vcpu_info to be mapped by fixed HVA >>> KVM: selftests: map Xen's shared_info page using HVA rather than GFN >>> KVM: selftests: re-map Xen's vcpu_info using HVA rather than GPA >>> KVM: x86/xen: advertize the KVM_XEN_HVM_CONFIG_SHARED_INFO_HVA >>> capability >>> KVM: x86/xen: split up kvm_xen_set_evtchn_fast() >>> KVM: x86/xen: don't block on pfncache locks in >>> kvm_xen_set_evtchn_fast() >>> KVM: pfncache: check the need for invalidation under read lock first >>> KVM: x86/xen: allow vcpu_info content to be 'safely' copied >>> >>> Sean Christopherson (1): >>> KVM: s390: Refactor kvm_is_error_gpa() into kvm_is_gpa_in_memslot() >>> >>> Documentation/virt/kvm/api.rst | 53 ++- >>> arch/s390/kvm/diag.c | 2 +- >>> arch/s390/kvm/gaccess.c | 14 +- >>> arch/s390/kvm/kvm-s390.c | 4 +- >>> arch/s390/kvm/priv.c | 4 +- >>> arch/s390/kvm/sigp.c | 2 +- >>> arch/x86/kvm/x86.c | 7 +- >>> arch/x86/kvm/xen.c | 361 +++++++++++------ >>> include/linux/kvm_host.h | 49 ++- >>> include/linux/kvm_types.h | 8 - >>> include/uapi/linux/kvm.h | 9 +- >>> .../selftests/kvm/x86_64/xen_shinfo_test.c | 59 ++- >>> virt/kvm/pfncache.c | 382 ++++++++++-------- >>> 13 files changed, 591 insertions(+), 363 deletions(-) >> >> Except for the read_trylock() patch, just a few nits that I can fixup >> when >> applying, though I'll defeinitely want your eyeballs on the end result >> as they >> tweaks aren't _that_ trivial. >> >> Running tests now, if all goes well I'll push to kvm-x86 within the hour. > > Oh, I read this last and you already made the changes :-) I'll check > kvm-x86. Thanks. > I checked the patches you amended. All LGTM and my tests are fine too.
On Thu, 15 Feb 2024 15:28:55 +0000, Paul Durrant wrote: > From: Paul Durrant <pdurrant@amazon.com> > > This series contains a new patch from Sean added since v12 [1]: > > * KVM: s390: Refactor kvm_is_error_gpa() into kvm_is_gpa_in_memslot() > > This frees up the function name kvm_is_error_gpa() such that it can then be > re-defined in: > > [...] *sigh* I forgot to hit "send" on this yesterday. But lucky for me, that worked out in my favor as I needed to rebase on top of kvm/kvm-uapi to avoid pointless conflicts in the uapi headeres. So.... Applied to kvm-x86 xen, minus 18 and 19 (trylock stuff) and 21 (locking cleanup that we're doing elsewhere). Paul and David, please take (another) look at the end result to make sure you don't object to any of my tweaks and that I didn't botch anything. s390 folks, I'm applying/pushing now to get it into -next asap, but I'll make sure to get acks/reviews on patch 08/21 before I do anything else with this branch/series. Thanks! [01/21] KVM: pfncache: Add a map helper function https://github.com/kvm-x86/linux/commit/f39b80e3ff12 [02/21] KVM: pfncache: remove unnecessary exports https://github.com/kvm-x86/linux/commit/41496fffc0e1 [03/21] KVM: x86/xen: mark guest pages dirty with the pfncache lock held https://github.com/kvm-x86/linux/commit/4438355ec6e1 [04/21] KVM: pfncache: add a mark-dirty helper https://github.com/kvm-x86/linux/commit/78b74638eb6d [05/21] KVM: pfncache: remove KVM_GUEST_USES_PFN usage https://github.com/kvm-x86/linux/commit/a4bff3df5147 [06/21] KVM: pfncache: stop open-coding offset_in_page() https://github.com/kvm-x86/linux/commit/53e63e953e14 [07/21] KVM: pfncache: include page offset in uhva and use it consistently https://github.com/kvm-x86/linux/commit/406c10962a4c [08/21] KVM: s390: Refactor kvm_is_error_gpa() into kvm_is_gpa_in_memslot() https://github.com/kvm-x86/linux/commit/9e7325acb3dc [09/21] KVM: pfncache: allow a cache to be activated with a fixed (userspace) HVA https://github.com/kvm-x86/linux/commit/721f5b0dda78 [10/21] KVM: x86/xen: separate initialization of shared_info cache and content https://github.com/kvm-x86/linux/commit/c01c55a34f28 [11/21] KVM: x86/xen: re-initialize shared_info if guest (32/64-bit) mode is set https://github.com/kvm-x86/linux/commit/21b99e4d6db6 [12/21] KVM: x86/xen: allow shared_info to be mapped by fixed HVA https://github.com/kvm-x86/linux/commit/10dcbfc46724 [13/21] KVM: x86/xen: allow vcpu_info to be mapped by fixed HVA https://github.com/kvm-x86/linux/commit/16877dd45f98 [14/21] KVM: selftests: map Xen's shared_info page using HVA rather than GFN https://github.com/kvm-x86/linux/commit/95c27ed8619b [15/21] KVM: selftests: re-map Xen's vcpu_info using HVA rather than GPA https://github.com/kvm-x86/linux/commit/5359bf19a3f0 [16/21] KVM: x86/xen: advertize the KVM_XEN_HVM_CONFIG_SHARED_INFO_HVA capability https://github.com/kvm-x86/linux/commit/49668ce7e1ae [17/21] KVM: x86/xen: split up kvm_xen_set_evtchn_fast() (not applied) [18/21] KVM: x86/xen: don't block on pfncache locks in kvm_xen_set_evtchn_fast() (not applied) [19/21] KVM: pfncache: check the need for invalidation under read lock first https://github.com/kvm-x86/linux/commit/21dadfcd665e [20/21] KVM: x86/xen: allow vcpu_info content to be 'safely' copied https://github.com/kvm-x86/linux/commit/dadeabc3b6fa [21/21] KVM: pfncache: rework __kvm_gpc_refresh() to fix locking issues (not applied) -- https://github.com/kvm-x86/linux/tree/next
On 20/02/2024 15:55, Sean Christopherson wrote: > On Thu, 15 Feb 2024 15:28:55 +0000, Paul Durrant wrote: >> From: Paul Durrant <pdurrant@amazon.com> >> >> This series contains a new patch from Sean added since v12 [1]: >> >> * KVM: s390: Refactor kvm_is_error_gpa() into kvm_is_gpa_in_memslot() >> >> This frees up the function name kvm_is_error_gpa() such that it can then be >> re-defined in: >> >> [...] > > *sigh* > > I forgot to hit "send" on this yesterday. But lucky for me, that worked out in > my favor as I needed to rebase on top of kvm/kvm-uapi to avoid pointless conflicts > in the uapi headeres. > > So.... > > Applied to kvm-x86 xen, minus 18 and 19 (trylock stuff) and 21 (locking cleanup > that we're doing elsewhere). > Looks like you meant 17 & 18? > Paul and David, please take (another) look at the end result to make sure you don't > object to any of my tweaks and that I didn't botch anything. > What was the issue with 17? It was reasonable clean-up and I'd like to keep it even without 18 being applied (and I totally understand your reasons for that). > s390 folks, I'm applying/pushing now to get it into -next asap, but I'll make > sure to get acks/reviews on patch 08/21 before I do anything else with this > branch/series. > > Thanks! > > [01/21] KVM: pfncache: Add a map helper function > https://github.com/kvm-x86/linux/commit/f39b80e3ff12 > [02/21] KVM: pfncache: remove unnecessary exports > https://github.com/kvm-x86/linux/commit/41496fffc0e1 > [03/21] KVM: x86/xen: mark guest pages dirty with the pfncache lock held > https://github.com/kvm-x86/linux/commit/4438355ec6e1 > [04/21] KVM: pfncache: add a mark-dirty helper > https://github.com/kvm-x86/linux/commit/78b74638eb6d > [05/21] KVM: pfncache: remove KVM_GUEST_USES_PFN usage > https://github.com/kvm-x86/linux/commit/a4bff3df5147 > [06/21] KVM: pfncache: stop open-coding offset_in_page() > https://github.com/kvm-x86/linux/commit/53e63e953e14 > [07/21] KVM: pfncache: include page offset in uhva and use it consistently > https://github.com/kvm-x86/linux/commit/406c10962a4c > [08/21] KVM: s390: Refactor kvm_is_error_gpa() into kvm_is_gpa_in_memslot() > https://github.com/kvm-x86/linux/commit/9e7325acb3dc > [09/21] KVM: pfncache: allow a cache to be activated with a fixed (userspace) HVA > https://github.com/kvm-x86/linux/commit/721f5b0dda78 > [10/21] KVM: x86/xen: separate initialization of shared_info cache and content > https://github.com/kvm-x86/linux/commit/c01c55a34f28 > [11/21] KVM: x86/xen: re-initialize shared_info if guest (32/64-bit) mode is set > https://github.com/kvm-x86/linux/commit/21b99e4d6db6 > [12/21] KVM: x86/xen: allow shared_info to be mapped by fixed HVA > https://github.com/kvm-x86/linux/commit/10dcbfc46724 > [13/21] KVM: x86/xen: allow vcpu_info to be mapped by fixed HVA > https://github.com/kvm-x86/linux/commit/16877dd45f98 > [14/21] KVM: selftests: map Xen's shared_info page using HVA rather than GFN > https://github.com/kvm-x86/linux/commit/95c27ed8619b > [15/21] KVM: selftests: re-map Xen's vcpu_info using HVA rather than GPA > https://github.com/kvm-x86/linux/commit/5359bf19a3f0 > [16/21] KVM: x86/xen: advertize the KVM_XEN_HVM_CONFIG_SHARED_INFO_HVA capability > https://github.com/kvm-x86/linux/commit/49668ce7e1ae > [17/21] KVM: x86/xen: split up kvm_xen_set_evtchn_fast() > (not applied) > [18/21] KVM: x86/xen: don't block on pfncache locks in kvm_xen_set_evtchn_fast() > (not applied) > [19/21] KVM: pfncache: check the need for invalidation under read lock first > https://github.com/kvm-x86/linux/commit/21dadfcd665e > [20/21] KVM: x86/xen: allow vcpu_info content to be 'safely' copied > https://github.com/kvm-x86/linux/commit/dadeabc3b6fa > [21/21] KVM: pfncache: rework __kvm_gpc_refresh() to fix locking issues > (not applied) > > -- > https://github.com/kvm-x86/linux/tree/next
On Tue, Feb 20, 2024, Paul Durrant wrote: > On 20/02/2024 15:55, Sean Christopherson wrote: > > On Thu, 15 Feb 2024 15:28:55 +0000, Paul Durrant wrote: > > > From: Paul Durrant <pdurrant@amazon.com> > > > > > > This series contains a new patch from Sean added since v12 [1]: > > > > > > * KVM: s390: Refactor kvm_is_error_gpa() into kvm_is_gpa_in_memslot() > > > > > > This frees up the function name kvm_is_error_gpa() such that it can then be > > > re-defined in: > > > > > > [...] > > > > *sigh* > > > > I forgot to hit "send" on this yesterday. But lucky for me, that worked out in > > my favor as I needed to rebase on top of kvm/kvm-uapi to avoid pointless conflicts > > in the uapi headeres. > > > > So.... > > > > Applied to kvm-x86 xen, minus 18 and 19 (trylock stuff) and 21 (locking cleanup > > that we're doing elsewhere). > > > > Looks like you meant 17 & 18? Doh, yes. > > Paul and David, please take (another) look at the end result to make sure you don't > > object to any of my tweaks and that I didn't botch anything. > > > > What was the issue with 17? It was reasonable clean-up and I'd like to keep > it even without 18 being applied (and I totally understand your reasons for > that). I omitted it purely to avoid creating an unnecessary dependency for the trylock patch. That way the trylock patch (or whatever it morphs into) can be applied on any branch (along with the cleanup), i.e. doesn't need to be taken through kvm-x86/xen.
On 20 February 2024 17:15:06 CET, Sean Christopherson <seanjc@google.com> wrote: >On Tue, Feb 20, 2024, Paul Durrant wrote: >> On 20/02/2024 15:55, Sean Christopherson wrote: >> > On Thu, 15 Feb 2024 15:28:55 +0000, Paul Durrant wrote: >> > > From: Paul Durrant <pdurrant@amazon.com> >> > > >> > > This series contains a new patch from Sean added since v12 [1]: >> > > >> > > * KVM: s390: Refactor kvm_is_error_gpa() into kvm_is_gpa_in_memslot() >> > > >> > > This frees up the function name kvm_is_error_gpa() such that it can then be >> > > re-defined in: >> > > >> > > [...] >> > >> > *sigh* >> > >> > I forgot to hit "send" on this yesterday. But lucky for me, that worked out in >> > my favor as I needed to rebase on top of kvm/kvm-uapi to avoid pointless conflicts >> > in the uapi headeres. >> > >> > So.... >> > >> > Applied to kvm-x86 xen, minus 18 and 19 (trylock stuff) and 21 (locking cleanup >> > that we're doing elsewhere). >> > >> >> Looks like you meant 17 & 18? > >Doh, yes. > >> > Paul and David, please take (another) look at the end result to make sure you don't >> > object to any of my tweaks and that I didn't botch anything. >> > >> >> What was the issue with 17? It was reasonable clean-up and I'd like to keep >> it even without 18 being applied (and I totally understand your reasons for >> that). > >I omitted it purely to avoid creating an unnecessary dependency for the trylock >patch. That way the trylock patch (or whatever it morphs into) can be applied on >any branch (along with the cleanup), i.e. doesn't need to be taken through kvm-x86/xen. What about if (in_atomic() && read_trylock()) return -EAGAIN; else read_lock(); That way we don't have any even theoretical fairness issues because the trylock can fail just *once* which kicks us to the slow path and that'll take the lock normally now. The condition might not actually be in_atomic() but I'm not working this week and you get the idea.
On 20/02/2024 16:15, Sean Christopherson wrote: > On Tue, Feb 20, 2024, Paul Durrant wrote: >> On 20/02/2024 15:55, Sean Christopherson wrote: >>> On Thu, 15 Feb 2024 15:28:55 +0000, Paul Durrant wrote: >>>> From: Paul Durrant <pdurrant@amazon.com> >>>> >>>> This series contains a new patch from Sean added since v12 [1]: >>>> >>>> * KVM: s390: Refactor kvm_is_error_gpa() into kvm_is_gpa_in_memslot() >>>> >>>> This frees up the function name kvm_is_error_gpa() such that it can then be >>>> re-defined in: >>>> >>>> [...] >>> >>> *sigh* >>> >>> I forgot to hit "send" on this yesterday. But lucky for me, that worked out in >>> my favor as I needed to rebase on top of kvm/kvm-uapi to avoid pointless conflicts >>> in the uapi headeres. >>> >>> So.... >>> >>> Applied to kvm-x86 xen, minus 18 and 19 (trylock stuff) and 21 (locking cleanup >>> that we're doing elsewhere). >>> >> >> Looks like you meant 17 & 18? > > Doh, yes. > >>> Paul and David, please take (another) look at the end result to make sure you don't >>> object to any of my tweaks and that I didn't botch anything. >>> >> >> What was the issue with 17? It was reasonable clean-up and I'd like to keep >> it even without 18 being applied (and I totally understand your reasons for >> that). > > I omitted it purely to avoid creating an unnecessary dependency for the trylock > patch. That way the trylock patch (or whatever it morphs into) can be applied on > any branch (along with the cleanup), i.e. doesn't need to be taken through kvm-x86/xen. Ok, personally I don't see the dependency being an issue. I suspect it will be a while before we decide what to do about the locking issue... particularly since David is out this week, as he says.