Re: [PATCH 1/2] net: thunderx: Set recevie buffer page usage count in bulk

From: Sunil Kovvuri
Date: Mon Mar 07 2016 - 12:23:20 EST


On Mon, Mar 7, 2016 at 10:34 PM, David Miller <davem@xxxxxxxxxxxxx> wrote:
> From: Sunil Kovvuri <sunil.kovvuri@xxxxxxxxx>
> Date: Mon, 7 Mar 2016 22:28:39 +0530
>
>> Hi David,
>>
>>>> you create a window of time during which the consumer
>>>> can release the page and prematurely free it.
>> Okay, but here the consumer i.e HW is notified only after page count
>> is incremented.
>> For example if you check 'nicvf_refill_rbdr' fn() only after receive
>> buffer ring is
>> refilled with buffers, doorbell is issued to hardware to start using
>> the new buffers.
>>
>> So
>> @@ -241,6 +254,8 @@ refill:
>> new_rb++;
>> }
>>
>> + nicvf_get_page(nic);
>> +
>> calling 'nicvf_get_page' before issuing doorbell ensures page ref
>> count is properly
>> set before hw/consumer can use the buffers.
>
> So if you know ahead of time how the page will be split up, just
> calculate that when you get the page and increment the page count
> appropriately.
>
> That's what we do in the NIU driver.

Thanks for the suggestion, will check and get back.

Regards,
Sunil.