Re: [PATCH 1/3] memblock, nobootmem: Add memblock_virt_alloc_low()

From: Yinghai Lu
Date: Fri Jan 24 2014 - 14:34:38 EST


On Fri, Jan 24, 2014 at 11:25 AM, Konrad Rzeszutek Wilk
<konrad.wilk@xxxxxxxxxx> wrote:
> On Fri, Jan 24, 2014 at 11:11:10AM -0800, Yinghai Lu wrote:
>> The new memblock_virt APIs are used to replaced old bootmem API.
>>
>> We need to allocate page below 4G for swiotlb.
>>
>> That should fix regression on Andrew's system that is using swiotlb.
>
> Please include the title of the patch that caused the regression.
> I presume it is "mm/lib/swiotlb: Use memblock apis for early memory allocations"
>
> Interestingly enough when I asked about it:
>
> https://lkml.org/lkml/2013/11/9/280
>
>
> >> v_overflow_buffer = memblock_virt_alloc_align_nopanic(
> >> + PAGE_ALIGN(io_tlb_overflow),
> >> + PAGE_SIZE);
> >
> > Does this guarantee that the pages will be allocated below 4GB?
> >
> Yes. The memblock layer still allocates memory from lowmem. As I
> mentioned, there is no change in the behavior than what is today
> apart from just the interface change.
>
> How did that happend? Was there another patch in the series that altered
> such assumption?
>

Yes, that is one.

He chose to set memblock.current_limit to max_low_mapped. (that is under 4g).

but it broke big numa system as all boot mem is under 4G and system
with lots of memory will need to
have big chunk for vmemmap .

Before that patch, we need to add another API to make sure those
swiotlb under 4G.

Thanks

Yinghai
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/