Messages in this thread | | | Subject | Re: [PATCH 04/11] mm: compaction: export some of the functions | Date | Mon, 12 Dec 2011 15:41:04 +0100 | From | "Michal Nazarewicz" <> |
| |
On Mon, 12 Dec 2011 15:29:07 +0100, Mel Gorman <mel@csn.ul.ie> wrote:
> On Fri, Nov 18, 2011 at 05:43:11PM +0100, Marek Szyprowski wrote: >> From: Michal Nazarewicz <mina86@mina86.com> >> >> This commit exports some of the functions from compaction.c file >> outside of it adding their declaration into internal.h header >> file so that other mm related code can use them. >> >> This forced compaction.c to always be compiled (as opposed to being >> compiled only if CONFIG_COMPACTION is defined) but as to avoid >> introducing code that user did not ask for, part of the compaction.c >> is now wrapped in on #ifdef. >> >> Signed-off-by: Michal Nazarewicz <mina86@mina86.com> >> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> >> --- >> mm/Makefile | 3 +- >> mm/compaction.c | 112 +++++++++++++++++++++++-------------------------------- >> mm/internal.h | 35 +++++++++++++++++ >> 3 files changed, 83 insertions(+), 67 deletions(-) >> >> diff --git a/mm/Makefile b/mm/Makefile >> index 50ec00e..24ed801 100644 >> --- a/mm/Makefile >> +++ b/mm/Makefile >> @@ -13,7 +13,7 @@ obj-y := filemap.o mempool.o oom_kill.o fadvise.o \ >> readahead.o swap.o truncate.o vmscan.o shmem.o \ >> prio_tree.o util.o mmzone.o vmstat.o backing-dev.o \ >> page_isolation.o mm_init.o mmu_context.o percpu.o \ >> - $(mmu-y) >> + $(mmu-y) compaction.o > > That should be > > compaction.o $(mmu-y) > > for consistency. > > Overall, this patch implies that CMA is always compiled in.
Not really. But yes, it produces some bloat when neither CMA nor compaction are compiled. I assume that linker will be able to deal with that (since the functions are not EXPORT_SYMBOL'ed).
Note also that the was majority of compaction.c is #ifdef'd though so only a handful of functions are compiled.
> Why not just make CMA depend on COMPACTION to keep things simplier?
I could imagine that someone would want to have CMA but not compaction, hence I decided to give that choice.
> For example, if you enable CMA and do not enable COMPACTION, you > lose things like the vmstat counters that can aid debugging. In > fact, as parts of compaction.c are using defines like COMPACTBLOCKS, > I'm not even sure compaction.c can compile without CONFIG_COMPACTION > because of the vmstat stuff.
-- Best regards, _ _ .o. | Liege of Serenely Enlightened Majesty of o' \,=./ `o ..o | Computer Science, Michał “mina86” Nazarewicz (o o) ooo +----<email/xmpp: mpn@google.com>--------------ooO--(_)--Ooo-- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |