On Friday 24 January 2014 02:04 AM, Yinghai Lu wrote: > On Thu, Jan 23, 2014 at 10:56 PM, Santosh Shilimkar > <santosh.shilimkar@xxxxxx> wrote: >> On Friday 24 January 2014 01:38 AM, Santosh Shilimkar wrote: > >> The patch which is now commit 457ff1d {lib/swiotlb.c: use >> memblock apis for early memory allocations} was the breaking the >> boot on Andrew's machine. Now if I look back the patch, based on your >> above description, I believe below hunk waS/is the culprit. >> >> @@ -172,8 +172,9 @@ int __init swiotlb_init_with_tbl(char *tlb, unsigned long nslabs, int verbose) >> /* >> * Get the overflow emergency buffer >> */ >> - v_overflow_buffer = alloc_bootmem_low_pages_nopanic( >> - PAGE_ALIGN(io_tlb_overflow)); >> + v_overflow_buffer = memblock_virt_alloc_nopanic( >> + PAGE_ALIGN(io_tlb_overflow), >> + PAGE_SIZE); >> if (!v_overflow_buffer) >> return -ENOMEM; >> >> >> Looks like 'v_overflow_buffer' must be allocated from low memory in this >> case. Is that correct ? > > yes. > > but should the change like following > > commit 457ff1de2d247d9b8917c4664c2325321a35e313 > Author: Santosh Shilimkar <santosh.shilimkar@xxxxxx> > Date: Tue Jan 21 15:50:30 2014 -0800 > > lib/swiotlb.c: use memblock apis for early memory allocations > > > @@ -215,13 +220,13 @@ swiotlb_init(int verbose) > bytes = io_tlb_nslabs << IO_TLB_SHIFT; > > /* Get IO TLB memory from the low pages */ > - vstart = alloc_bootmem_low_pages_nopanic(PAGE_ALIGN(bytes)); > + vstart = memblock_virt_alloc_nopanic(PAGE_ALIGN(bytes), PAGE_SIZE); > if (vstart && !swiotlb_init_with_tbl(vstart, io_tlb_nslabs, verbose)) > return; > OK. So we need '__alloc_bootmem_low()' equivalent memblock API. We will try to come up with a patch for the same. Thanks for inputs. Regards, Santosh -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>