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 07C80C001DF for ; Sat, 29 Jul 2023 00:03:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4B2156B0071; Fri, 28 Jul 2023 20:03:38 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 439158D0002; Fri, 28 Jul 2023 20:03:38 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2B17A8D0001; Fri, 28 Jul 2023 20:03:38 -0400 (EDT) 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 1D60D6B0071 for ; Fri, 28 Jul 2023 20:03:38 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id DA9DF1C952F for ; Sat, 29 Jul 2023 00:03:37 +0000 (UTC) X-FDA: 81062700474.06.3B06FD1 Received: from mail-pl1-f202.google.com (mail-pl1-f202.google.com [209.85.214.202]) by imf29.hostedemail.com (Postfix) with ESMTP id 2C8BE12000C for ; Sat, 29 Jul 2023 00:03:35 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=Zp0GOXqU; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf29.hostedemail.com: domain of 3VlfEZAYKCEMxjfsohlttlqj.htrqnsz2-rrp0fhp.twl@flex--seanjc.bounces.google.com designates 209.85.214.202 as permitted sender) smtp.mailfrom=3VlfEZAYKCEMxjfsohlttlqj.htrqnsz2-rrp0fhp.twl@flex--seanjc.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1690589016; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=rJg9MbukUkeAf25VcBnSvGPEfaUIyqqF94QJU8orhSY=; b=WYSqQP0g1qhPY/CMes79tp/aR/ChbrjrnyLYjG9eGuMtjRxdy9J7Qau8fa6StFMWbs+n+N vsJc5znndsj8J38wohpX6tOBtzZm0CKwocbSLlwESAwaObsglZqNJ1RdhV+dCq0+WVknwk UqdpOZmzyhaPWIerFgsLT5XL76HpuTc= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=Zp0GOXqU; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf29.hostedemail.com: domain of 3VlfEZAYKCEMxjfsohlttlqj.htrqnsz2-rrp0fhp.twl@flex--seanjc.bounces.google.com designates 209.85.214.202 as permitted sender) smtp.mailfrom=3VlfEZAYKCEMxjfsohlttlqj.htrqnsz2-rrp0fhp.twl@flex--seanjc.bounces.google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1690589016; a=rsa-sha256; cv=none; b=7Th9hsGLZLqCkQd0m4oUCCj/EM2eqW9RzeIzGrpErbib3LlqX4ehUEhLfo1WGDHq1n7ZLd uloyyyK+3ZZ7LO0uBng3OFihH29J5YLM/n2Kqrp11s6QAAEi28AQDdG1Kon40sHbFSkfWv 2ISWhs59e4uwh8AmlyN9F5VscXA4+ko= Received: by mail-pl1-f202.google.com with SMTP id d9443c01a7336-1bbf8cb6143so1944315ad.1 for ; Fri, 28 Jul 2023 17:03:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1690589015; x=1691193815; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=rJg9MbukUkeAf25VcBnSvGPEfaUIyqqF94QJU8orhSY=; b=Zp0GOXqU9vAtanM7byzLEY1ZTAuQCQrnfrak1thKcFFHMBCZO/N4KqKDBd5I3kJffW Vh8ovzLtMVpv7R9tgjnJuitRPz0iowTqbSccpqb9sCrit8s8jZkHgE3EKWmaz9/YJybN uhR+1LBQ/EGKFm12kofvmo1N8Or8Mhd5I9QIxgAZxJjUnAncn/OfNQ+xg9V9rSfFrTW5 6+gyXWvxsDfod0XUAEoSS/aCS0HqakbjGuI1/I8BU2Uy6FDW2YJ6LrCVt60GU5GehRX5 3Ug/sPFW2Iawha4cKCkpfEtG9Mwjo7aL2M8Rz65tztUDm7ObzFqkZ6ozvUAWJtziwaLO +gKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690589015; x=1691193815; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=rJg9MbukUkeAf25VcBnSvGPEfaUIyqqF94QJU8orhSY=; b=k7rg5OSR38d0HPNXc0mpmYHor2/u14FV4HsPF+LkByD5Of9qOrrNNUBCjUQ0XLHVQv pmckiK0tGwWDIGvc2y28pVS9KzeO+aKQxNKoh2PbcGYNldUeTkC6kh8eZTu4Ispcc/PD 9J/Ib+fMfeZH1qHoMG4u3xFhzcQ5rLGMXl9QUqIbskPEgKWG4oS9ACTvYvme4APKfD+f 0jMg/V0F5wUW9Nfl3Ay+7z2h98FFzkSA0KLPzeyGigv4w6HRVHRLtXyFn/UNUPvCf/+6 ZpGz6C/CFr28ccSJturCA9gduE9XNPqq8PDh6jHw8wo9CP7/XC2OmSIDSLmondaxfqWu h3Qg== X-Gm-Message-State: ABy/qLbRVwbq1Y/jXVb7IF0aR/ePD/yQydG/SYO3WNTpISYSMYJMeJXz uhQshV67ZvVu0P91izTFWTDtMIgV7gU= X-Google-Smtp-Source: APBJJlGy4rMQGFiWHQC+IuRONPQH0HvvNAt7asJXiFk+bZ/uVjfNOjPYVgrOl+x+eQJGyA+j61wbqvGP0DI= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a17:902:c951:b0:1ae:6895:cb96 with SMTP id i17-20020a170902c95100b001ae6895cb96mr12864pla.5.1690589014804; Fri, 28 Jul 2023 17:03:34 -0700 (PDT) Date: Fri, 28 Jul 2023 17:03:33 -0700 In-Reply-To: Mime-Version: 1.0 References: <20230718234512.1690985-1-seanjc@google.com> <20230718234512.1690985-7-seanjc@google.com> Message-ID: Subject: Re: [RFC PATCH v11 06/29] KVM: Introduce KVM_SET_USER_MEMORY_REGION2 From: Sean Christopherson To: Quentin Perret Cc: Paolo Bonzini , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , "Matthew Wilcox (Oracle)" , Andrew Morton , Paul Moore , James Morris , "Serge E. Hallyn" , 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-security-module@vger.kernel.org, linux-kernel@vger.kernel.org, Chao Peng , Fuad Tabba , Jarkko Sakkinen , Yu Zhang , Vishal Annapurve , Ackerley Tng , Maciej Szmigiero , Vlastimil Babka , David Hildenbrand , Michael Roth , Wang , Liam Merwick , Isaku Yamahata , "Kirill A . Shutemov" Content-Type: text/plain; charset="us-ascii" X-Rspam-User: X-Stat-Signature: m8jigy3bybmt1qai9yd5kxmotfdbu58g X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 2C8BE12000C X-HE-Tag: 1690589015-527845 X-HE-Meta: U2FsdGVkX19TvdXM3IxJtzqWb26/c0MiYeJOLM7fav4+bkf+zCISDFHMJzy/XPv2AA+m7DksfMEvk5zixKQ8FCpbr82xiLIYajyqq82RLv6u60niAJ/4nrNR+/b9nAd5GsP5irADhO4ISY8n7H29RzJMw3ZY2hp4J8XPn5Zjq/RKiSQXH+8g/DHSHfcIwqwlT0nPoKpQIxPtFsSJZZk1z0+R2xw+ex0Cxyc6N58wP8av3m19vIb+vluZdlMvgbGgjEuHmDYGC4OyBub21n8TTLUGygwfoLUilF6ghZqhKgWhdAhyoJLgqhPoHq5FxyTfToiTkiC2oaFuhV8UNDnjHkc+vahdTQCimSepu5Gp8Do9i2vrBhZkTix7Agn2PBqVoGdZc+z+DLwe5Gx1Fxk/qD/Ot+yrNpLE3krRVblLY/+CbogA6bMfRiS3dVszklD7GkQnRLmBS+rVKaTeWuXlULztvt0BbyLysGpf0m0vK/u54808FFaSEPzF+L/RMQ6799HcdDVVvvCdQXLdqNlRYs2Ga0phihMSLhlqPfKrso2F6F1UMj9GVl5X2ZSfDs7kCc9FQuOmIeB3lgM1tzkyFBuDBN8ADZSNseALqal+m+hTEhmiCb8DIPSfUQ7ulTMfROva+wetZqaSkgrQVlKxP0wEmaf16axq9aEWtkqm+iyPDCGqnGUMlQsbQyXI+a+XpUwslSfYQu7jFLPof91QpyndSEgbxO5LD7JmJWk+aSZmRw4Yn6wrkye9xMXMyoNEKfpDwObpsJ9GBZEWREEkbwCAdRG9Sss+SiVvlf5LQv58z5Qjey/ctRT/7bAuuYUj9gnYB4kRi1sQRRENZSWAbWDXLC21Sxmh2/+B8FU4AxJUB8fEHPArpz5lS0jMTPbvlz0eDfP0oVJapYab1jSE3VKVMytWLbnQvV2VV9mVzqqj9tyimjXPhKbYWwpYCwPvHlxQO1ACgi2Jmjt3nk8 eN92hYkH vrJYjeG6Th+YfPjibzU5pwcTIxsK33ygN3HidoOGcRrNXTpcHPv1+hvf9XhFhCZUKAwcB5qKISfaumPM6f0uh/7dPVQyEII1HefD25gghsjEb/stdTPEOn91AIuDdC05HWLKzKrRBHo2mytGXY6j1ReH8P/izQlXOqVsaZmJc9G0oPVZDckp0voe7Dr0pk91ZpHzahlnQ+wnYs4il/1iFPwLU5GfjwQ1mlOirOjkDou3fvVi8cbYZstullEOhd4O9WjbcQAlv8YlVjq8P7Ob1Q4TRbum7ppaccIAX6gT+AP/8QlMMlJ5zWsmR5RntP0plOl4zJC7M7w43BHRHlJ22yMoWfYokVtQYNuMbo/2zIAdj7kKutbl0yV5x46mqQeAgiiITwpARfktJ5QtOWNaw0M6K+N2H46zZu4zd9eK8wWfPvjp7cNFnlcpwBAQIKX/Zcj9vA3mSshYbI8bdCijCkMUGWzPA6ozCyZpirVLNF9F9LlXP0CSU4CFug/Cjo+jdSukH52UQzbs3BNxJGKPz9AHGZk6wQvc2NCNnq0nkkMFJDP2yKU0XhrNfZiB0ADIobt/E8L2igckkO+rUgb3IL7aZFYpSbBh/glvgCQ3/WUzs+97PuttD82v1xeDXSiNuJQB4j96PbD3RUER4gP6RyEjZDuFudMpArDRVZVNrmNslLN/v68AGDX6zllfuJp05z9kvHDOsa/D57rk4dZw1N8P0gK3vCrQXB3Et3gVbNn8u6boUSmjaO9RrA4zH0nJPKdF7WmKN3e9b/AJSAncx31n3Vmre0h5fW/Dh 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: On Fri, Jul 28, 2023, Quentin Perret wrote: > On Tuesday 18 Jul 2023 at 16:44:49 (-0700), Sean Christopherson wrote: > > --- a/include/uapi/linux/kvm.h > > +++ b/include/uapi/linux/kvm.h > > @@ -95,6 +95,16 @@ struct kvm_userspace_memory_region { > > __u64 userspace_addr; /* start of the userspace allocated memory */ > > }; > > > > +/* for KVM_SET_USER_MEMORY_REGION2 */ > > +struct kvm_userspace_memory_region2 { > > + __u32 slot; > > + __u32 flags; > > + __u64 guest_phys_addr; > > + __u64 memory_size; > > + __u64 userspace_addr; > > + __u64 pad[16]; > > Should we replace that pad[16] with: > > __u64 size; > > where 'size' is the size of the structure as seen by userspace? This is > used in other UAPIs (see struct sched_attr for example) and is a bit > more robust for future extensions (e.g. an 'old' kernel can correctly > reject a newer version of the struct with additional fields it doesn't > know about if that makes sense, etc). "flags" serves that purpose, i.e. allows userspace to opt-in to having KVM actually consume what is currently just padding. The padding is there mainly to simplify kernel/KVM code, e.g. the number of bytes that KVM needs to copy in is static. But now that I think more on this, I don't know why we didn't just unconditionally bump the size of kvm_userspace_memory_region. We tried to play games with unions and overlays, but that was a mess[*]. KVM would need to do multiple uaccess reads, but that's not a big deal. Am I missing something, or did past us just get too clever and miss the obvious solution? [*] https://lkml.kernel.org/r/Y7xrtf9FCuYRYm1q%40google.com