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 87140C54798 for ; Sun, 3 Mar 2024 01:47:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EA2346B006E; Sat, 2 Mar 2024 20:47:02 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E52DF6B0074; Sat, 2 Mar 2024 20:47:02 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D1A006B0082; Sat, 2 Mar 2024 20:47:02 -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 BD4126B006E for ; Sat, 2 Mar 2024 20:47:02 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id D14B9407DE for ; Sun, 3 Mar 2024 01:47:01 +0000 (UTC) X-FDA: 81854039442.11.9980C0B Received: from mail-ed1-f50.google.com (mail-ed1-f50.google.com [209.85.208.50]) by imf25.hostedemail.com (Postfix) with ESMTP id 2E1B7A000C for ; Sun, 3 Mar 2024 01:46:59 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=k3JFBIsI; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf25.hostedemail.com: domain of yuzhao@google.com designates 209.85.208.50 as permitted sender) smtp.mailfrom=yuzhao@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1709430420; 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=qb15WgG5kxlUvxGT1DPOL/e2Gjrlo4sNvdv//ND34U8=; b=2h+A5AU3e59CDHv/qXjtxkNlXK/D9o3IF8SHz1yxJ4FgAh9r0Wx/ijgHHDSrESJWI/1gb9 WZP2bY0dxAq1Rlq4V9amywQn77kYEZ9zRtBl+QRQaPvmigBExkfAHSDg/hVGq9yoFmHgEq f8Pc0Nbr5aFMdmEmufIM9nA/A7JICQE= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=k3JFBIsI; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf25.hostedemail.com: domain of yuzhao@google.com designates 209.85.208.50 as permitted sender) smtp.mailfrom=yuzhao@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1709430420; a=rsa-sha256; cv=none; b=gbwIbvdkpNDKQjuQUYy5kazlNy++LGMIy8AdMFRTjBn3yPK0SEDDGD4lSRZcCLWH2ezzdC qHWL3erLHGQzg+RhWk3NaEinjcSjHZpS4IUeLALlZ+dkSkasvjwTTcUI43GCU5t5HNZ/wd d2fBvEkQEik0rvquP2yoDIzdMmqqPNk= Received: by mail-ed1-f50.google.com with SMTP id 4fb4d7f45d1cf-5654ef0c61fso18769a12.0 for ; Sat, 02 Mar 2024 17:46:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709430419; x=1710035219; darn=kvack.org; 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=qb15WgG5kxlUvxGT1DPOL/e2Gjrlo4sNvdv//ND34U8=; b=k3JFBIsIr+yleme7ab+i4sNTmKBsWEDGhiZsvmWcYvF4JGPeCCjN5C38fMF46pGA4O dugmQyfTgkRcO5fQ4CMHQsrjOjyM3QTtRKRFGZTQqCF67WW1q9szuTGRaOs/F7QN1Su4 I+8+y7LB+T5Qvp2LIO6THKNdBtl5phDBwaARbU8bt0wfqjRURk6KumBR1NiWI5X6bd67 KPxzhTszp5YBfzv2kMxnArYvWTnF704HYQznfbTvSIxnzJF6elvbtOuM8y8vSMhCEBIk vH1W81RDNCS9p5cXo/XqIZn4Xr+hHOTaNX3ANvs3o/Ie0EB+nzZn/7LROUdDskKWfJMS ehSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709430419; x=1710035219; 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=qb15WgG5kxlUvxGT1DPOL/e2Gjrlo4sNvdv//ND34U8=; b=MQshQsqSOInzgzdFLILrHSCuf+SPt6+YG6w6Jx0Yt24QD1psN5U3DGSOHTSIu9ye/4 7A67aQtbkb95XPr9hkM3PQbsb120pUlfvn1cUmI1gKmsKj0sDQ/vTKxtq8HkuCczb4PS HahhnKmV5eWPR44fQAXmVjCQYo4vhWJFc63YColcIvThwEipBrqUMnboSwMxpsZsmN/W JU8YxMNfI/uWEv+M+2XMI+/G6UGHUbCrSpUnsGhyU+ihQIH5JmbGDBSsis9Nbcuu/JGF lO8uehwH/uUT4OvIzaGtdrdug0LFjf4+SGBjlSkzCRyh2RDgT+EhHJHi4iNIQ9qez2up Q06A== X-Forwarded-Encrypted: i=1; AJvYcCUgnF7PcyqkgiKwQfy6Qu2PYhqi1GK4BuGdRldkQiU6q6Ev4zzj2hNy+A25yBfsDma5Pn18I0dNwmnhhclCcIAn68Q= X-Gm-Message-State: AOJu0YzW8c4OSqqlOW0DqrhxsMIRcBk+v6E/Njli7jo1iHohXlGFXpf/ /0NGB6ewWoh7Pn5BdZphXI8IHEv4EaWmfScqP2SOGdGTzbY1p5hpbXlOLEdiTxLDrMvgbBjAPO8 BUBjtz9eZBq7XwoJV91xpN3WJGmCPV4NTr892 X-Google-Smtp-Source: AGHT+IHip8IyxJkCi3PzMbLyJIR/N4edjfwtkrKp9le68EnnJyKg78+VLqJ7ivrJlkrTW3zIE4Um71yUdBsGZTcpzsY= X-Received: by 2002:aa7:c684:0:b0:567:6e8:b7a7 with SMTP id n4-20020aa7c684000000b0056706e8b7a7mr61507edq.4.1709430418463; Sat, 02 Mar 2024 17:46:58 -0800 (PST) MIME-Version: 1.0 References: <20240229183436.4110845-1-yuzhao@google.com> <20240229183436.4110845-4-yuzhao@google.com> In-Reply-To: From: Yu Zhao Date: Sat, 2 Mar 2024 20:46:22 -0500 Message-ID: Subject: Re: [Chapter Three] THP HVO: bring the hugeTLB feature to THP To: Yang Shi Cc: lsf-pc@lists.linux-foundation.org, linux-mm@kvack.org, Jonathan Corbet Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 2E1B7A000C X-Stat-Signature: 55wwot7qdjrzodj1oji9e4ysnzafnyd1 X-Rspam-User: X-HE-Tag: 1709430419-224138 X-HE-Meta: U2FsdGVkX197FkWwgdVAFUZvPyipu7LHOgezbgBvRujo3/WehaKCUUvKBx48eCY04RsO8YnfMMbII1w52CtLHVT8KwuBoYlTEdswiXX7vWSEuQu22iMkSIHeR6qAQarA6HvKmddj5UX5gL45/0I40LJszhKkN8AekP2QaGGWoikfXzTDNHQbBctXvjxiBkrkpIgGjO0NXMkNlwUBl2OcKizGONQL8fXOHzP5KTxUBAS5tMxMuL3ZmYmlF8RP2i+tz2N7a+p504ycGiEUlzWcBM0XTQdO0NK2/+ZEL56F6RsGfeD7RTSPQf5Q+kyxE5pUPVPYoTx+RlfiopFBGU/xjNEfyLCozzObD2XU687ioFxyEpvRiG+3J5fTIYlg5bBT9oqsbvAX8S/UYqRR25ebUqtB1t5Z3rrd6BmpPB+EKOV16qVf93GUZ4Ymx4yiBvenKQ64sXu1I70eIDm63q6bnp7eDfqdw+8hg3wWQJFoWNFHVbm/rrbOCXPQxA/4oCChyrvcmG8odnOKM7nLI0+8ZB/V3iCxxx15mULkfT8le50AXgSWKZ+Xbi7MUXEJ7BVD+8+O7pIDpZMx4VIE5GqyfCfffOsSPgy/uk+fMImWekjYi8mbLoi3K3y7CqttO7xrNPxlEMyf+tQGgUTJn3zrPVHItsow0aiwnNXwjrZuBE5TcYM73JI/QkqTdjSIDjYWU/Pfpoccr1FplFbTlu5dge9xik0fXE+qZ38gUtuuSCebuaGk8u6ShouvS4M9P7g9zwEtx6sYAh5OyOVPW2swCfVgAU4URMapvJa/7TuBSOdIyfItagXPdlBhrhmCbZ6fGlLPMesiYOZpMGS01SYwJZL+GCcsveMTnIhxaLns0uwpSNCASaX7pe96+Jp+8xIc/jgc5EAThLpWGycIVli/jR77qOe+TzFL40wSlqSctKQxBzhVRJLGMGYJzp0U6rxuYxEdkbLhkMmzggMAAaz j3w== X-Bogosity: Ham, tests=bogofilter, spamicity=0.049793, 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 Thu, Feb 29, 2024 at 5:54=E2=80=AFPM Yang Shi wrot= e: > > On Thu, Feb 29, 2024 at 10:34=E2=80=AFAM Yu Zhao wrot= e: > > > > HVO can be one of the perks for heavy THP users like it is for hugeTLB > > users. For example, if such a user uses 60% of physical memory for 2MB > > THPs, THP HVO can reduce the struct page overhead by half (60% * 7/8 > > ~=3D 50%). > > > > ZONE_NOMERGE considerably simplifies the implementation of HVO for > > THPs, since THPs from it cannot be split or merged and thus do not > > require any correctness-related operations on tail pages beyond the > > second one. > > > > If a THP is mapped by PTEs, two optimization-related operations on its > > tail pages, i.e., _mapcount and PG_anon_exclusive, can be binned to > > track a group of pages, e.g., eight pages per group for 2MB THPs. The > > estimation, as the copying cost incurred during shattering, is also by > > design, since mapping by PTEs is another discouraged behavior. > > I'm confused by this. Can you please elaborate a little bit about > binning mapcount and PG_anon_exclusive? > > For mapcount, IIUC, for example, when inc'ing a subpage's mapcount, > you actually inc the (i % 64) page's mapcount (assuming THP size is 2M > and base page size is 4K, so 8 strides and 64 pages in each stride), > right? Correct. > But how you can tell each page of the 8 pages has mapcount 1 or > one page is mapped 8 times? We can't :) > Or this actually doesn't matter, we don't > even care to distinguish the two cases? Exactly. > For PG_anon_exclusive, if one page has it set, it means other 7 pages > in other strides have it set too? Correct. We leverage the fact that they (_mapcount and PG_anon_exclusive) are optimizations, overestimating _mapcount and underestimating PG_anon_exclusive (both are for worst) can only affect the performance for PTE-mapped THPs (as a punishment for splitting).