Hello, Hard time to understand cma allocation how differs from normal allocation ? I know theoretically how cma works. 1. How it reserved the memory (start pfn to end pfn) ? what is bitmap_* functions ? 2. How alloc_contig_range() works ? it isolate all the pages including unevictable pages, what is the practical work flow ? all this works with virtual pages or physical pages ? 3.what start_isolate_page_range() does ? 4. what alloc_contig_migrate_range does() ? 5.what isolate_migratepages_range(), reclaim_clean_pages_from_list(), migrate_pages() and shrink_page_list() is doing ? Please let me know the flow with simple example. Regards, Pankaj