Use lmb with x86
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest25 patches 12 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/25 | lmb: lmb_find_base() should return LMB_ERROR on failing pathlib/ | +1 | 0 replies | |
| 2/25 | lmb: Prepare x86 to use lmb to replace early_resinclude/ lib/ | +6 | 0 replies | |
| 3/25 | lmb: Print new doubled array location infolib/ | +4 | 5 replies | |
| 4/25 | lmb: Export LMB_ERROR againinclude/ lib/ | +1 | 0 replies | |
| 5/25 | lmb: Prepare to include linux/lmb.h in core fileinclude/ | +3 | 1 reply | |
| 6/25 | lmb: Add ARCH_DISCARD_LMB to put lmb code to .initinclude/ lib/ | +32 | 0 replies | |
| 7/25 | lmb: Add lmb_find_in_range()include/ lib/ | +10 | 0 replies | |
| 8/25 | x86, lmb: Add lmb_find_in_range_size()arch/ arch/ arch/ | +98 | 0 replies | |
| 9/25 | bootmem, x86: Add weak version of reserve_bootmem_genericarch/ arch/ mm/ | +8 | 0 replies | |
| 10/25 | x86, lmb: Add lmb_to_bootmem()arch/ arch/ | +31 | 1 reply | |
| 11/25 | x86,lmb: Add lmb_reserve_range/lmb_free_rangearch/ arch/ | +25 | 1 reply | |
| 12/25 | x86, lmb: Add get_free_all_memory_range()arch/ arch/ | +103 | 1 reply | |
| 13/25 | x86, lmb: Add lmb_register_active_regions() and lmb_hole_size()arch/ arch/ | +71 | 0 replies | |
| 14/25 | lmb: Add find_memory_core_early()include/ mm/ | +38 | 0 replies | |
| 15/25 | x86, lmb: Add lmb_find_in_range_node()arch/ arch/ | +16 | 0 replies | |
| 16/25 | x86, lmb: Add lmb_free_memory_in_range()arch/ arch/ | +49 | 0 replies | |
| 17/25 | x86, lmb: Add lmb_memory_in_range()arch/ arch/ | +18 | 0 replies | |
| 18/25 | x86, lmb: Use lmb_debug to control debug message print outarch/ | +18 | 1 reply | |
| 19/25 | x86: Use lmb to replace early_resarch/ arch/ arch/ +12 more | +140 | 0 replies | |
| 20/25 | x86: Replace e820_/_early string with lmb_arch/ arch/ arch/ +17 more | +100 | 0 replies | |
| 21/25 | x86: Remove not used early_res codearch/ arch/ include/ +1 more | +0 | 0 replies | |
| 22/25 | x86, lmb: Use lmb_memory_size()/lmb_free_memory_size() to get correct dma_reservearch/ arch/ arch/ +1 more | +20 | 0 replies | |
| 23/25 | x86: Have nobootmem version setup_bootmem_allocator()arch/ | +10 | 1 reply | |
| 24/25 | x86: Put 64 bit numa node memmap above 16March/ arch/ | +3 | 0 replies | |
| 25/25 | swiotlb: Use page alignment for early buffer allocationlib/ | +8 | 0 replies |
Reviews trailers per patch
1 of 25 patches has a Reviewed-by or Acked-by.
| Patch | Benjamin Herrenschmidt |
|---|---|
| 1/25 | |
| 2/25 | A-b |
| 3/25 | |
| 4/25 | |
| 5/25 | |
| 6/25 | |
| 7/25 | |
| 8/25 | |
| 9/25 | |
| 10/25 | |
| 11/25 | |
| 12/25 | |
| 13/25 | |
| 14/25 | |
| 15/25 | |
| 16/25 | |
| 17/25 | |
| 18/25 | |
| 19/25 | |
| 20/25 | |
| 21/25 | |
| 22/25 | |
| 23/25 | |
| 24/25 | |
| 25/25 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [PATCH -v19 00/25] Use lmb with x86
New lmb could be used to replace early_res in x86.
Suggested by: David, Ben, and Thomas
-v6: change sequence as requested by Thomas
-v7: seperate them to more patches
-v8: add boundary checking to make sure not free partial page. -v9: use lmb_debug to control print out of reserve_lmb.
add e820 clean up, and e820 become __initdata
-v10:use lmb.rmo_size and ARCH_DISCARD_LMB according to Michael
change name to lmb_find_area/reserve_lmb_area/free_lmb_area,
according to Michael
update find_lmb_area to use __lmb_alloc_base according to ben
-v11:move find_lmb_area_size back to x86.
x86 has own find_lmb_area, and could be disabled by ARCH_LMB_FIND_AREA
because _lmb_find_base has different behavoir from x86's old one. one from high to high and one from low to high
need more test
tested for x86 32bit/64bit, numa/nonuma, nobootmem/bootmem.
-v12:refresh the series with current tip
seperate nobootmem.c, so could remove some #ifdef
still keep CONFIG_NO_BOOTMEM, in x86 .c, and could use the as tags so other lmb could refer them to use NO_BOOTMEM.
-v14:refresh to current tip
-v15:remove x86 version lmb_find_area
remove other nobootmem and x86 e820 from this patchset
-v16: rebase to Ben's cleanup powerpc/lmb
move back most func back to arch/x86/mm/lmb.c
-v17: remove exposing of lmb_add_region
seperate first lmb core related patch to several small patches.
-v18: change lmb_find_area to lmb_find_in_range
kill __lmb_find_area and use lmb_find_area directly remove lmb_add_memory
change lmb_reserve_area to lmb_reserve_range change lmb_free_area to lmb_free_range don't clear lmb.reserved after converting use for_each_lmb to replace for cycle rebase to 06/15/2010 powerpc/lmb
-v19: make the patchset only focus on lmb related.
will submit patches about bootmem/nobootmem seperating and other e820
related later after this one.
this patcheset is based on tip/master+powerpc/lmb
todo:
replace range handling (subtracting) with lmb.
Thanks
Yinghai Lu
arch/x86/Kconfig | 9 +- arch/x86/include/asm/e820.h | 21 +- arch/x86/include/asm/efi.h | 2 +- arch/x86/include/asm/lmb.h | 21 ++ arch/x86/kernel/acpi/sleep.c | 7 +- arch/x86/kernel/apic/numaq_32.c | 3 +- arch/x86/kernel/check.c | 16 +- arch/x86/kernel/e820.c | 197 ++++---------- arch/x86/kernel/efi.c | 5 +- arch/x86/kernel/head.c | 3 +- arch/x86/kernel/head32.c | 10 +- arch/x86/kernel/head64.c | 7 +- arch/x86/kernel/mpparse.c | 5 +- arch/x86/kernel/setup.c | 76 ++++-- arch/x86/kernel/setup_percpu.c | 6 - arch/x86/kernel/trampoline.c | 8 +- arch/x86/mm/Makefile | 2 + arch/x86/mm/init.c | 7 +- arch/x86/mm/init_32.c | 31 +- arch/x86/mm/init_64.c | 38 +-- arch/x86/mm/k8topology_64.c | 4 +- arch/x86/mm/lmb.c | 398 ++++++++++++++++++++++++++ arch/x86/mm/memtest.c | 7 +- arch/x86/mm/numa_32.c | 25 +- arch/x86/mm/numa_64.c | 45 ++-- arch/x86/mm/srat_32.c | 3 +- arch/x86/mm/srat_64.c | 13 +- arch/x86/xen/mmu.c | 5 +- arch/x86/xen/setup.c | 3 +- include/linux/early_res.h | 23 -- include/linux/lmb.h | 17 ++ include/linux/mm.h | 2 + kernel/Makefile | 1 - kernel/early_res.c | 584 --------------------------------------- lib/lmb.c | 65 +++-- lib/swiotlb.c | 16 +- mm/bootmem.c | 11 +- mm/page_alloc.c | 72 +++-- mm/sparse-vmemmap.c | 11 - 39 files changed, 777 insertions(+), 1002 deletions(-) create mode 100644 arch/x86/include/asm/lmb.h create mode 100644 arch/x86/mm/lmb.c delete mode 100644 include/linux/early_res.h delete mode 100644 kernel/early_res.c