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 B0EC9C54FB9 for ; Tue, 21 Nov 2023 04:49:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4167B6B037E; Mon, 20 Nov 2023 23:49:48 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 3C74C6B0387; Mon, 20 Nov 2023 23:49:48 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 267296B0391; Mon, 20 Nov 2023 23:49:48 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 1532B6B037E for ; Mon, 20 Nov 2023 23:49:48 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id DC1FD14040C for ; Tue, 21 Nov 2023 04:49:47 +0000 (UTC) X-FDA: 81480733614.03.221DF1E Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) by imf02.hostedemail.com (Postfix) with ESMTP id 274BF80017 for ; Tue, 21 Nov 2023 04:49:44 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=LZ0P4NGe; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf02.hostedemail.com: domain of pcc@google.com designates 209.85.214.175 as permitted sender) smtp.mailfrom=pcc@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1700542185; a=rsa-sha256; cv=none; b=WWYQLCzwlOqxqCUdl5rDbAEmmIsuxa2DjqT2yLu1DWGdAEhHDZNIUjGTMPpC8v5+MpF/Zi mg5cm5orPIIDO3zyttE/ds7QplkNHFJ96Clt1ftIdihWhaB9L9LVmwgdcmemaow1e5Bdba wDDIgOOypWWCCN9xIc2lmmO42075imY= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=LZ0P4NGe; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf02.hostedemail.com: domain of pcc@google.com designates 209.85.214.175 as permitted sender) smtp.mailfrom=pcc@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1700542185; 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=Ci0fDn2VKn2ROb4P5+ApgEIrDRCxD8DQOtt7YsYQPr8=; b=XI7wwbb84dmui/hzIZk7dX9uE6GnucuNcObUpwhDO6SbU/9bWMph1KCgqdYGy8KZPV1QEF Grd98aeI5dW9eZzCJWhrAhDHu2eKJ8nOC7YuF9wASXYm2doaQYXQ0bcbWMZKt86HlCKUpU tFUL0zuwQAsO8nx3Veui9Hdu6VwSUXc= Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-1cf5ceadfd8so130815ad.0 for ; Mon, 20 Nov 2023 20:49:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1700542184; x=1701146984; 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=Ci0fDn2VKn2ROb4P5+ApgEIrDRCxD8DQOtt7YsYQPr8=; b=LZ0P4NGemwlbZTkrUkrkjPYVVNyD+vB8K/sWsEwCfDHP393tITfKeS+O9vUMqDR8xv H9i6PyU/2bW2Fime6JHBsFXFJlUvm8Pz+mbd4GlDKlE/j5gV/L0GjUOGnyEVqQHGjPZa d0BpH1n7gZ0QahefdXqlSkPPSJfUIbfvXASGD4N+gDAJ/QqkSfHjfP2Ey+IW//LVCgky kCwqk+QeB9liJv5sCIAM4W4OysLR/t1NnOwfWPIIHv0OWNqm7MpwWjEs5+cNXOc5Np3J 9ccARO6S0H2kwAhVyRtQSkaCCLeQtWio7ohcjxrSN+O7JQHbL8R1D+est6qzjP24qRnF vSvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700542184; x=1701146984; 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=Ci0fDn2VKn2ROb4P5+ApgEIrDRCxD8DQOtt7YsYQPr8=; b=Trwnztn4Bno8VwJuufxdmaekvLYC0EDKfqEiHEKSie6/Q72jgQT9pxf2nynKX1cgKc Ak1Tp1B9Ey3YgJU6hhZTG6TjBN1u+zNnF8DzcP6EpcQGEyis/yHJcDL6Hq0zHzlKUMzU UviBtf5NgYoWiunh41rQM5hKai5nnFdZsQm1BiJgOzmg3tXXRRKWuTFZ4P1nWi+Ksv2d IzaCVcRN+o7RIdqoVKVVQMB3pmp5nZwYWyX+t9r5nvyHahNyr8VSrEIpe7I23jtNg6hP mfhbVAWUUyfB1VePv+4J6pmBfwa+opFLuIF4I21V09mRG4QXcWVZmxU6Ah1jrvsYTwjX Kcsw== X-Gm-Message-State: AOJu0YyzjEGe0rgQIuV/g0alq0bXJ2LdyiOlKNN3J09QHInLkOeo6E9C 9mDPaQDcTvFMSTHH8jYdSXMdwORjGX8RgurfydnKJQ== X-Google-Smtp-Source: AGHT+IEjrSf5kIzKqR8y96cakBbXvSTNzic/DeMBLkOBk4msBIIG12CS40E/lkAesfcKoKMOnN0ye5jmEfxbmJlxJ94= X-Received: by 2002:a17:902:c454:b0:1cf:6d46:9f2b with SMTP id m20-20020a170902c45400b001cf6d469f2bmr136702plm.23.1700542183669; Mon, 20 Nov 2023 20:49:43 -0800 (PST) MIME-Version: 1.0 References: <20230823131350.114942-1-alexandru.elisei@arm.com> <20230823131350.114942-21-alexandru.elisei@arm.com> In-Reply-To: <20230823131350.114942-21-alexandru.elisei@arm.com> From: Peter Collingbourne Date: Mon, 20 Nov 2023 20:49:32 -0800 Message-ID: Subject: Re: [PATCH RFC 20/37] mm: compaction: Reserve metadata storage in compaction_alloc() To: Alexandru Elisei Cc: catalin.marinas@arm.com, will@kernel.org, oliver.upton@linux.dev, maz@kernel.org, james.morse@arm.com, suzuki.poulose@arm.com, yuzenghui@huawei.com, arnd@arndb.de, akpm@linux-foundation.org, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de, bristot@redhat.com, vschneid@redhat.com, mhiramat@kernel.org, rppt@kernel.org, hughd@google.com, steven.price@arm.com, anshuman.khandual@arm.com, vincenzo.frascino@arm.com, david@redhat.com, eugenis@google.com, kcc@google.com, hyesoo.yu@samsung.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, linux-fsdevel@vger.kernel.org, linux-arch@vger.kernel.org, linux-mm@kvack.org, linux-trace-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 274BF80017 X-Stat-Signature: rwibn9fcimb5qgumk4gdte6fyoc1onwh X-HE-Tag: 1700542184-676738 X-HE-Meta: U2FsdGVkX18WMkIFjDtqtv7QpBHtVQDyqcoVrkxRc8Gug8x/ATymPBRbOGd6YAYmMTgPmQkdhW9H4TdNkx8M1IN8zGAfxITXEVyDdRbqfyaLkDd8NYaYQFem7GTQV7F9wRJY+tXREQbuZrKQyMuaznD1TIwOrDIm5wprWfEd+5SsmQRhc0HVA9oQ6ywcEbghRARwWWp5L9c6Hr8alfI+l5kegSU8F4LCJaX1f43CZwLBILneoEp5P/5boRAapy4z7WBRL6Dfeqa/0Fs1a6an7uqIqfag/SSYw1+M3zfqZevgZDK1xv/JDZ0Qr5bbiw5vBGxglQE8/Un4mIUTTF5nnuSrI13i7Z9Shfzi0NSBsSqeXUlbQW7ApPwivWaaFgq1jdRqJL3HaUiK6cgyGdXTIuL+BpmJv++Gj/vG6yuvgyALxiddibH9kh5oZRI/0RdrjQh3Cz+Ryxbe3P1ee/DPZmh5gJyVo5SI8mpbem7h5l5vpRgrpKCi2K5V5RQwNa0FpW1sVPeuWVv/4zI6vc+dbVpK81FR9uQYLx0UHpbObexXQfBCwf0CF1YeDt1U1yIfQgXJ/41Jmd0bsCyYj+AfN+x25kcGSj1xdo29pRkXG23Lj7E/t1ScTs0MymUmrSMTMQrXPm6IZfRPRiF5h+3eKCrkTNih4fvlJfZF72r79ZKVx5Jvl/tQa0M2hpJ4IxauhmsPTmi2INpeI5+PLqMhhsGLeNjsn18tUce4+g9n1Argrslpw3q+bOs+n+Qiz6feVHqs2priT3k6qHfBSA6UHvHxY9g7/Ew20AZEbiAaWvSyKBLUecY/8X4lR6ceVCmwCVSQq0MW4kxlw5ZEQniW0OCkAZqwNU5lPEo0zecZygju0DXKgyyhcZhKxGWCqJHx5dOGhQzkpD6c1CiMK/999iCW5xmj8IafWOL7ZwOA7VPE7BIDzMVGwBcXKpfnnf4zf9IjkPYZfB/9ohjvVZI rMJ4EfMc BFPQy0fiyGFGsoNKfd7ZO36L7MHVfB7jjq0KvPumEksQxUjWoogqDD9fK7XlP05D0wWCT5jRKagfDeonZUcwaF8z9NHYLkZB+Y6nK9aKH49sa6dtVpt5nsO464RJDnH/0NFk5VDz6Si9rF8uao2YHtmy2lDXFnURhiI2XPUXHcRVZLSU9r2ArhzK9NVRYxQ/RC0jS5RuJzQ7A62O8Q+Tuy0UHOixUQmOmfWqijl2G+/vYIE8TV6rHDPFGUNTQV99hhO5ToJraqIpXjAsiIHSUB67dQPo6bYYMF3+0R9Vp65Dsx3S3gMY5TRk1kmbcIyQdPuynb8hFUCtoO7xud+3jNFGj+w== 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: List-Subscribe: List-Unsubscribe: Hi Alexandru, On Wed, Aug 23, 2023 at 6:16=E2=80=AFAM Alexandru Elisei wrote: > > If the source page being migrated has metadata associated with it, make > sure to reserve the metadata storage when choosing a suitable destination > page from the free list. > > Signed-off-by: Alexandru Elisei > --- > mm/compaction.c | 9 +++++++++ > mm/internal.h | 1 + > 2 files changed, 10 insertions(+) > > diff --git a/mm/compaction.c b/mm/compaction.c > index cc0139fa0cb0..af2ee3085623 100644 > --- a/mm/compaction.c > +++ b/mm/compaction.c > @@ -570,6 +570,7 @@ static unsigned long isolate_freepages_block(struct c= ompact_control *cc, > bool locked =3D false; > unsigned long blockpfn =3D *start_pfn; > unsigned int order; > + int ret; > > /* Strict mode is for isolation, speed is secondary */ > if (strict) > @@ -626,6 +627,11 @@ static unsigned long isolate_freepages_block(struct = compact_control *cc, > > /* Found a free page, will break it into order-0 pages */ > order =3D buddy_order(page); > + if (metadata_storage_enabled() && cc->reserve_metadata) { > + ret =3D reserve_metadata_storage(page, order, cc-= >gfp_mask); At this point the zone lock is held and preemption is disabled, which makes it invalid to call reserve_metadata_storage. Peter > + if (ret) > + goto isolate_fail; > + } > isolated =3D __isolate_free_page(page, order); > if (!isolated) > break; > @@ -1757,6 +1763,9 @@ static struct folio *compaction_alloc(struct folio = *src, unsigned long data) > struct compact_control *cc =3D (struct compact_control *)data; > struct folio *dst; > > + if (metadata_storage_enabled()) > + cc->reserve_metadata =3D folio_has_metadata(src); > + > if (list_empty(&cc->freepages)) { > isolate_freepages(cc); > > diff --git a/mm/internal.h b/mm/internal.h > index d28ac0085f61..046cc264bfbe 100644 > --- a/mm/internal.h > +++ b/mm/internal.h > @@ -492,6 +492,7 @@ struct compact_control { > */ > bool alloc_contig; /* alloc_contig_range allocation = */ > bool source_has_metadata; /* source pages have associated m= etadata */ > + bool reserve_metadata; > }; > > /* > -- > 2.41.0 >