[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-id: <45C8F497.2020700@cosmosbay.com>
Date: Tue, 06 Feb 2007 22:35:19 +0100
From: Eric Dumazet <dada1@...mosbay.com>
To: Michael Chan <mchan@...adcom.com>
Cc: David Miller <davem@...emloft.net>, netdev@...r.kernel.org
Subject: Re: [PATCH] tg3 : avoid an expensive divide
Michael Chan a écrit :
> On Tue, 2007-02-06 at 21:53 +0100, Eric Dumazet wrote:
>
>> Signed-off-by: Eric Dumazet <dada1@...mosbay.com>
>> plain text document attachment (tg3_avoid_divide.patch)
>> --- linux-2.6.20/drivers/net/tg3.c.orig 2007-02-06 22:30:39.000000000 +0100
>> +++ linux-2.6.20-ed/drivers/net/tg3.c 2007-02-06 22:32:42.000000000 +0100
>> @@ -3384,7 +3384,7 @@
>> }
>> next_pkt_nopost:
>> sw_idx++;
>> - sw_idx %= TG3_RX_RCB_RING_SIZE(tp);
>> + sw_idx &= (TG3_RX_RCB_RING_SIZE(tp) - 1);
>>
>> /* Refresh hw_idx to see if there is new work */
>> if (sw_idx == hw_idx) {
>
> There are other places doing similar divide (e.g. tg3_recycle_rx(),
> tg3_alloc_rx_skb()). I think we should change them all.
Well, I checked whole tg3.o with objdump --disassemble and there are only
three points using a div : tg3_nvram_phys_addr()/tg3_set_eeprom() &
tg3_open(), wich are seldom used :)
Eric
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists