Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp799030rwb; Fri, 18 Nov 2022 08:22:21 -0800 (PST) X-Google-Smtp-Source: AA0mqf5APqGibT8mOQBfUTSNbav53v6hIjsSPNAhZ8gNIcMjFrkY8vc9FY+OJHUzBuV2YR2fiqN9 X-Received: by 2002:a17:902:cacb:b0:186:9fc8:6688 with SMTP id y11-20020a170902cacb00b001869fc86688mr317352pld.22.1668788541291; Fri, 18 Nov 2022 08:22:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668788541; cv=none; d=google.com; s=arc-20160816; b=yNORuc4WgamNsSc01Nxgm9ERPSnWkK8Zwpehbb8GxA5P7C0Ffs0sCWY/UcSnd6aWMB VwIajruShs15JY/7/9zHQjJzTojn6WSpsm/9LbzlVxrqtsjY8izUVT88UNx9D8RQm4I2 AAVR3B0ymiUiWiqVNGe0ducc3PXywSRQFHdlwo8tzhFmeCjGgJg/0HJL4jhnFp0qnoIm uQsyws6oqGoI3xDriH7TPnxhXiPXSBQMYfxK5QD6Mz4eH39L8gqC7o0TWuZK+/ODIu+C nllvxIycDrKwPm0VWzotHnvsJ4hGj9znjd8tRypCgrm6AX56ROXQR+wuaKDtyBqy83Z7 4elQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=BIzAKlqfAaMg368D6jPlp8HmIeVCVtTOFRZVfOrIoRA=; b=pKHokvjccTYI1Zq5ktIy6OqyvBCDk0TxI9Azw7xkZJuSL1CNvffsmec9VWiy9Ypdes hAmJTa4EscB/JkrDwOGhp7sUkxKAI+tRuR7Usr4bTUeXawswatrhqKF7RH8QmcUgkJpS KdDGAE9e7+6rL7bSnZCOR9LICCCMbUqPtjF6Fy0kNlUy36PM75mW7QdngmG9RYdVkHza 0A2tCZP2VI8n0zqDEzz8yOA6Lm58MNFCWxH8K2lHvG63U4t2JIXBksk1vd8TYHYlArWz rqGEsL0BGsFCQrBiWpwHMRPH0BnxepyFsg5g21z4s+Q85XR6m5BqzliP594Kaohht89F 7z3w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=s6eyQMrx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w125-20020a636283000000b0042bc6e8d3f7si4285240pgb.642.2022.11.18.08.22.09; Fri, 18 Nov 2022 08:22:21 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=s6eyQMrx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241240AbiKRP7Y (ORCPT + 91 others); Fri, 18 Nov 2022 10:59:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34354 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241312AbiKRP7T (ORCPT ); Fri, 18 Nov 2022 10:59:19 -0500 Received: from mail-pj1-x1035.google.com (mail-pj1-x1035.google.com [IPv6:2607:f8b0:4864:20::1035]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3CF7662C3 for ; Fri, 18 Nov 2022 07:59:17 -0800 (PST) Received: by mail-pj1-x1035.google.com with SMTP id b1-20020a17090a7ac100b00213fde52d49so5426906pjl.3 for ; Fri, 18 Nov 2022 07:59:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=BIzAKlqfAaMg368D6jPlp8HmIeVCVtTOFRZVfOrIoRA=; b=s6eyQMrxXlVr7mjyTTlqJhnlh/Xi9X6Am4TwNlENwsPyRh8KvXIqhnsP3MMWC9+MoB oQd97BmjUOsQPxgMsh5zyjcOYLIVp3cqB3U8qN7/Ud5hvTdIANRIWIS/vJblpoBTxukB h0Lxk6Jg3vNqw4OVzI0CkcjluXS6vsT31cdyDImlVx7++g13+ozmNNZ5BkzVdivrg7g+ 00m3rpeYDbyzY05rk/dB8GnC4ClchfIxtJ5aTCzCQyATv7KhMjKNSIDvnh3cGt1Q5v+L lNMyGoelDxkjB2wAw8ywO8jmucxwhUGJpJ8n7dWOAqcgUj06ocsZtkUfpHvBn0wBdFz1 TsrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=BIzAKlqfAaMg368D6jPlp8HmIeVCVtTOFRZVfOrIoRA=; b=ThewlGJhvXoc3bzfjAcOxj2qXwnC3I5zNymWR0kQ9aSsFRIL5vyyHI7Wd4xT6y/acF dGbkJAF3Iqz5lCUBbsSOpwkvGeQw+PKnbKIjJVZCdGVGAqm7g6KOrYygSUK6xlhjE75N KpZywUoPE78KbOVALSzSg0mgpcRbSzlTdjXarh1yeUaH+nFBjqlGcqdMbkeUkDAzSTw/ zCwPgEfPqmfdudIhD3pLDohliHwfZDnUM+GTnUTH5iuQ1y4QRQ22BfMemJjfFfjfFG8h XvuN+LJN/oYJl8d0lctwWh2CDCNzay7HnmHtxtwbnWSNjTtqIIkpOkc3U7gnDSH+o8bA k0gg== X-Gm-Message-State: ANoB5pkq6r2uuNwGpFKPdcbJbp4RWI9kngpECm/5dYBNJagPFv4lV90Z EkQ9xRnwiT+NHgU4n+/lGrJ5iQ== X-Received: by 2002:a17:90a:9f03:b0:211:59c6:6133 with SMTP id n3-20020a17090a9f0300b0021159c66133mr8428311pjp.238.1668787156611; Fri, 18 Nov 2022 07:59:16 -0800 (PST) Received: from google.com (7.104.168.34.bc.googleusercontent.com. [34.168.104.7]) by smtp.gmail.com with ESMTPSA id s16-20020a170902a51000b001869f2120a5sm3840359plq.34.2022.11.18.07.59.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Nov 2022 07:59:16 -0800 (PST) Date: Fri, 18 Nov 2022 15:59:12 +0000 From: Sean Christopherson To: Alex =?iso-8859-1?Q?Benn=E9e?= Cc: Chao Peng , kvm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-arch@vger.kernel.org, linux-api@vger.kernel.org, linux-doc@vger.kernel.org, qemu-devel@nongnu.org, Paolo Bonzini , Jonathan Corbet , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel , Thomas Gleixner , Ingo Molnar , Borislav Petkov , x86@kernel.org, "H . Peter Anvin" , Hugh Dickins , Jeff Layton , "J . Bruce Fields" , Andrew Morton , Shuah Khan , Mike Rapoport , Steven Price , "Maciej S . Szmigiero" , Vlastimil Babka , Vishal Annapurve , Yu Zhang , "Kirill A . Shutemov" , luto@kernel.org, jun.nakajima@intel.com, dave.hansen@intel.com, ak@linux.intel.com, david@redhat.com, aarcange@redhat.com, ddutile@redhat.com, dhildenb@redhat.com, Quentin Perret , tabba@google.com, Michael Roth , mhocko@suse.com, Muchun Song , wei.w.wang@intel.com Subject: Re: [PATCH v9 3/8] KVM: Add KVM_EXIT_MEMORY_FAULT exit Message-ID: References: <20221025151344.3784230-1-chao.p.peng@linux.intel.com> <20221025151344.3784230-4-chao.p.peng@linux.intel.com> <87cz9o9mr8.fsf@linaro.org> <20221116031441.GA364614@chaop.bj.intel.com> <87mt8q90rw.fsf@linaro.org> <20221117134520.GD422408@chaop.bj.intel.com> <87a64p8vof.fsf@linaro.org> <20221118013201.GA456562@chaop.bj.intel.com> <87o7t475o7.fsf@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <87o7t475o7.fsf@linaro.org> X-Spam-Status: No, score=-17.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, USER_IN_DEF_DKIM_WL,USER_IN_DEF_SPF_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Nov 18, 2022, Alex Benn?e wrote: > > Chao Peng writes: > > > On Thu, Nov 17, 2022 at 03:08:17PM +0000, Alex Benn?e wrote: > >> >> I think this should be explicit rather than implied by the absence of > >> >> another flag. Sean suggested you might want flags for RWX failures so > >> >> maybe something like: > >> >> > >> >> KVM_MEMORY_EXIT_SHARED_FLAG_READ (1 << 0) > >> >> KVM_MEMORY_EXIT_SHARED_FLAG_WRITE (1 << 1) > >> >> KVM_MEMORY_EXIT_SHARED_FLAG_EXECUTE (1 << 2) > >> >> KVM_MEMORY_EXIT_FLAG_PRIVATE (1 << 3) > >> > > >> > Yes, but I would not add 'SHARED' to RWX, they are not share memory > >> > specific, private memory can also set them once introduced. > >> > >> OK so how about: > >> > >> KVM_MEMORY_EXIT_FLAG_READ (1 << 0) > >> KVM_MEMORY_EXIT_FLAG_WRITE (1 << 1) > >> KVM_MEMORY_EXIT_FLAG_EXECUTE (1 << 2) > >> KVM_MEMORY_EXIT_FLAG_SHARED (1 << 3) > >> KVM_MEMORY_EXIT_FLAG_PRIVATE (1 << 4) > > > > We don't actually need a new bit, the opposite side of private is > > shared, i.e. flags with KVM_MEMORY_EXIT_FLAG_PRIVATE cleared expresses > > 'shared'. > > If that is always true and we never expect a 3rd type of memory that is > fine. But given we are leaving room for expansion having an explicit bit > allows for that as well as making cases of forgetting to set the flags > more obvious. Hrm, I'm on the fence. A dedicated flag isn't strictly needed, e.g. even if we end up with 3+ types in this category, the baseline could always be "private". I do like being explicit, and adding a PRIVATE flag costs KVM practically nothing to implement and maintain, but evetually we'll up with flags that are paired with an implicit state, e.g. see the many #PF error codes in x86. In other words, inevitably KVM will need to define the default/base state of the access, at which point the base state for SHARED vs. PRIVATE is "undefined". The RWX bits are in the same boat, e.g. the READ flag isn't strictly necessary. I was thinking more of the KVM_SET_MEMORY_ATTRIBUTES ioctl(), which does need the full RWX gamut, when I typed out that response. So I would say if we add an explicit READ flag, then we might as well add an explicit PRIVATE flag too. But if we omit PRIVATE, then we should omit READ too.