[dpdk-dev] [PATCH v3 00/35] mempool: rework memory allocation

Olivier Matz olivier.matz at 6wind.com
Mon May 23 09:43:28 CEST 2016


Hi Panu, Thomas,

On 05/20/2016 11:09 AM, Thomas Monjalon wrote:
> 2016-05-20 11:42, Panu Matilainen:
>> Just noticed this series "breaks" --no-huge as a regular user, commit 
>> 593a084afc2b to be exact:
>>
>> mmap(NULL, 4194304, PROT_READ|PROT_WRITE, 
>> MAP_PRIVATE|MAP_ANONYMOUS|MAP_LOCKED, 0, 0) = -1 EAGAIN (Resource 
>> temporarily unavailable)
>> write(1, "EAL: rte_eal_hugepage_init: mmap"..., 76EAL: 
>> rte_eal_hugepage_init: mmap() failed: Resource temporarily unavailable
>>
>> "Breaks" in quotes because I guess it always was broken (as the 
>> non-locked pages might not be in physical memory) and because its
>> possible to adjust resourse limits to allow the operation to succeed.
>> If you're root, that is.
>>
>> I was just looking into making the test-suite runnable by a regular user 
>> with no special privileges,
> 
> I have the same dream, to make sure every developer can run the unit tests
> easily and quickly.

Thanks Panu for the feedback on this, I didn't notice this regression
for a regular user.

The goal of this commit was to do a step forward in the direction
of a working --no-huge: locking the pages in physical memory is
mandatory for most physical drivers. But as described at the end
of http://dpdk.org/ml/archives/dev/2016-May/039229.html , the
--no-huge option is still not working because the physical addresses
are not correct.

So I think it wouldn't be a problem to revert this commit if it breaks
something.

>> primarily to make it possible to run the 
>> testsuite as part of rpm package builds (in %check), and no special 
>> setup or extra privileges can be assumed there. Such tests are of course 
>> of limited coverage but still better than nothing, and --no-huge was my 
>> ticket there. Talk about bad timing :)
>>
>> It'd be fine to have limited subset of tests to run when non-privileged 
>> but since this one lives inside rte_eal_init() it practically prevents 
>> everything, unless I'm missing some other magic switch or such. Thoughts?
> 
> This change was done for mbuf allocation because they are passed to the
> hardware. We should not have any hardware constraint in the unit tests.
> So I'd say it is a requirement for the memory rework. We must be capable
> to allocate some locked pages if required, and some standard pages for
> other usages.
> Please jump in this thread:
> 	http://dpdk.org/ml/archives/dev/2016-April/037444.html

Yes, I agree, this is something that could be managed in the
memory rework task.


Olivier


More information about the dev mailing list