[PATCH 1/2] ucc_geth: Move freeing of TX packets to NAPI context.
Li Yang
leoli at freescale.com
Mon Mar 30 18:36:21 EST 2009
On Fri, Mar 27, 2009 at 7:52 PM, Joakim Tjernlund
<Joakim.Tjernlund at transmode.se> wrote:
> pku.leo at gmail.com wrote on 27/03/2009 11:50:09:
>>
>> On Thu, Mar 26, 2009 at 8:54 PM, Joakim Tjernlund
>> <Joakim.Tjernlund at transmode.se> wrote:
>> > Also set NAPI weight to 64 as this is a common value.
>> > This will make the system alot more responsive while
>> > ping flooding the ucc_geth ethernet interaface.
>> >
>> > Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund at transmode.se>
>> > ---
>> > /* Errors and other events */
>> > if (ucce & UCCE_OTHER) {
>> > if (ucce & UCC_GETH_UCCE_BSY)
>> > @@ -3733,7 +3725,7 @@ static int ucc_geth_probe(struct of_device*
> ofdev, const struct of_device_id *ma
>> > dev->netdev_ops = &ucc_geth_netdev_ops;
>> > dev->watchdog_timeo = TX_TIMEOUT;
>> > INIT_WORK(&ugeth->timeout_work, ucc_geth_timeout_work);
>> > - netif_napi_add(dev, &ugeth->napi, ucc_geth_poll,
> UCC_GETH_DEV_WEIGHT);
>> > + netif_napi_add(dev, &ugeth->napi, ucc_geth_poll, 64);
>>
>> It doesn't make sense to have larger napi budget than the size of RX
>> BD ring. You can't have more BDs than RX_BD_RING_LEN in backlog for
>> napi_poll to process. Increase the RX_BD_RING_LEN if you want to
>> increase UCC_GETH_DEV_WEIGHT. However please also provide the
>> performance comparison for this kind of change. Thanks
>
> Bring it up with David Miller. After my initial attempt to just increase
> weight somewhat, he requested that I hardcoded it to 64. Just read the
> whole thread.
> If I don't increase weight somewhat, ping -f -l 3 almost halts the board.
> Logging
> in takes forever. These are my "performance numbers".
Faster response time is surely good. But it might also mean CPU is
not fully loaded. IMHO, throughput is a more important factor for
network devices. When you try to optimize the driver, please also
consider the throughput change. Thanks.
- Leo
More information about the Linuxppc-dev
mailing list