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 5D4E4C41535 for ; Mon, 30 Oct 2023 17:32:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EF4916B0266; Mon, 30 Oct 2023 13:32:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EA4DE6B0269; Mon, 30 Oct 2023 13:32:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D454A6B026A; Mon, 30 Oct 2023 13:32:02 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id C4D766B0266 for ; Mon, 30 Oct 2023 13:32:02 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 94724140700 for ; Mon, 30 Oct 2023 17:32:02 +0000 (UTC) X-FDA: 81402820884.22.BDD9B52 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf15.hostedemail.com (Postfix) with ESMTP id 5970EA0025 for ; Mon, 30 Oct 2023 17:32:00 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=UW9IFWg+; spf=pass (imf15.hostedemail.com: domain of pbonzini@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=pbonzini@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1698687120; 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=3g1TVhpzsOzzHHVoXez8JAaDO7pX06gUTyU2b4+L2DI=; b=0alZKYriTi3/jRC7JmPFJ9qhJ5pQsD6427pF1dRWvbLEPcy11qagpiQE6Q/paQMMTNWLOq a7UUoxf6LTNQTLdSaOWIYdyaV3tBPEBZGVoJRJOLgd7WbjSi9+Wm7HoXd3geGJrHzJXAHM 3zG3QLFxpYx+p2rtkzwiqwyY9MGo17U= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1698687120; a=rsa-sha256; cv=none; b=ZUXAZRAYqfq4t7hMcxqLeTJ4OHmwxo23dbFoIKp1ezs8kBTiPTsyKWBC6ey3EBTOkYResN sYC2nrVdeaOvwj4FhYV8ufYDXNJGlNXDutjdC3fdPrinj2WHD75XgHjBZ+uyU5HC/+3Mxk oKKJoENS+iOepWOz4vVD7/4bIous25c= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=UW9IFWg+; spf=pass (imf15.hostedemail.com: domain of pbonzini@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=pbonzini@redhat.com; dmarc=pass (policy=none) header.from=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1698687119; h=from:from: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:autocrypt:autocrypt; bh=3g1TVhpzsOzzHHVoXez8JAaDO7pX06gUTyU2b4+L2DI=; b=UW9IFWg+mirR4VcbYwnpWdE6LgyvcCFK7+T+cnOpm9XYLp6qCAb1Gm2Mkmrmv/nrgjG7Ko sNyfceqCTGtDV6J2klJA6XhPdWsT2Y/u975ND6Wvv4WK0/LbRL6a614rISQGq1+Wh1bc8N qBNNM4izfK4ilOPzKamARfqjTO9nka8= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-656-oS9OoDKdMPu0q7CZIelxxA-1; Mon, 30 Oct 2023 13:31:56 -0400 X-MC-Unique: oS9OoDKdMPu0q7CZIelxxA-1 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-408508aa81cso35299785e9.3 for ; Mon, 30 Oct 2023 10:31:56 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698687115; x=1699291915; h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc :to:content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=3g1TVhpzsOzzHHVoXez8JAaDO7pX06gUTyU2b4+L2DI=; b=Yf6trmCQEzuKO+o9/fu/0v/+fu2AwS5nUI+K0bygDt7oLYTL+6XmnCfL6z6HHtSp4D Jfd71+LIF1lzZqvEXZFWtT8lX0cI4kqFdj+towRmLjZ5YloT4IbbYB8IjAQYYw8rmP4X YiFbpfhpWX9nB04tplFDBKqP+h3eiLODMnU/RrFX+Ve/FVF9spLYIHza3qnuprfXGtY4 UPPv3PEJvP/0TVAgs1d6zLX1fcy9M+e4tNqpdvp3Mhd11H3PArb5M7Lbm/7VIDMKzPtZ 49UivtZY6s0ByV7/v6g1RduYZTk6UBXhZuk3/eYRn7L00uIhYsZx1OG3ETlF8Onn+vQT QsJg== X-Gm-Message-State: AOJu0YxpwKP2YTKoyxvPF0eDs/pUEXZcz6AkndamYNcj8zL/wRCIIp0F NQlcYlg6YbdWhkXdadPCrycDhs3fVSCXUlPF+dWl4yX+Qy4+wwEh1xwRf4vEv5fz39dW/isypwl NYPV0b4MYBxM= X-Received: by 2002:a05:600c:3b13:b0:405:3455:567e with SMTP id m19-20020a05600c3b1300b004053455567emr8489593wms.5.1698687115231; Mon, 30 Oct 2023 10:31:55 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFOw2pwrz3emhHHPGzRcEZaKdyXE5ETYrjkl0hP08/axAOlUIY6MyqVTu78CJe3u248QTKzww== X-Received: by 2002:a05:600c:3b13:b0:405:3455:567e with SMTP id m19-20020a05600c3b1300b004053455567emr8489569wms.5.1698687114826; Mon, 30 Oct 2023 10:31:54 -0700 (PDT) Received: from [192.168.1.174] ([151.81.68.207]) by smtp.googlemail.com with ESMTPSA id c5-20020a05600c0a4500b004094d4292aesm449246wmq.18.2023.10.30.10.31.51 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 30 Oct 2023 10:31:54 -0700 (PDT) Message-ID: <0731604e-8692-4c51-9427-78b4c629f9e9@redhat.com> Date: Mon, 30 Oct 2023 18:31:50 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v13 18/35] KVM: x86: "Reset" vcpu->run->exit_reason early in KVM_RUN To: Sean Christopherson , 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 Cc: 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 , Fuad Tabba , Jarkko Sakkinen , Anish Moorthy , David Matlack , Yu Zhang , Isaku Yamahata , =?UTF-8?B?TWlja2HDq2wgU2FsYcO8?= =?UTF-8?Q?n?= , Vlastimil Babka , Vishal Annapurve , Ackerley Tng , Maciej Szmigiero , David Hildenbrand , Quentin Perret , Michael Roth , Wang , Liam Merwick , Isaku Yamahata , "Kirill A . Shutemov" References: <20231027182217.3615211-1-seanjc@google.com> <20231027182217.3615211-19-seanjc@google.com> From: Paolo Bonzini Autocrypt: addr=pbonzini@redhat.com; keydata= xsEhBFRCcBIBDqDGsz4K0zZun3jh+U6Z9wNGLKQ0kSFyjN38gMqU1SfP+TUNQepFHb/Gc0E2 CxXPkIBTvYY+ZPkoTh5xF9oS1jqI8iRLzouzF8yXs3QjQIZ2SfuCxSVwlV65jotcjD2FTN04 hVopm9llFijNZpVIOGUTqzM4U55sdsCcZUluWM6x4HSOdw5F5Utxfp1wOjD/v92Lrax0hjiX DResHSt48q+8FrZzY+AUbkUS+Jm34qjswdrgsC5uxeVcLkBgWLmov2kMaMROT0YmFY6A3m1S P/kXmHDXxhe23gKb3dgwxUTpENDBGcfEzrzilWueOeUWiOcWuFOed/C3SyijBx3Av/lbCsHU Vx6pMycNTdzU1BuAroB+Y3mNEuW56Yd44jlInzG2UOwt9XjjdKkJZ1g0P9dwptwLEgTEd3Fo UdhAQyRXGYO8oROiuh+RZ1lXp6AQ4ZjoyH8WLfTLf5g1EKCTc4C1sy1vQSdzIRu3rBIjAvnC tGZADei1IExLqB3uzXKzZ1BZ+Z8hnt2og9hb7H0y8diYfEk2w3R7wEr+Ehk5NQsT2MPI2QBd wEv1/Aj1DgUHZAHzG1QN9S8wNWQ6K9DqHZTBnI1hUlkp22zCSHK/6FwUCuYp1zcAEQEAAc0j UGFvbG8gQm9uemluaSA8cGJvbnppbmlAcmVkaGF0LmNvbT7CwU0EEwECACMFAlRCcBICGwMH CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRB+FRAMzTZpsbceDp9IIN6BIA0Ol7MoB15E 11kRz/ewzryFY54tQlMnd4xxfH8MTQ/mm9I482YoSwPMdcWFAKnUX6Yo30tbLiNB8hzaHeRj jx12K+ptqYbg+cevgOtbLAlL9kNgLLcsGqC2829jBCUTVeMSZDrzS97ole/YEez2qFpPnTV0 VrRWClWVfYh+JfzpXmgyhbkuwUxNFk421s4Ajp3d8nPPFUGgBG5HOxzkAm7xb1cjAuJ+oi/K CHfkuN+fLZl/u3E/fw7vvOESApLU5o0icVXeakfSz0LsygEnekDbxPnE5af/9FEkXJD5EoYG SEahaEtgNrR4qsyxyAGYgZlS70vkSSYJ+iT2rrwEiDlo31MzRo6Ba2FfHBSJ7lcYdPT7bbk9 AO3hlNMhNdUhoQv7M5HsnqZ6unvSHOKmReNaS9egAGdRN0/GPDWr9wroyJ65ZNQsHl9nXBqE AukZNr5oJO5vxrYiAuuTSd6UI/xFkjtkzltG3mw5ao2bBpk/V/YuePrJsnPFHG7NhizrxttB nTuOSCMo45pfHQ+XYd5K1+Cv/NzZFNWscm5htJ0HznY+oOsZvHTyGz3v91pn51dkRYN0otqr bQ4tlFFuVjArBZcapSIe6NV8C4cEiSTOwE0EVEJx7gEIAMeHcVzuv2bp9HlWDp6+RkZe+vtl KwAHplb/WH59j2wyG8V6i33+6MlSSJMOFnYUCCL77bucx9uImI5nX24PIlqT+zasVEEVGSRF m8dgkcJDB7Tps0IkNrUi4yof3B3shR+vMY3i3Ip0e41zKx0CvlAhMOo6otaHmcxr35sWq1Jk tLkbn3wG+fPQCVudJJECvVQ//UAthSSEklA50QtD2sBkmQ14ZryEyTHQ+E42K3j2IUmOLriF dNr9NvE1QGmGyIcbw2NIVEBOK/GWxkS5+dmxM2iD4Jdaf2nSn3jlHjEXoPwpMs0KZsgdU0pP JQzMUMwmB1wM8JxovFlPYrhNT9MAEQEAAcLBMwQYAQIACQUCVEJx7gIbDAAKCRB+FRAMzTZp sadRDqCctLmYICZu4GSnie4lKXl+HqlLanpVMOoFNnWs9oRP47MbE2wv8OaYh5pNR9VVgyhD OG0AU7oidG36OeUlrFDTfnPYYSF/mPCxHttosyt8O5kabxnIPv2URuAxDByz+iVbL+RjKaGM GDph56ZTswlx75nZVtIukqzLAQ5fa8OALSGum0cFi4ptZUOhDNz1onz61klD6z3MODi0sBZN Aj6guB2L/+2ZwElZEeRBERRd/uommlYuToAXfNRdUwrwl9gRMiA0WSyTb190zneRRDfpSK5d usXnM/O+kr3Dm+Ui+UioPf6wgbn3T0o6I5BhVhs4h4hWmIW7iNhPjX1iybXfmb1gAFfjtHfL xRUr64svXpyfJMScIQtBAm0ihWPltXkyITA92ngCmPdHa6M1hMh4RDX+Jf1fiWubzp1voAg0 JBrdmNZSQDz0iKmSrx8xkoXYfA3bgtFN8WJH2xgFL28XnqY4M6dLhJwV3z08tPSRqYFm4NMP dRsn0/7oymhneL8RthIvjDDQ5ktUjMe8LtHr70OZE/TT88qvEdhiIVUogHdo4qBrk41+gGQh b906Dudw5YhTJFU3nC6bbF2nrLlB4C/XSiH76ZvqzV0Z/cAMBo5NF/w= In-Reply-To: <20231027182217.3615211-19-seanjc@google.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 5970EA0025 X-Rspam-User: X-Stat-Signature: i3yx4qkdkazpd6m7shm6fzxwxhsin9ih X-Rspamd-Server: rspam03 X-HE-Tag: 1698687120-522671 X-HE-Meta: U2FsdGVkX1+H4iYvIomBRYgdgX14DfUh0XTWPFNefUiAa56IB+9WJNd/FfFkCn9D09zQLQTKS/TBhW2f5vb3PUL+PtO5sNLzuU4Xs301PmRa+cGmJtkiSjXSG6lySvW8PrsszV0jWPRrVuiPzAsrIaTchZzWketZugWFiRgwcMcpjXWfIxAaUXZyzTXDvZk4CIzTqnLDerYGWlGsxsqz7uMs8ZqxqWnKm+ru7HDkuRginmyY0HsRxrWcDoXtXRm/QtDAmu0tOluOCUjjROi/nOTX6zm4QBI/YEeynCTqBN5YGgw0ThAJyFAt3ayFB/JjBFxr+7gNNUtBGeiwmqjjmNegdk89V0F+WTToyUda3vYuOjP/LuJd/sQrq2962Jjurhno9Ozij6zjjTCpqi9N0FHTTtraA2YK8aDEPQVUCjYPz578MYFIbaQCmlVEwXGPYg+CK7wsALotLkA1WzEgWCL1S4T8sMpDQMelIujeLZlDo9Z5j/CWIJHRY1tZN5pxkS29mbaQTJeKVVZrRS+WFFdU58PraWo3LCUcnjBGtLf1H4eprg4ZBTu8IBe4ykTJqBP2mE9Sy31GLeY8loPXXwA6A3gJZltte08jWC20oy37rar4kWknCOJ7tikC3y/swkyH7NQDX19Jo/ZBIknpc3kpHmUwbFIdYBls/8Ex06kpoCbyLU3C/nW5olwlQ9oHSQmCwU3mDcymxXvTOagi5lMoDDiU5x+SK4VukPUK/Slf5fmcq8DeYRfBEBm9HeOctgz9EI6CkQX1hbI1KSxY4RL/P5Z2WQZiBb6ObZzRBptATnI2X8OYMxqaon8z3jFRY5cJVYepI6Gs8/cJcdf9oDZwIGNntsIKZ4ns48IjItWqlCtpClZ4CsZz590fWqk5eCPnF8NZ7aawLUwMurgf68IEA+x3WgzCrLv2pD8VZ4o/DpqkIXvB6OZ7NyQ2fQrtt1KCU6YhOy4NkBOn12r 4EQmFufA KBT7MdL9YhBjV18JLvrr2dC64zhHfOfiKJA1CFqJd+8qF91+iAmjASHfzgEbR6BkXwIl5Sf+Xz97oL/5jfK0RmDfUJcCNdNBw39l8uk9EzgAOq9pcQ7AfFwoQtK9Zm3qtOjsX3tDSFUxqUQxtBzKWVmL8/yWVTcvIc1MHVKUChS14hMGY7i3lB0wbl6WPISFooT0XJyYY/E+wj12OkH6D86uc6UX7+vJXJETVbqsaBatwdGJsLhY73UE+W+0zMDI+rWRzgG3uOven7ShoARFEPSctMPTj2HRvSGtRFWi+O34a/Ap1z6fqEQiyl4oSr3dMtLZMCKVvBoErov6g+rX11jd6AovUa6sI/PjxfLeaxaczKLRoestJPjw7rHCEsd469xr4TtoPqL5HeS1X9Y4+Ovl6DX/jrKUSBIs5Yi8d0nNK+BG66lgGs6aR11qPBS/3qyiwNl3t5e6/FVi+3WiOyslJdcne2cyYe+B2ELRIp2x6K3vspGX6R2r25Z5dQbGMFdELN/UPE66DmY4BNFy6ub/wUMl70+aWPz8oq/W5MxA+jbj3fj1i5fbe0Ci7NQ402fmxY1WnmRw2+hC++i+rsofbu1tzqhWNnEPq/M0chql9/n6IkqqvyjSFcw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, 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 10/27/23 20:22, Sean Christopherson wrote: > Initialize run->exit_reason to KVM_EXIT_UNKNOWN early in KVM_RUN to reduce > the probability of exiting to userspace with a stale run->exit_reason that > *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 using > 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 because > KVM already returns -EFAULT in many paths, there's a relatively high > probability that KVM could return -EFAULT without setting run->exit_reason, > 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@google.com > Link: https://lore.kernel.org/all/ZFFbwOXZ5uI%2Fgdaf@google.com > Signed-off-by: Sean Christopherson > --- > 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 = KVM_EXIT_UNKNOWN; > vcpu->arch.l1tf_flush_l1d = true; > > for (;;) { Reviewed-by: Paolo Bonzini