Re: [PATCH v3 3/3] mm: cma: release trigger

From: Sasha Levin
Date: Thu Jan 29 2015 - 08:04:54 EST


On 01/29/2015 02:51 AM, Joonsoo Kim wrote:
> On Tue, Jan 27, 2015 at 09:22:57PM -0500, Sasha Levin wrote:
>> > +static int cma_free_mem(struct cma *cma, int count)
>> > +{
>> > + struct cma_mem *mem = NULL;
>> > +
>> > + while (count) {
>> > + mem = cma_get_entry_from_list(cma);
>> > + if (mem == NULL)
>> > + return 0;
>> > +
>> > + if (mem->n <= count) {
>> > + cma_release(cma, mem->p, mem->n);
>> > + count -= mem->n;
>> > + kfree(mem);
>> > + } else if (cma->order_per_bit == 0) {
>> > + cma_release(cma, mem->p, count);
>> > + mem->p += count;
>> > + mem->n -= count;
>> > + count = 0;
>> > + cma_add_to_cma_mem_list(cma, mem);
>> > + } else {
>> > + cma_add_to_cma_mem_list(cma, mem);
>> > + break;
>> > + }
>> > + }
> Hmm... I'm not sure we need to deal with "mem->m < count" case.
> It is not suitable for any cma_alloc/release usecase.

Maybe not, but the code in mm/cma.c supports that right now. If that
ever changes we can make appropriate changes here.

> And, I'd like to insert some error log to last case rather than
> silently ignoring the request.

I can add that.


Thanks,
Sasha
--
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/