From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id CFD4DC4167D for ; Thu, 2 Nov 2023 14:17:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 649DE8D008A; Thu, 2 Nov 2023 10:17:28 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5FA8F8D000F; Thu, 2 Nov 2023 10:17:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 49AB78D008A; Thu, 2 Nov 2023 10:17:28 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 3BDAF8D000F for ; Thu, 2 Nov 2023 10:17:28 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 032D5120D92 for ; Thu, 2 Nov 2023 14:17:27 +0000 (UTC) X-FDA: 81413216976.10.A57135E Received: from mail-qv1-f48.google.com (mail-qv1-f48.google.com [209.85.219.48]) by imf29.hostedemail.com (Postfix) with ESMTP id 23EC8120029 for ; Thu, 2 Nov 2023 14:17:25 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=0I0YBF0y; spf=pass (imf29.hostedemail.com: domain of tabba@google.com designates 209.85.219.48 as permitted sender) smtp.mailfrom=tabba@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1698934646; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=c7O2KSplInLsDb19B+zn/jm8iaKKD/NZ+yWSezVEL04=; b=1pQdpZzpRSdNUud+/r+49xoSBvG9E+w8uZNOP6tgjh958a+FGTYEv6q4SX0ZyB9qFiPrat aOM/KRqaaU4wmwtFeLjfVxXZ8wJUkTWagTCcNjn8E0u415cERS813PO9xpGYM9fOkARHYi Y3oO1F42X5MV7q8F/I88/VHH7NG4P7k= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1698934646; a=rsa-sha256; cv=none; b=oBWy6gyEIjauCXwsb7KiiNFRam2VHAq/00Xggq2yhAStrvu8v+hVOlM7cHokbHFqRdZrGK l6rp6dI/MfmyswoEP30cnkqPQTI6aZbyAWGvsi8MhlkBdEH8Ab05k/wHM5pDvDR0mGgPIk dYUpOi8kV2x/lGMLf5evW4TYKIOzSuY= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=0I0YBF0y; spf=pass (imf29.hostedemail.com: domain of tabba@google.com designates 209.85.219.48 as permitted sender) smtp.mailfrom=tabba@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-qv1-f48.google.com with SMTP id 6a1803df08f44-66d13ac2796so5626286d6.2 for ; Thu, 02 Nov 2023 07:17:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1698934645; x=1699539445; darn=kvack.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=c7O2KSplInLsDb19B+zn/jm8iaKKD/NZ+yWSezVEL04=; b=0I0YBF0ypaHvxkx8/y4Dk61FEjX4Ql4OMoU7QmQRslfHNRunjGcTYg/sMJDG6gphon mpjyBYsyUYJTEQ5pXiJTOlqCkbRCmOWIJLtSPCjLctwTte0OZQVR578lnL9PqcqIUmSw izS3HeELVp7x17JK1H9mNimhCqCOzVY7P93uIg6InsJe4+mBYdlvAv3qtyCSbAu+4fmy fJLYLgJf3WOLb4IEvjGw+sRMJkTARMxf5UoeeZkY/mXkfsnAMXsZ0M9jiAQlkykBVIQC tyESBUVxdXFNHyoDY3XzhB3xWUft3lbiv/OywguQOaSyMmm0TkqxUMXlNofkcp6oy643 T/hQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698934645; x=1699539445; 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=c7O2KSplInLsDb19B+zn/jm8iaKKD/NZ+yWSezVEL04=; b=DW+kxfx9nqDRd7eQm7hk2sZPYaoYTXtjBWMo4Od6yKBOp50l9GObsmtqvcCPy1nK/8 uD7coxeYOWoePQCwtw9G1mPB2xsr/yzHhz0nuyjjrgawPbzNXuWcOsANOUteLiZyZ9VO dsSewISN+nfPvr7R8q9W4TnJxqD54g0jjjRB5gQQJ3mBm4jm+Q/KHsmyY0RYi7wr+6NI TQimqR1cDqVBlkcV7IL8FqBpdtC0B84G7vaVCw/BMkZ+Y+ZT2Y/w8GmpKU2Qdv5JvI+0 PrcCf40rYgYtwPglLQPq+qaJcOlfWGvSwRFka1x9vhR4XMNvaY+5oxg7J8OfOXrXA8HL 0M/Q== X-Gm-Message-State: AOJu0YwoH7fz3eKMKeMRdKRSEx6BV5qE5mBeiECSNvWMXg6CyFOXW6FY V3T+mLdQV3nUoev++U/splenGaIi/lZ0ivknn0+zLw== X-Google-Smtp-Source: AGHT+IGAosxm/0woyiCy5wtpQ5hw9PNiMnNT8Y+nXK7zRiDLlPKvw69895suNy2q5wz5DwPz9Dn0X+ha5Vtg4tVBUZc= X-Received: by 2002:a05:6214:d88:b0:66d:3a0f:97a with SMTP id e8-20020a0562140d8800b0066d3a0f097amr20020837qve.6.1698934645120; Thu, 02 Nov 2023 07:17:25 -0700 (PDT) MIME-Version: 1.0 References: <20231027182217.3615211-1-seanjc@google.com> <20231027182217.3615211-19-seanjc@google.com> In-Reply-To: <20231027182217.3615211-19-seanjc@google.com> From: Fuad Tabba Date: Thu, 2 Nov 2023 14:16:49 +0000 Message-ID: Subject: Re: [PATCH v13 18/35] KVM: x86: "Reset" vcpu->run->exit_reason early in KVM_RUN To: Sean Christopherson Cc: Paolo Bonzini , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexander Viro , Christian Brauner , "Matthew Wilcox (Oracle)" , Andrew Morton , kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Xiaoyao Li , Xu Yilun , Chao Peng , Jarkko Sakkinen , Anish Moorthy , David Matlack , Yu Zhang , Isaku Yamahata , =?UTF-8?B?TWlja2HDq2wgU2FsYcO8bg==?= , Vlastimil Babka , Vishal Annapurve , Ackerley Tng , Maciej Szmigiero , David Hildenbrand , Quentin Perret , Michael Roth , Wang , Liam Merwick , Isaku Yamahata , "Kirill A . Shutemov" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 23EC8120029 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: 71dsq617n6arnhekhfkr4gwhwsnohjj7 X-HE-Tag: 1698934645-747070 X-HE-Meta: U2FsdGVkX185GmIh1c0dIpHYtl5Dttc9EvbCGNRey0u0sXLnzH0Wr/vSYpIvx5JoIYkNk6j30epCnAg/SnCPbTmYFlDu3Uhjo0/XpXZsyFN+87xrozxeeqLlnMFAyOTUaDjWIdlsHeRpFoHBIRBKiDAmU1WWJze4nN2oEQ1UxDMEFE/muVqacyXEiTnIm+nhjYONCIQlOg5E4Hx4Hd89ZadA1NvAN8FCY/jV+X81+i/o3hiLo6EDbitypO2KHPqQAkEthgNvo8aEpg21TKgyTVhNZmocM+SlU2/L0Dt+E/5Ps/hTpeTOZc91C9Xthv3IZZGjBQUOK8fZh58pLhedHeoC4PxjayGcte4p4JJ2aojBnvIZQgMNg90uTsE6ZqM2X4o1WRHosFtpeGKJLR0G3nhkGReLQDqSZlxOWpjvoopb/6m61aR2mZFTYsl0hRdtxNAkqlgPd0ISKEtF/W+I+SMkdVx8ntBj6FX2NFyfLxKVzu/BiyeH82kzzHBBMcWRhU0E/QcwsF4BgnS1qJRrgeQxSFPnQXOpNaQ7SYOdgQO4hdZNLDm7XyFa23CLW/9UGpX4PaZuNjdzbZICwtWFBPFFc30b6ZaWbPYvgZWxG/WE5ZHxPZ5kYY7qe79yeoZ74LxmhHVn4Myh3O5zsDnOsnEt+1yZv+ZtTjXGvbLlrGflSIAX7YxKwQnJ25y0IvrWFfdsiO8gZHNjZEKtYXG2txn5gIAQfwU/7TAIDX2PgBeUQtwKxZtHu1U5Hk3g/lZoBN86wdOGk4NUC+sEP078lgny/qwp8kwUHkwpxPSsofI3PEo7I6kVo/vjMBRjeLfAEKIwXZ1JBRGsdh0WqJST5Y8IQtCBmopwoKB3ExGbnu8dB1IsNpo0oPS/8428dqi0PmpoTitl66CgF6lR1QzV52djjGNg6AlRAycoIhBRN/8BrLVVVAdrK6zgjfA49sT5XhgFrCBMu3OE/cTlSy3 qLQgQ/2v N3Dwa0B4Mv8ldiJ+j8a7zHJmw2N3XOw4YQptjdRkZgV+q14V983ZbLLvxcJP3tSXBktdasfSxUxli6YcYZ3n6JT3zXPkhNWuzgvDKTePdlSdSMXmTJFYZpTsMlvNAl4Y+sh+sGSn741KhcEj+dQ2xWSyZaPp0UYm3rG5vU5HzafxUzbhMqUXOlMxCDUIgc/e44u8SHr7MHG5I1KJA6ukoDmRmoqhOW+qNIsmP4s5AbNYX95fXVhUBM8uegwpbXQEoC5/MxocxQTVwaIEX8YyDLb10OyZR/hrAgjOtBbwbpxe0Cf39zZxYPn/cQ55QTSNoxhz8wbuBfZQxEymR3NEqFDgGfSFnTz7036mvwPC64Q4FKwyjBjyt4hUp46EN7FPf23zPrdV93+Ac8Nwbs/+ncYa+L2c0xXg6jLdnwpgjBeCBWhg= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000002, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Fri, Oct 27, 2023 at 7:23=E2=80=AFPM Sean Christopherson wrote: > > Initialize run->exit_reason to KVM_EXIT_UNKNOWN early in KVM_RUN to reduc= e > the probability of exiting to userspace with a stale run->exit_reason tha= t > *appears* to be valid. > > To support fd-based guest memory (guest memory without a corresponding > userspace virtual address), KVM will exit to userspace for various memory > related errors, which userspace *may* be able to resolve, instead of usin= g > e.g. BUS_MCEERR_AR. And in the more distant future, KVM will also likely > utilize the same functionality to let userspace "intercept" and handle > memory faults when the userspace mapping is missing, i.e. when fast gup() > fails. > > Because many of KVM's internal APIs related to guest memory use '0' to > indicate "success, continue on" and not "exit to userspace", reporting > memory faults/errors to userspace will set run->exit_reason and > corresponding fields in the run structure fields in conjunction with a > a non-zero, negative return code, e.g. -EFAULT or -EHWPOISON. And becaus= e > KVM already returns -EFAULT in many paths, there's a relatively high > probability that KVM could return -EFAULT without setting run->exit_reaso= n, > in which case reporting KVM_EXIT_UNKNOWN is much better than reporting > whatever exit reason happened to be in the run structure. > > Note, KVM must wait until after run->immediate_exit is serviced to > sanitize run->exit_reason as KVM's ABI is that run->exit_reason is > preserved across KVM_RUN when run->immediate_exit is true. > > Link: https://lore.kernel.org/all/20230908222905.1321305-1-amoorthy@googl= e.com > Link: https://lore.kernel.org/all/ZFFbwOXZ5uI%2Fgdaf@google.com > Signed-off-by: Sean Christopherson > --- Reviewed-by: Fuad Tabba Tested-by: Fuad Tabba Cheers, /fuad > arch/x86/kvm/x86.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index ee3cd8c3c0ef..f41dbb1465a0 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -10963,6 +10963,7 @@ static int vcpu_run(struct kvm_vcpu *vcpu) > { > int r; > > + vcpu->run->exit_reason =3D KVM_EXIT_UNKNOWN; > vcpu->arch.l1tf_flush_l1d =3D true; > > for (;;) { > -- > 2.42.0.820.g83a721a137-goog >