netdev
[Top] [All Lists]

RE: [PATCH 2.6.9-rc2 8/8] S2io: two buffer mode

To: "'Jeff Garzik'" <jgarzik@xxxxxxxxx>, <ravinandan.arakali@xxxxxxxx>
Subject: RE: [PATCH 2.6.9-rc2 8/8] S2io: two buffer mode
From: "Raghavendra Koushik" <raghavendra.koushik@xxxxxxxx>
Date: Thu, 14 Oct 2004 11:33:13 -0700
Cc: "'Francois Romieu'" <romieu@xxxxxxxxxxxxx>, <netdev@xxxxxxxxxxx>, <leonid.grossman@xxxxxxxx>, <rapuru.sriram@xxxxxxxx>
In-reply-to: <416E9550.4060001@pobox.com>
Sender: netdev-bounce@xxxxxxxxxxx
Thread-index: AcSx/wh26BFEucuwQO6WE/kdNJKkVwAG9iTg
> -----Original Message-----
> From: Jeff Garzik [mailto:jgarzik@xxxxxxxxx]
> Sent: Thursday, October 14, 2004 8:04 AM
> To: ravinandan.arakali@xxxxxxxx
> Cc: 'Francois Romieu'; netdev@xxxxxxxxxxx; leonid.grossman@xxxxxxxx;
> raghavendra.koushik@xxxxxxxx; rapuru.sriram@xxxxxxxx
> Subject: Re: [PATCH 2.6.9-rc2 8/8] S2io: two buffer mode
> 
> no objections but two comments:
> 
> 1) can this not be done with SKB fragments?
> 
To acheve what is required, the H/W still has to split the Rx'ed frame into
2 parts. By implementing this through the SKB fragments method, the only
thing we avoid is usage of ba_0 and ba_1 fields, but note that none of these
are allocated or freed in fast path. They are all pre-allocated buffers
(along with the Rx descriptors) and hence won't hit the Rx side performance.
Also by pulling down the eth_type_trans implementation partially into the
driver any kind of copy during Rx is also avoided.  


> 2) the following code needlessly uses GFP_ATOMIC:
> 
> > +                               ba = &nic->ba[i][j][k];
> > +
> > +                               ba->ba_0_org = (void *) kmalloc
> > +                                   (BUF0_LEN + ALIGN_SIZE, GFP_ATOMIC);
> 
> and there is another example just a bit down from that one.



<Prev in Thread] Current Thread [Next in Thread>