Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp1269638pxp; Sat, 12 Mar 2022 06:06:10 -0800 (PST) X-Google-Smtp-Source: ABdhPJzvetsrwJfONyi/kpdDpaINEJVDWWQe22xceWHTsyhcTA1Xw2RY4GITFtG0VCn1yyBhpdxH X-Received: by 2002:a17:902:7246:b0:151:49e7:d4fc with SMTP id c6-20020a170902724600b0015149e7d4fcmr15666543pll.88.1647093970387; Sat, 12 Mar 2022 06:06:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1647093970; cv=none; d=google.com; s=arc-20160816; b=cXdLsAoThUtBfnTox6J1BLBgMnyWyLpLfhqxBRVW4tCKd0r7X8Wn+JWJSuylrMNdjf hJToKSqw6CjMuqMK0OgsjRFUbs/fxS/4eVJflLc/kCYBTB16wxKg335/snRME6O74gvq 8vHR4qtaFGIYkFGe2UxwZFnOApJqAjdyBpUVGK0fs4sK6keB3RZSCa1lgwC12Oy7bz6C XHVblLS4h+vAWR0FXIRLhuBUPMrXxLgUyUjg9EWcEFL0ZweAdldN1b8zIdAmcmyN1eXe 8Xg1Xxig9ty2fKtX8+eC06b12nbqjbvQJWY3JomwTDP2+tDmxFbJGsvf2hzNzkprSIqo WCRw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to :organization:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:dkim-signature; bh=OFLnAdgDOQ5hQlNRliUXXsmFU+Cm7xTjHzqvxYTuqXE=; b=tLQioW7R5GtCxO9AvHibKEVeYjM9cU52eouaprYHEM9xUDs+gKcqxe4jAzbnOoVG05 clzoYQvjBkcwwov+QmqDGD4ufxJJ8P6HIO1JMOWMNOu9ylTdvgKFgkIkR0XBUNCzAnfw +Z9qCYCNqO+RSpCj6hJ6zyUH5cPhiJQQF3/QhHaQ0p0wXPwUz0MlVHKBHm8sa21Y6zOZ 1zweOybR1V+jV6qPZNRzqAy4KlloTG+ueqkA/JzP9grcdQJDq6dOE5ddHNIu2P/FKGOJ /VBT1PSDPsdLwF/HihPW1hX07t+3iFtF1MazTSNnYzQHgpOgoXM+mVFf8+lFuE4UiFru 1cwQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=A8B0eXS7; 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=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id m3-20020a170902db0300b001530856ac38si2923760plx.26.2022.03.12.06.05.47; Sat, 12 Mar 2022 06:06:10 -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=@redhat.com header.s=mimecast20190719 header.b=A8B0eXS7; 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=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231254AbiCLIM1 (ORCPT + 99 others); Sat, 12 Mar 2022 03:12:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53434 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230113AbiCLIM0 (ORCPT ); Sat, 12 Mar 2022 03:12:26 -0500 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 4EE80268C2E for ; Sat, 12 Mar 2022 00:11:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1647072680; 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=OFLnAdgDOQ5hQlNRliUXXsmFU+Cm7xTjHzqvxYTuqXE=; b=A8B0eXS7ieULiDIG7UVy8D9Yb7Ztv0ODeqi/4Fh3JoL+Xida5v7T/1N7jYkzrprpMf2PBs qHvZBhjeRVIgkoVbCqoBvlYT1TYyzRadfjgD0BuRvJwylDMs8KpuxUFLP7o0HrrkggS4pr xLPMfNyrDl0jT14lHpkCdVf/LC+6V2g= 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.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-217-MMqqmVFDNuOlxsHdy4CYFA-1; Sat, 12 Mar 2022 03:11:19 -0500 X-MC-Unique: MMqqmVFDNuOlxsHdy4CYFA-1 Received: by mail-wm1-f70.google.com with SMTP id t2-20020a7bc3c2000000b003528fe59cb9so4062058wmj.5 for ; Sat, 12 Mar 2022 00:11:18 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:cc:references:from:organization:in-reply-to :content-transfer-encoding; bh=OFLnAdgDOQ5hQlNRliUXXsmFU+Cm7xTjHzqvxYTuqXE=; b=cUYPXTvtZSXlQY1022juzXzL491gLZRfsTPwuR2xyqRMYVUsbkYEB19sttukcFNyYb cqDSfKQO8RMjZPaSacvN5XAF84tUQtwRuMDs+npSm0rIeQ4ADbTOnnZ2nMjjf+eisNKv EcMbZLMnPVY4JFwfsz+iVDkz9c9GKNIbb6Tmwn/leNZK+CSAoOAFR6V+kzyyl18p21hu sfzCpxj6atGH8nWOEF0fiWlD4nyOFLipRmuUxEPd6f1eCqw1/lZhBBYyEbvkt4Oa9OKc mlJaiS7bMwpMBcDwtBW4KHEIXLEALStuFW+3x3EMf9865zq3oVPof0m3ABCX4cTXLmyK M4Vg== X-Gm-Message-State: AOAM530KqXpH4KDtB9bbiZKXQpWlv2MzNhrx9ujBWqtBX0jOtBUX47+o 0Gylo4Qnfn0XUWSgOuVphl3ngwqP6igfRpJ3xomhA1U6ZnzBt3anx43ZVp5A40ADL1D4dDs8HCO RQK0ItsxduNp1UiSs2LzIoeuM X-Received: by 2002:a05:600c:35d4:b0:389:cdff:7f47 with SMTP id r20-20020a05600c35d400b00389cdff7f47mr10073081wmq.127.1647072677801; Sat, 12 Mar 2022 00:11:17 -0800 (PST) X-Received: by 2002:a05:600c:35d4:b0:389:cdff:7f47 with SMTP id r20-20020a05600c35d400b00389cdff7f47mr10073055wmq.127.1647072677552; Sat, 12 Mar 2022 00:11:17 -0800 (PST) Received: from ?IPV6:2003:cb:c71e:1600:ad89:c64e:8371:c9c4? (p200300cbc71e1600ad89c64e8371c9c4.dip0.t-ipconnect.de. [2003:cb:c71e:1600:ad89:c64e:8371:c9c4]) by smtp.gmail.com with ESMTPSA id v12-20020a5d4a4c000000b001e68ba61747sm8257257wrs.16.2022.03.12.00.11.15 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 12 Mar 2022 00:11:17 -0800 (PST) Message-ID: <6e0c4a21-7dff-044b-cd4b-6d612559f10d@redhat.com> Date: Sat, 12 Mar 2022 09:11:15 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.6.2 Subject: Re: [PATCH v1 10/15] mm/page-flags: reuse PG_slab as PG_anon_exclusive for PageAnon() pages Content-Language: en-US To: Matthew Wilcox Cc: Linus Torvalds , Linux Kernel Mailing List , Andrew Morton , Hugh Dickins , David Rientjes , Shakeel Butt , John Hubbard , Jason Gunthorpe , Mike Kravetz , Mike Rapoport , Yang Shi , "Kirill A . Shutemov" , Vlastimil Babka , Jann Horn , Michal Hocko , Nadav Amit , Rik van Riel , Roman Gushchin , Andrea Arcangeli , Peter Xu , Donald Dutile , Christoph Hellwig , Oleg Nesterov , Jan Kara , Liang Zhang , Pedro Gomes , Oded Gabbay , Linux-MM References: <20220308141437.144919-1-david@redhat.com> <20220308141437.144919-11-david@redhat.com> From: David Hildenbrand Organization: Red Hat In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham 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 11.03.22 22:11, Matthew Wilcox wrote: > On Fri, Mar 11, 2022 at 08:36:37PM +0100, David Hildenbrand wrote: >> I used PG_error before, but felt like using a bit that is never ever >> valid to be set/cleared/checked on a subpage would be even a better fit: >> >> Note the: >> >> PAGEFLAG(Waiters, waiters, PF_ONLY_HEAD) __CLEARPAGEFLAG(Waiters, waiters, PF_ONLY_HEAD) >> >> whereby PF_ONLY_HEAD translates to: >> >> "for compound page, callers only ever operate on the head page." >> >> >> I can just switch to PG_error, but for the second subpage, PG_waiters >> should be just fine (unless I am missing something important). > > I think you're missing something important that almost everybody misses > when looking at this code (including me). > > PF_ANY flags can be set on individual pages. > PF_HEAD means "we automatically redirect all operations to the head page". > PF_ONLY_HEAD means "If you try to call this on a tail page, we BUG". > PF_NO_TAIL means "If you try to read this flag on a tail page, we'll > look at the head page instead, but if you try to set/clear this flag > on a tail page, we BUG" ^ that's actually the confusing part for me "modifications of the page flag must be done on small or head pages, checks can be done on tail pages too." Just from reading that I thought checks on the tail page would *not* get redirected to the head. I'd have written that as and extended version of PF_HEAD: "for compound page all operations related to the page flag are applied to head page. Checks done on a tail page will be redirected to the head page." [...] > > So really, you can reuse any flag as PF_SECOND that isn't PF_ANY. > I'll go back to PG_error, thanks! -- Thanks, David / dhildenb