From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753123AbcHPKMG (ORCPT ); Tue, 16 Aug 2016 06:12:06 -0400 Received: from mail-wm0-f66.google.com ([74.125.82.66]:35137 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750928AbcHPKMF (ORCPT ); Tue, 16 Aug 2016 06:12:05 -0400 Date: Tue, 16 Aug 2016 12:12:02 +0200 From: Michal Hocko To: js1304@gmail.com Cc: Andrew Morton , Vlastimil Babka , Minchan Kim , Sergey Senozhatsky , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Joonsoo Kim Subject: Re: [PATCH v2 0/6] Reduce memory waste by page extension user Message-ID: <20160816101202.GD17417@dhcp22.suse.cz> References: <1471315879-32294-1-git-send-email-iamjoonsoo.kim@lge.com> <20160816095300.GC17417@dhcp22.suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160816095300.GC17417@dhcp22.suse.cz> User-Agent: Mutt/1.6.0 (2016-04-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue 16-08-16 11:53:00, Michal Hocko wrote: > On Tue 16-08-16 11:51:13, Joonsoo Kim wrote: > > From: Joonsoo Kim > > > > v2: > > Fix rebase mistake (per Vlastimil) > > Rename some variable/function to prevent confusion (per Vlastimil) > > Fix header dependency (per Sergey) > > > > This patchset tries to reduce memory waste by page extension user. > > > > First case is architecture supported debug_pagealloc. It doesn't > > requires additional memory if guard page isn't used. 8 bytes per > > page will be saved in this case. > > > > Second case is related to page owner feature. Until now, if page_ext > > users want to use it's own fields on page_ext, fields should be > > defined in struct page_ext by hard-coding. It has a following problem. > > > > struct page_ext { > > #ifdef CONFIG_A > > int a; > > #endif > > #ifdef CONFIG_B > > int b; > > #endif > > }; > > > > Assume that kernel is built with both CONFIG_A and CONFIG_B. > > Even if we enable feature A and doesn't enable feature B at runtime, > > each entry of struct page_ext takes two int rather than one int. > > It's undesirable waste so this patch tries to reduce it. By this patchset, > > we can save 20 bytes per page dedicated for page owner feature > > in some configurations. > > FWIW I like this. I have only glanced over those patches so I do not > feel comfortable to give my a-b but the approach is sensible and the > memory savings are really attractive. Page owner is a really great > debugging feauture so enabling it makes a lot of sense on production > servers where the memory wasting is a no-go. OK, I have missed that page_ext is only allocated if there is at least one feature which requires it enabled. So normally there shouldn't be too much of wasted memory. Anyway allocating per feature makes a lot of sense regardless. -- Michal Hocko SUSE Labs