[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <7426a9f3-a93e-5ae4-da00-48caf0dc86b8@linaro.org>
Date: Mon, 15 Aug 2016 19:30:28 +0300
From: Ivan Khoronzhuk <ivan.khoronzhuk@...aro.org>
To: Yuval Mintz <Yuval.Mintz@...gic.com>,
David Miller <davem@...emloft.net>,
netdev <netdev@...r.kernel.org>,
"mugunthanvnm@...com" <mugunthanvnm@...com>,
"grygorii.strashko@...com" <grygorii.strashko@...com>
Cc: linux-kernel <linux-kernel@...r.kernel.org>,
"linux-omap@...r.kernel.org" <linux-omap@...r.kernel.org>,
"nsekhar@...com" <nsekhar@...com>
Subject: Re: [PATCH v2 1/4] net: ethernet: ti: davinci_cpdma: split descs num
between all channels
On 15.08.16 19:05, Yuval Mintz wrote:
>> Currently the tx channels share same pool of descriptors. Thus one channel can
>> block another if pool is emptied by one. But, the shaper should decide which
>> channel is allowed to send packets. To avoid such impact of one channel on
>> another, let every channel to have its own peace of pool.
> Piece.
Yep.
>
>> +/**
>> + * cpdma_chan_split_pool - Splits ctrl pool between all channels.
>> + * Has to be called under ctlr lock
>> + *
>> + */
> No need for the extra empty comment line.
Ok.
>
>> + /* calculate average size of pool slice */
>> + ch_desc_num = pool->num_desc / ctlr->chan_num;
>> +
>> + /* split ctlr pool */
>> + for (i = 0; i < ARRAY_SIZE(ctlr->channels); i++) {
>> + chan = ctlr->channels[i];
>> + if (chan)
>> + chan->desc_num = ch_desc_num;
> Is this 'if' needed? If there's some route where the channel can be NULL,
> You're splitting the value incorrectly.
If chan == NULL it's not active and pool->chan_num doesn't include it.
The descriptors are split between active channels only.
>
--
Regards,
Ivan Khoronzhuk
Powered by blists - more mailing lists