Re: [PATCH v5 2/3] mm: cma: allocation trigger

From: Sasha Levin
Date: Fri Feb 20 2015 - 05:27:54 EST


Stefan, Andrew,

I ended up cherry-picking and older patch here by mistake. Joonsoo pointed
it out but I didn't have time to address it yet since I'm travelling and
they got pulled in to mmotm in the meanwhile.

I'll send out patches to add documentation and fix the issues raised here
early next week. Sorry for the delay and the noise.


Thanks,
Sasha

On 02/19/2015 12:38 PM, Stefan Strogin wrote:
> Hi,
>
> On 13/02/15 01:26, Sasha Levin wrote:
>> Provides a userspace interface to trigger a CMA allocation.
>>
>> Usage:
>>
>> echo [pages] > alloc
>>
>> This would provide testing/fuzzing access to the CMA allocation paths.
>>
>> Signed-off-by: Sasha Levin <sasha.levin@xxxxxxxxxx>
>> ---
>> mm/cma.c | 6 ++++++
>> mm/cma.h | 4 ++++
>> mm/cma_debug.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
>> 3 files changed, 64 insertions(+), 2 deletions(-)
>>
>> diff --git a/mm/cma_debug.c b/mm/cma_debug.c
>> index 3a25413..5bd6863 100644
>> --- a/mm/cma_debug.c
>> +++ b/mm/cma_debug.c
>> @@ -23,8 +32,48 @@ static int cma_debugfs_get(void *data, u64 *val)
>>
>> DEFINE_SIMPLE_ATTRIBUTE(cma_debugfs_fops, cma_debugfs_get, NULL, "%llu\n");
>>
>> -static void cma_debugfs_add_one(struct cma *cma, int idx)
>> +static void cma_add_to_cma_mem_list(struct cma *cma, struct cma_mem *mem)
>> +{
>> + spin_lock(&cma->mem_head_lock);
>> + hlist_add_head(&mem->node, &cma->mem_head);
>> + spin_unlock(&cma->mem_head_lock);
>> +}
>> +
>> +static int cma_alloc_mem(struct cma *cma, int count)
>> +{
>> + struct cma_mem *mem;
>> + struct page *p;
>> +
>> + mem = kzalloc(sizeof(*mem), GFP_KERNEL);
>> + if (!mem)
>> + return -ENOMEM;
>> +
>> + p = cma_alloc(cma, count, CONFIG_CMA_ALIGNMENT);
>
> If CONFIG_DMA_CMA (and therefore CONFIG_CMA_ALIGNMENT) isn't configured
> then building fails.
>> mm/cma_debug.c: In function âcma_alloc_memâ:
>> mm/cma_debug.c:223:28: error: âCONFIG_CMA_ALIGNMENTâ undeclared (first use in this function)
>> p = cma_alloc(cma, count, CONFIG_CMA_ALIGNMENT);
>> ^
>
> Also, could you please fix the whitespace errors in your patches?
>

--
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/