Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 15 Apr 2005 11:39:02 +0900
From:      Pyun YongHyeon <yongari@rndsoft.co.kr>
To:        John-Mark Gurney <gurney_j@resnet.uoregon.edu>
Cc:        freebsd-sparc64@freebsd.org
Subject:   Re: em(4) patch
Message-ID:  <20050415023902.GC7393@michelle.rndsoft.co.kr>
In-Reply-To: <20050414192749.GO56487@funkthat.com>
References:  <20050414092608.GB2855@michelle.rndsoft.co.kr> <20050414192749.GO56487@funkthat.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Apr 14, 2005 at 12:27:49PM -0700, John-Mark Gurney wrote:

 > > . always honor IFF_OACTIVE flag
 > 
 > I made this mistake before myself.. Make sure you read the comment
 > describing OACTIVE..  you only set OACTIVE when the TX queue is full,
 > and clear it when it is not full.. not always set it when the board
 > is transmitting:
 > define    IFF_OACTIVE     0x400           /* tx hardware queue is full */
 > 

Do you mean IFF_OACTIVE should be set regardless of TX queue state
when h/w is transmitting frames? Would you elaborate on an IFF_OACTIVE?

 > > . TX/RX descriptor alignment is 16 not PAGE_SIZE
 > > . TX/RX descriptor length should be multiple of 128 not 4096.
 > 
 > You should probably use a define for this...
 > 

Yes. But AFAIK if_em_hw.h has no defined constants for these purposes.
There are another hardcoded constants for processing 64bit IO BAR. I
belive these constants should go pcireg.h.

 > > I have tested 82545GM chipset based card on Ultra60(SMP). VLAN and
 > > POLLING were not tested at all so it may have bugs. JUMBO frame support
 > > needs more coding and cleanups since sparc64 does not allow non-aligned
 > > memory access. So don't try to use JUMBO frame at this time.
 > > If you want to test em(4) on SMP with ofw_console you need additional
 > > patch. Alternatively you can use sc(4) or serial console.
 > > I'd like to hear success/failure.
 > 
 > I think you should put back the while(!IFQ_DRV_IS_EMPTY, loop..  It
 > prevents an unnessary lock/unlock if both queues are empty...
 > 

Yes, you're right.

 > Also, I have work in progress to make non-aligned packets better...
 > I committed part of it as the m_copyup change...  On a -current, you
 > should just be able to apply the following change:
 > http://perforce.freebsd.org/fileDiffView.cgi?FSPC=//depot/user/jmg/arm/src/sys/netinet/ip%5finput.c&REV=3&ACT=edit
 > 

This looks promising. Some miserable hardwares that use sf(4)/rl(4)
driver could take advatnage of it. BTW what is IP_HDR_ALIGNED_P macro?

 > I'll try the patch when I get home...
 > 
Thanks.
-- 
Regards,
Pyun YongHyeon
http://www.kr.freebsd.org/~yongari	|	yongari@freebsd.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050415023902.GC7393>