On Tue 24-02-15 04:54:18, SeongJae Park wrote: [...] > include/linux/cma.h | 4 + > include/linux/gcma.h | 64 +++ > mm/Kconfig | 24 + > mm/Makefile | 1 + > mm/cma.c | 113 ++++- > mm/gcma.c | 1321 > ++++++++++++++++++++++++++++++++++++++++++++++++++ > 6 files changed, 1508 insertions(+), 19 deletions(-) > create mode 100644 include/linux/gcma.h > create mode 100644 mm/gcma.c
Wow this is huge! And I do not see reason for it to be so big. Why cannot you simply define (per-cma area) 2-class users policy? Either via kernel command line or export areas to userspace and allow to set policy there. For starter something like the following policies should suffice AFAIU your description. - NONE - exclusive pool for CMA allocations only - DROPABLE - only allocations which might be dropped without any additional actions - e.g. cleancache and frontswap with write-through policy - RECLAIMABLE - only movable allocations which can be migrated or dropped after writeback. Has such an approach been considered? -- Michal Hocko SUSE Labs -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/