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 E2166C4332F for ; Sun, 5 Nov 2023 16:19:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CA7056B0257; Sun, 5 Nov 2023 11:19:54 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C568A6B027F; Sun, 5 Nov 2023 11:19:54 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AF78E6B0280; Sun, 5 Nov 2023 11:19:54 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 9CC216B0257 for ; Sun, 5 Nov 2023 11:19:54 -0500 (EST) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 623FC120147 for ; Sun, 5 Nov 2023 16:19:54 +0000 (UTC) X-FDA: 81424411908.28.9A3EE20 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf22.hostedemail.com (Postfix) with ESMTP id 53C63C0003 for ; Sun, 5 Nov 2023 16:19:52 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Qs3HRrP3; spf=pass (imf22.hostedemail.com: domain of pbonzini@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=pbonzini@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1699201192; a=rsa-sha256; cv=none; b=O8rJ+CzSvrieAFEWNhvYqmUmnFFyZdP4F4w4wti805duQbd8zOFJiK/yUcUBATsW3MWV+Y zTLJvsPecNjJZmSGvMBkmNW8T0zPJMW5qHd22t5sQTltK62Q1IvI6dir5/g5U7gvrAV0dH ipH2OIs/j4+FKx0zQwCJRo1WmXwqGcM= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Qs3HRrP3; spf=pass (imf22.hostedemail.com: domain of pbonzini@redhat.com designates 170.10.129.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=1699201192; 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=5S45DCFEET4FUlleAs+X25SSP8exRtkoxGaiIZR36AY=; b=t6VpLtYjSbJilV+4wBzrvNpwkJTJ0Xzh/ECj9SmpsNPZu/u1PBI1kuTSre/Ha/mvvam9jd X0Xm3fVlQvZ1Yp+Ivxmapn0rZZzGMG1KhonQ8wetin2CD4C3b9XBuYO/6C4Z5VayHFZv8c FABUcN1q/kEZZt1o09W7onmABOIUJ3c= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1699201191; 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; bh=5S45DCFEET4FUlleAs+X25SSP8exRtkoxGaiIZR36AY=; b=Qs3HRrP3qIhpoKM72TcYby7LjkynOYF2uGUiYgOpf4cM1NTdPhrht9wGz/KnO3gBjJxfUq mza5kadjnoQ8KRXMz4halkRbOGmF7JZQRnmEXEipVlcbqxqYJs2bJ/KxI1kMpBJJetCEJF dDxtT0VknqS2ie5C9oxIB6gY14EdZkk= Received: from mail-vk1-f199.google.com (mail-vk1-f199.google.com [209.85.221.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-677-pk9ZJBnJNrmw8PrgcU0gXQ-1; Sun, 05 Nov 2023 11:19:50 -0500 X-MC-Unique: pk9ZJBnJNrmw8PrgcU0gXQ-1 Received: by mail-vk1-f199.google.com with SMTP id 71dfb90a1353d-4abf1f457c2so964370e0c.3 for ; Sun, 05 Nov 2023 08:19:50 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699201190; x=1699805990; 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=5S45DCFEET4FUlleAs+X25SSP8exRtkoxGaiIZR36AY=; b=qavrLtZWK7x6O65OlqvUd63J+9IEjPcjp5HrYbO68LH/hEcL/kKhtUY52/uQFGWvKx f9+0h1WcLyHXv5q5WOBGcR9wpUCdsKQfAxoSi2C85SQ/XqIdLm3KyFqtxdZ03J2bj4IZ yCxqY6l2WKng0H/7uQilvy7CVOXRhqmO03HJUbUHDh3KaddGpZtzwBENo9puF/Jmv828 JkfaGeOEmZcBRrbc5CmQwHaTu6jVxL1n4FHX4qm4dyR61mL4acEaqO9yAsCDMqEBsiKF Gg3eSz/iNUHYTKJToCbC3Gjneq9ZguEQITcIsFu7JSR9qOrMI8f2xT7pxJkw8LoIBrMY B+9A== X-Gm-Message-State: AOJu0YyPKssFBn60/Q4cN9TVEliqgt5FAk1YwxShs84wgIb6rpFBReM4 uMoqWoa2Su29xEFNwpYXE6Q64ngniXbfpNnDbyT67JmqNumo3v5S2Ju0LbvlKw/+zbtKOgdFstQ qFraFV/E1yovaviy7WU2be004MBU= X-Received: by 2002:a05:6102:4743:b0:45d:8f83:e10f with SMTP id ej3-20020a056102474300b0045d8f83e10fmr5351472vsb.4.1699201189793; Sun, 05 Nov 2023 08:19:49 -0800 (PST) X-Google-Smtp-Source: AGHT+IG9PY/ps/exIZhJtEiBPcrHL5I4MFvN3fWtoZJg4K/o1jMHEXmGlTLfpUZIUzDcxTZUf1dOb3c60KPU/ucxafo= X-Received: by 2002:a05:6102:4743:b0:45d:8f83:e10f with SMTP id ej3-20020a056102474300b0045d8f83e10fmr5351461vsb.4.1699201189503; Sun, 05 Nov 2023 08:19:49 -0800 (PST) MIME-Version: 1.0 References: <20231027182217.3615211-1-seanjc@google.com> <20231027182217.3615211-21-seanjc@google.com> In-Reply-To: From: Paolo Bonzini Date: Sun, 5 Nov 2023 17:19:36 +0100 Message-ID: Subject: Re: [PATCH v13 20/35] KVM: x86/mmu: Handle page fault for private memory To: Xu Yilun Cc: 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 , 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?TWlja2HDq2wgU2FsYcO8bg==?= , Vlastimil Babka , Vishal Annapurve , Ackerley Tng , Maciej Szmigiero , David Hildenbrand , Quentin Perret , Michael Roth , Wang , Liam Merwick , Isaku Yamahata , "Kirill A . Shutemov" X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 53C63C0003 X-Stat-Signature: bpmxg1c6fbx7xr8un8zg1kf1147jsyn8 X-Rspam-User: X-HE-Tag: 1699201192-555432 X-HE-Meta: U2FsdGVkX1+3puyAm4iaC1yizdamgW27+KuSmB5Ggka4cS1Pz/UyI0/Qn8usVt5RbRagYYhaVFHthWDzSlQFNUJCM7lISJgeVsIwdJBMvJC+9iEprYdLoGqS58PzkTCgEFLj9kHw6G3HowAokkQvwlohFEL7cOI99sePBfKBOZtm7p4410mu1FtggicYn3Titcx1AXzPOr06m8GkjJPFdsoacom7jJCRizQXtkLPfkO2Kv1MCvhdQsQQyqVmQJkXTHtbDVYTNWWB5FVU4uI+HX855WJcT5CDeDXsgW0SxX9UXGdFnncQspIlKr3aRPtmcRrgzMDvJJ3eIkhO1xqCEOCAPpKm0gP7lHe1HOoQ+Eon+mVR9Uw/B74y/JSC0xStm45qqSEb4LEhshJA/k0QvaH7+7hY75Cs4Gw7j1By2NTZFbbApQTTOn/s8rdJp4GcuTTGIasmz3prz2EEKa/9/5nUqeBvbq1bZhaX8dEhRmqTXBVsPdAH/OJMH1RFJh7tl3NCwmS55jdm816RQ3nHf11HEOamyEBOeH1ZOUIyfwovYQuwLZIl1ugZisinBXEmfStuXmPN+Ug/ZmzgjcN161o2d/BgaxE6yvNNu6+ig59IuxGbnipcvOzVJwy+L55mHtQzvakQiw1wepShvQIKE9A3Uuui4Oz5e2VVeHr0ix47S+Nnk/3724FHOHMlLRWD3ObgSMEHX3BaRSSo0dHzqjHJg4WYtqeUFWamyx2sLRDnyMJjTdgckrMPUNHSnGeGu3y9nf52H/O4A4SwcbHoDAm2+AhVgykSReQIMt9PIzDw83oQvj1nAaquqJf/0qU/zxywKOtTvfHVmoVY/TGGAo5WL8G0AD38eLqjm28l1qptffm6vxCUjK+OTGhX/bCSXuSnO4IB8bkfAW5JVeJ6a2axN/7jTsnVlS4ZTKRnTTamoXbhXOzFxavuaubd9VxT0YtenD8AYF054cc+UWA akKL5QcI zXLi7oLU5H9HbkliM3aykAnr2h/x1Gyh1Ij25mrNpYjUxo6NeRvNMJepiZDzZoyU0aWOO7HV4JExfj8uw7Zju9KlMgoFnJv2iDPXnszkpfHm8SVkiOIOQxv+ulntGGDgV5QAiXwj71ESuS2dvIqv07P4XWKheqdJHJHcOpOkQ2KeJT6lOAhJ7hBVBfb19CmXgJT89R9XN5g4RppKa9MY02qPSD3B5jOd//hHczM4XAJtTNkf9lYj4tIi2KMv4mrVallQX7NkZVVBNghJXb1Q9IUQL8ELPh51bWk0WV9nXlyjq9L54deZCLd8Wy9wsAl6kEYNss3Bp5rM6f0Y4NoItT9b4jw== 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 Sun, Nov 5, 2023 at 2:04=E2=80=AFPM Xu Yilun = wrote: > > > +static void kvm_mmu_prepare_memory_fault_exit(struct kvm_vcpu *vcpu, > > + struct kvm_page_fault *faul= t) > > +{ > > + kvm_prepare_memory_fault_exit(vcpu, fault->gfn << PAGE_SHIFT, > > + PAGE_SIZE, fault->write, fault->exe= c, > > + fault->is_private); > > +} > > + > > +static int kvm_faultin_pfn_private(struct kvm_vcpu *vcpu, > > + struct kvm_page_fault *fault) > > +{ > > + int max_order, r; > > + > > + if (!kvm_slot_can_be_private(fault->slot)) { > > + kvm_mmu_prepare_memory_fault_exit(vcpu, fault); > > + return -EFAULT; > > + } > > + > > + r =3D kvm_gmem_get_pfn(vcpu->kvm, fault->slot, fault->gfn, &fault= ->pfn, > > + &max_order); > > + if (r) { > > + kvm_mmu_prepare_memory_fault_exit(vcpu, fault); > > + return r; > > Why report KVM_EXIT_MEMORY_FAULT here? even with a ret !=3D -EFAULT? The cases are EFAULT, EHWPOISON (which can report KVM_EXIT_MEMORY_FAULT) and ENOMEM. I think it's fine that even -ENOMEM can return KVM_EXIT_MEMORY_FAULT, and it doesn't violate the documentation. The docs tell you "what can you do if error if EFAULT or EHWPOISON?"; they don't exclude that other errnos result in KVM_EXIT_MEMORY_FAULT, it's just that you're not supposed to look at it Paolo