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 468CDC3ABBC for ; Fri, 9 May 2025 08:35:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 788AD8E0002; Fri, 9 May 2025 04:35:38 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 737958E0001; Fri, 9 May 2025 04:35:38 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5D97D8E0002; Fri, 9 May 2025 04:35:38 -0400 (EDT) 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 3966B8E0001 for ; Fri, 9 May 2025 04:35:38 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 7E6F4161364 for ; Fri, 9 May 2025 08:35:39 +0000 (UTC) X-FDA: 83422710798.30.04220FD Received: from mail-pf1-f173.google.com (mail-pf1-f173.google.com [209.85.210.173]) by imf13.hostedemail.com (Postfix) with ESMTP id EEA3A20003 for ; Fri, 9 May 2025 08:35:36 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=U4hRZ+Us; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf13.hostedemail.com: domain of hezhongkun.hzk@bytedance.com designates 209.85.210.173 as permitted sender) smtp.mailfrom=hezhongkun.hzk@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746779737; a=rsa-sha256; cv=none; b=0oOMo3n2eDuBkCjf84z/TQHEuvw61IBZ3t05wwUoNiF+u0LHwTSw80TlA0whCWaJ34r9VV Wod3qEl6TJAkiBtV6sn+hSWOAhNcsIoL3WPPKyT7w+9mbLeNFQ9NHUgqydUfky66zV/8Kc VAj8uZDA6qYhnc9EvK632/HrDP/6XRQ= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=U4hRZ+Us; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf13.hostedemail.com: domain of hezhongkun.hzk@bytedance.com designates 209.85.210.173 as permitted sender) smtp.mailfrom=hezhongkun.hzk@bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746779737; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=JFRSAYyLY03v/Pm2mGj9x9sQ5Ba8Q6PzpP4ygjWrdTY=; b=VcgHWV/SQMlSUKvjtUd2fcoclGijEP9QrItUcOD01rJA3pAG9WAqlksI1XiZScNHOtA6Wl YXiIPQj+aAE+N3zx67gfbaG16AljCyifzM54qree2dY3nZpIVrohJX7lBrFxdhkmf9d6Lf bf/ku7ANEAJ8ajHUiiVMj7Nh+klAP/4= Received: by mail-pf1-f173.google.com with SMTP id d2e1a72fcca58-7399838db7fso1927994b3a.0 for ; Fri, 09 May 2025 01:35:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1746779735; x=1747384535; darn=kvack.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=JFRSAYyLY03v/Pm2mGj9x9sQ5Ba8Q6PzpP4ygjWrdTY=; b=U4hRZ+UsWR+9nxxVyu91iM0Cwsz1C0S0iKCl52SFxQhOuChr7Rrodq4y/RIJXdyLZf yQ0YegoeHI+gp1werQNaXp+Be2K2/p1pbcoBCkQ4X7NoN6osh6Qn80OgOuLXV4NuJbzQ IBzoqYnIDllUTNBsk62TUrvnWrGodIn+Ngx8erWUgcjvXG5i63mSK09ZJ6dCvx5tSLtS 2K8RfxQIkYNR2zmlwxnLCRgB/RX14o09W24NGdaF+OfLQki0U7HuPNzmksGTQu649b68 PI0BdyvrgCmod6gQ7h8jJjMBWoiQ3nsxFYX/mH8pbSPgknUheiA8gH39k5LhJqKSZCDK mvXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746779735; x=1747384535; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=JFRSAYyLY03v/Pm2mGj9x9sQ5Ba8Q6PzpP4ygjWrdTY=; b=I2xgnSKt/KSlxU1xo8XYbSJz/6xYkK5jqFiCBLjl8Lq0H9mCPQttGFcIuD4uAo0CYi FlXMi4whsTqk0aIJJCK6Sx0uMl9gVrog5tv47jzFjn3jBRpPOox1+PvC4yY7tl2tGS52 4U2LNZOsv5p6eZL5FMuv45W80OIHFeTph8crl/6QvMFLJlG8WMcReqeYJDpf+QVI6omg sD2J0r+4IRf7gSN/DJ1vD6Q7XcddkOzz327v2f4tK3jMfoOy0HkhMAnZzAuNEvqH0ekK jVk/7C6zlz6eIFWDDzPDt+CG1f/qrfKmXPTlp0oiX+atnCYimF0bkn7PCB1AcOPcCeeN k74w== X-Gm-Message-State: AOJu0Yxc+7bcWEUXYnX2xOqOHC7u9YWDFJroVoz/DHYt9wbJmK3/bLjC PzYDJbkoR6C97gOPxEfQwCV5FwlRlhdhRj+R4y1Fnjx5ERaQNLtsqeAmXozKvlI= X-Gm-Gg: ASbGncveuRSkADCBMLy07Ge/JMmQju0N345tTH7xXEiiJ+24cpI7LcU09TfLF9esYj6 DjOWOFnLkBsX8PZk1/up6Y8BOmtbrQLZeXCFH7am3QrQhHUwFmM4RPLXb5+6io7DgixgwuZKSQm o2z35vD01YiCgakAQXfxKeiTnqfX0Zy25KblsNqPymnF/qMBpPlp3EKzFDenZCDPF6yYjV0ykvH mR/AguxO4Fsn5REILFHNTsW807+Dy2cV83FL8u8WuFQ4gZe+C2Z2o1+iO4/VTRpMZEjYFEQAUf/ 3azwzlhEXkHYc7vrZe+jqtotIX8TWtxsGyAzapsqAOJocTfDANup3aarw8rnLIA/sQ== X-Google-Smtp-Source: AGHT+IFqCX8jHlBu3tZ4yXs4zjeguMBtn7lr/n+czWq9cOGJ8eV6AzfIjFuHctHzE6ZHY8P0T4qWbA== X-Received: by 2002:a62:ea0e:0:b0:736:4c3d:2cba with SMTP id d2e1a72fcca58-740a94e6378mr7899947b3a.9.1746779735532; Fri, 09 May 2025 01:35:35 -0700 (PDT) Received: from n37-069-081.byted.org ([115.190.40.14]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74237727a78sm1304933b3a.53.2025.05.09.01.35.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 May 2025 01:35:34 -0700 (PDT) From: Zhongkun He To: akpm@linux-foundation.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zhongkun He Subject: [PATCH] mm: cma: Set early_pfn and bitmap as a union in cma_memrange Date: Fri, 9 May 2025 16:35:28 +0800 Message-Id: <20250509083528.1360952-1-hezhongkun.hzk@bytedance.com> X-Mailer: git-send-email 2.39.5 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Queue-Id: EEA3A20003 X-Rspamd-Server: rspam04 X-Stat-Signature: yjsfk3hn88ra3i84nq9bf1qni9dfgo8z X-HE-Tag: 1746779736-682557 X-HE-Meta: U2FsdGVkX193qaupXW26MahdNt8nLX2GeKf2tH/0nMM1D3/0JcxzwaCubdqVHR69aqxmGOEU5MPnXX9BBATmEeLA+Pr9mi3MHmcH1ol2/vakUvgI8gf+iEV/kc8pPL6urdDd5/UkSA6RtWUguDulCWs35hsSd0jjRCM8GwfmpU3SJacesijyNNQjCv7yv0FMScshgoRuuGreyJdpusO9uh9xnEpgsXRqJ8XTMCis/xtfDA331Ihu9InGpaM+inhUq9yarV7O2Qs5Q9SxI7j4Q0xUUIq4BCCSz8QWDOmCKmruceXTcmN4SzZkIS/acbv9ccpSZRPCZifXv5W2V+V7XUUoPFWmWg3uo3gq5LB/OSZrY0YO0OPMJebHQd7dwnpB3u5W1Hi8mbbOkG60QjGaainZXKFJhzEKmDZp6AVLYnt+G8RkotsCFHfeBmBSU2tuLKEDlijOgq/83G2I3uEgxtqZ4xz3E/J428zUlJ+MG7aIjvPGG6grQNtHw1wdmrAykRgpwEu75gfUXLQzWBS0Xl6orqZGhqKoYasC9wIYbjh6cpoe0KgCbTRszqV7zn92lr+IiWxXuRRoUHu2kCvycAajSrVSaiKdtpALyNl4hQ+okUQqhqKUX8BYJVKTBG/IkW7BoBnzMs5qlfvPOMyfIh8gW6/BVuEjngNcmFCFCLjwjApP+GTQCMGx0gwoaiZ1IY+nfwyeE0qup/2er4HSyXg+AUxjmBKzmWQizHAezBz2bD6gSShOAULKyfpyrDpadrhMYIcx9zRcXKxANeQsfho8pI8/TXSAqlsK85eq1AIe6hCjYnzQ5QVssKnU+FxLlysHyPTMZ+0GuzBZf3Ynz4LTiZDT8nlG/B/EiECyap8d2L6sVg40nfWmW97yQ+h8KO5DjRkJQaTj+HuSwqRoID7GP6l4jFpoyHMqPt2MN6lTjLSdO20tQZLzWz7kJWvhGYSv/38sThX8d+aAC8P B/B+hSL7 XeayZWk54MTk1fSiWM/EMZTY30RbRmslfNZAjN/0WSfJXT7w88Yuzp1uMKcSe5RT9zpaXM7dAgfY9FJy7XAN4XTRwXM8QZVct0J17HxhAi/qsRWKQa8gBzr1oLZQNqviNnEuvxSEjYkrwfvw0qbP+GjBNvEZCebv4elyexWrf/j0JXlGg9S1s+D3Ugl2QK2ChPhjR7hkteu925XWuYWZcKk5h9QRoKiTuDnpA5u06VLkyVzhCR/9wg6m95J/YbX1DhyVN9lQ3BNPW8aulL6yPiN7fZDH99vmQlksYddlqzknqMZIEYxVjIkhJTk6z3wsv3lfsyEqoh3OKiYavdLgk4Y+3kyVsQ4OBkPWTMHW3u5cCKow= 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: Since early_pfn and bitmap are never used at the same time, they can be defined as a union to reduce the size of the data structure. This change can save 8 * u64 entries per CMA. Signed-off-by: Zhongkun He --- mm/cma.c | 11 ++++++----- mm/cma.h | 6 ++++-- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/mm/cma.c b/mm/cma.c index 15632939f20a..ec4b9a401b7d 100644 --- a/mm/cma.c +++ b/mm/cma.c @@ -143,13 +143,14 @@ bool cma_validate_zones(struct cma *cma) static void __init cma_activate_area(struct cma *cma) { - unsigned long pfn, end_pfn; + unsigned long pfn, end_pfn, early_pfn[CMA_MAX_RANGES]; int allocrange, r; struct cma_memrange *cmr; unsigned long bitmap_count, count; for (allocrange = 0; allocrange < cma->nranges; allocrange++) { cmr = &cma->ranges[allocrange]; + early_pfn[allocrange] = cmr->early_pfn; cmr->bitmap = bitmap_zalloc(cma_bitmap_maxno(cma, cmr), GFP_KERNEL); if (!cmr->bitmap) @@ -161,13 +162,13 @@ static void __init cma_activate_area(struct cma *cma) for (r = 0; r < cma->nranges; r++) { cmr = &cma->ranges[r]; - if (cmr->early_pfn != cmr->base_pfn) { - count = cmr->early_pfn - cmr->base_pfn; + if (early_pfn[r] != cmr->base_pfn) { + count = early_pfn[r] - cmr->base_pfn; bitmap_count = cma_bitmap_pages_to_bits(cma, count); bitmap_set(cmr->bitmap, 0, bitmap_count); } - for (pfn = cmr->early_pfn; pfn < cmr->base_pfn + cmr->count; + for (pfn = early_pfn[r]; pfn < cmr->base_pfn + cmr->count; pfn += pageblock_nr_pages) init_cma_reserved_pageblock(pfn_to_page(pfn)); } @@ -193,7 +194,7 @@ static void __init cma_activate_area(struct cma *cma) for (r = 0; r < allocrange; r++) { cmr = &cma->ranges[r]; end_pfn = cmr->base_pfn + cmr->count; - for (pfn = cmr->early_pfn; pfn < end_pfn; pfn++) + for (pfn = early_pfn[r]; pfn < end_pfn; pfn++) free_reserved_page(pfn_to_page(pfn)); } } diff --git a/mm/cma.h b/mm/cma.h index 41a3ab0ec3de..c70180c36559 100644 --- a/mm/cma.h +++ b/mm/cma.h @@ -25,9 +25,11 @@ struct cma_kobject { */ struct cma_memrange { unsigned long base_pfn; - unsigned long early_pfn; unsigned long count; - unsigned long *bitmap; + union { + unsigned long early_pfn; + unsigned long *bitmap; + }; #ifdef CONFIG_CMA_DEBUGFS struct debugfs_u32_array dfs_bitmap; #endif -- 2.39.5