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 87B7AC001DF for ; Tue, 15 Aug 2023 22:32:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D340A940033; Tue, 15 Aug 2023 18:32:23 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CE49F8D0001; Tue, 15 Aug 2023 18:32:23 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BABE3940033; Tue, 15 Aug 2023 18:32:23 -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 A789E8D0001 for ; Tue, 15 Aug 2023 18:32:23 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 77E47160DD9 for ; Tue, 15 Aug 2023 22:32:23 +0000 (UTC) X-FDA: 81127788966.15.B97E1A9 Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.41]) by imf12.hostedemail.com (Postfix) with ESMTP id 9DCF84000B for ; Tue, 15 Aug 2023 22:32:20 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=dCOCdw2q; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf12.hostedemail.com: domain of yosryahmed@google.com designates 209.85.221.41 as permitted sender) smtp.mailfrom=yosryahmed@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1692138740; 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=clD27qRrlZWSnkEP+mWZLIV4ZuO805zRtXZ8s1yCw9A=; b=dD4LMo/inQ/9CA82KwDNPflIlHFkX5qRHQRkaaqM/rnRqP+yunEq2xMLGPy4D4v1g8ExDu mIn5b84HVEvqQhKrAxBYDO0J0hl4QnQ5kmcQMqB3/tzEvUQ+AqLOU+cW6/JbIEbzPW1yEh MrOlz3CxnX3h4D+vZ+N1Aqa3l6d6QMM= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=dCOCdw2q; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf12.hostedemail.com: domain of yosryahmed@google.com designates 209.85.221.41 as permitted sender) smtp.mailfrom=yosryahmed@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1692138740; a=rsa-sha256; cv=none; b=OYeuF6FpJlB+ew3sa10Iebx9rlnbl+oVcEvfUlduECen8GT1oivPKmhKX2GqaiscWKnm5j bcBLv96PXy0EpHqalfphVZqliST8fI1MuP1HJ7GbM3xFXYdqOVxf5Ov+hJ3700bfjMYyKK c0Q/NafnKI6DAmMzIzE0VtzdGsCZaA0= Received: by mail-wr1-f41.google.com with SMTP id ffacd0b85a97d-307d20548adso5247762f8f.0 for ; Tue, 15 Aug 2023 15:32:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1692138739; x=1692743539; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=clD27qRrlZWSnkEP+mWZLIV4ZuO805zRtXZ8s1yCw9A=; b=dCOCdw2qRsZHx0XuPr3uc7CNFSLrL5tSDrnLcrkUD8pX0SFxNswjtoiYf6MrWj02uK s7kgyvhtsRVG6/AheVyq4oDbWvn68aiV3qqm2AeDazAICqnSQTIIG5dZHLRjeECUzmbA qWOGOoKw5qSn207tf0wbfMQiYPJkqUgl2nL+fvaOSG+5i5RABUY92z7qYbhoXZ7pJXVL EHXI2Z7QgZtLGupMPGx+dOX1OJMtKZhX1pDqfjlcQYsTA7jzam3HxYfqAygW7DFXdI2r zc2bBqM8BXxrYNpI4k+RtE5mb1nsl5gmxH2F2RyruFJlLdTeqq2acrR0pwABlk/kfAKh Tbhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692138739; x=1692743539; 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=clD27qRrlZWSnkEP+mWZLIV4ZuO805zRtXZ8s1yCw9A=; b=SKE+WjEf4Uo6hX6vMO+IU5ggOZmafRXH05XaYe8E35urpn9ceCMHaInuxcKfmgESaC TaxCJSWAFqRRGK/o6b7epYJ+npnXBUFzjofiXpi7C65fAJpKrmQzgEwbgbzxHNmjEPh7 Bmklgsknv+JJXQ0T7cbTXIRtjVs8AGWuu7wTX2YFYdDWsRdJJEAPQi4Pj2cyuXZfyCaW yc+RrtrV/TA23JeziqOZJEJCZTFdexOvT7yYk15lmZBVKNkFagRlnEzcCklAl7xammwD UdBHfhAGpH/WaRNqKZxP0uDo5yda7AZugaUTEBn1sSNpw3OVrYwuTU0SrP/EWccgfZcy fSOQ== X-Gm-Message-State: AOJu0YzB5ADE5YMVKJYBuYKH+7vscOOs+T9cr/W63KSZEuxVZv6z26NT ZgO0i0sWU2E7U4G7TM2IEWDimrqkpUJCRTat6K4OAQ== X-Google-Smtp-Source: AGHT+IERbkZ9QTV6CGaib/EXST6dWE91mvlzlFXtd3YT81j0REMWIZkRIsmCG7Ilhnwx+nacGVcNXTypUzsf+mBjjcI= X-Received: by 2002:a5d:664b:0:b0:317:597b:9f92 with SMTP id f11-20020a5d664b000000b00317597b9f92mr52249wrw.57.1692138738877; Tue, 15 Aug 2023 15:32:18 -0700 (PDT) MIME-Version: 1.0 References: <20230815032645.1393700-1-willy@infradead.org> <20230815032645.1393700-9-willy@infradead.org> In-Reply-To: From: Yosry Ahmed Date: Tue, 15 Aug 2023 15:31:42 -0700 Message-ID: Subject: Re: [PATCH 8/9] mm: Rearrange page flags To: Matthew Wilcox Cc: Peter Xu , Andrew Morton , Jens Axboe , io-uring@vger.kernel.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Stat-Signature: i3up381e1eaukrry71k1whgii6uf5yuj X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 9DCF84000B X-HE-Tag: 1692138740-829596 X-HE-Meta: U2FsdGVkX1+oo4hhg6gVOzP4aB/z7d2UB99l4mD5I8pXQek6bSS/ds+7Bh3/HFPHArStGbx2aRZoHgjx7YrrK9IAg4HDl2yT7oTB0ZX39dgs1wFzkvwmEfPbUbQTP82CKUvBH2ECneFA3I6DC2RBH4k7heGMJYs7UljmDTEmpTMyK2yX//oyOWczzWyCy+qpPW9mMtNtacKiYi7eD6ALrSk+xdjtX3fRLYjR3DcbSkckD7z1uXLhPU5vE8QLMluQ1Z0mipBt7d0JtwRpKtHKhvtdhbapC6q2lt/kuk+cSiegNoDaMaHB6PCWr7LkpwVaiRtV4wOKoz1NbXsqcW0IYGXF9S4oyGoMQOmx9BM9AzXOUS+rZAztsAPc53Rf6MmZ9daiQJn0JYlx9TtuokFJLbZF8o4OJ8MRbDNziytqwljwSg8QebiBPigzFqIvOoL3bR7b4Szd/vSFarO2Y30T7+52fCMSeV/xtPc39ZgqCIltFVpG70OGmSCTBpdfTC72ejl2s/gfrtwBE6mmYXCeSC8Q0JX8RIgGqorEOgmt30XRkXkOPfvLBjDQJDI6TWZdgNt8Llkp82mexEPjEMC4GPsaZmoUQDBLlICWYukrBhtBXjPgMWuNyHOzjzjk0QlfCXEQVo1H2jUk57kbHajAwhc0OPGICe6WfDOcpf64tFMtL4djFU6jxpRkxaG1uFqGFAF4L0hS6cRK2HT4ikfOBJwSvB6BihAtOJOzORyxs50jEo66U97VfsEoBoaMwliOCRqLs2xq0fjGeOXirifiU/eD18uYuCHr0LEipBgs9zNo1/C6+2+MAongNYugCGFAXGVCa0xTakRxbbwGZDIj5JuzuaBXOGwITTNiQ1kfxMSuxZYNfTuFkU98g2c7gwT743spf/Vy9XpeLdkSuCD8EAiZLkOKmjpec3YsuP1lfUDYP16tCu9JfCQIPYmfbzAE3UdC42Ht/K6q9AhOZ9H LABuMIcA ZzYApEQdOCRp49ACXjB3qhLOgKCoJFfr9yVzeTuKqEtBYjf2+qMooKyjYJS5XZaF/jNHbRANBjrQiSrlq8zWT5miYTTHLjDUD+Sxz0+SC+jT3DmyZqRpQw1kB5ilQ+UttgH1KgU5B1fWFjEGa1R4PByjOv89LeAIhESPi6qDhcPwWkk2Jh+yYodVjEX6VYyPNpX1A+6ma0ATfTw/IqDkkOsTKf7enIF1P1xS/fC+QsZrnWiofrbew0PCajTp168Zi44aFIyBtrWnrQ/cFbhRG5LS2MA== 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 Tue, Aug 15, 2023 at 1:07=E2=80=AFPM Matthew Wilcox wrote: > > On Tue, Aug 15, 2023 at 03:24:16PM -0400, Peter Xu wrote: > > On Tue, Aug 15, 2023 at 04:26:44AM +0100, Matthew Wilcox (Oracle) wrote= : > > > +++ b/include/linux/page-flags.h > > > @@ -99,13 +99,15 @@ > > > */ > > > enum pageflags { > > > PG_locked, /* Page is locked. Don't touch. */ > > > + PG_writeback, /* Page is under writeback */ > > > PG_referenced, > > > PG_uptodate, > > > PG_dirty, > > > PG_lru, > > > + PG_head, /* Must be in bit 6 */ > > > > Could there be some explanation on "must be in bit 6" here? > > Not on this line, no. You get 40-50 characters to say something useful. > Happy to elaborate further in some other comment or in the commit log, > but not on this line. > > The idea behind all of this is that _folio_order moves into the bottom > byte of _flags_1. Because the order can never be greater than 63 (and > in practice I think the largest we're going to see is about 30 -- a 16GB > hugetlb page on some architectures), we know that PG_head and PG_waiters > will be clear, so we can write (folio->_flags_1 & 0xff) and the compiler > will just load a byte; it won't actually load the word and mask it. > > We can't move PG_head any lower, or we'll risk having a tail page with > PG_head set (which can happen with the vmemmmap optimisation, but eugh). > And we don't want to move it any higher because then we'll have a flag > that cannot be reused in a tail page. Bit 6 is the perfect spot for it. Is there some compile time assertion that the order cannot overflow into bi= t 6?