Alan, Garrett,

I made bug and improvement list which includes corresponding
line numbers. It's big.

-masa

================================================
Bugs:

Original driver version was not included in sfe.c.
 sfe.c
 55

PCI parity check was disabled. It should be enabled.
sfe.c
 562
 579
 616-617
sfereg.h
 177

Tx fifo setting was incorrect. It caused tx timeouts.
It was exposed after the sis900 MII autonegotiation problem was fixed.
The root cause was a typo of valiable name. :-(
sfe.c
 1062

Reading tx/rx descriptors were not atomic. It may cause
hangs or lost packets for sparc platforms.
 1256-1257
 1361-1362

NS DP83815 hung in transmitting under heavy network traffic.
sfe.c
 1247
 1267-1271
 2160-2163

External PHY was not supported for NS chipset.
sfe.c
 1675-1725
 2219-2220

Procedures for accessing MII PHY were incorrect for sis900 that
made autonegotiation failed (CR#6655415)
sfe.c
 1731
 1791
 1800
 1805-1806
 1809
 1814
 1820-1821
 1826
 1850
 1852
 1756-1759 in old sfe.c were removed

Incorrect comma at the end of statement.
sfe.c
 2060

sfe hung in transmitting vlan packets in sparc platforms.
(I really didn't know why it happened only for vlan packets
under sparc)
sfe_util.c
 971
 1064
 1066-1070
 1123-1125
 1149
 1215
 1114-1116 in old sfe_util.c were removed
 1298 in old sfe_util.c was removed
 1495-1499
 1364-1373 in old sfe_util.c were removed
 1535
 1436-1441 in old sfe_util.c were removed
 1467-1473 in old sfe_util.c were removed
 1666
 1675-1681
 1698
 1709-1710
 1985-1086
 1991-1992
 1999-2001
 2006-2007
 2549-2550 in old sfe_util.c were removed
 2703-2705
 3098
 3028 in old sfe_util.c

Incorrect tx statistics
sfe_util.c
 1251
 1327
 1532
 1558

Netperfs in test08 i.e. vlan tests of nicdrv caused timeouts or
were not scheduled fairly.
sfe_util.c
 1480
 1346-1350 in old sfe_util.c were removed
 1486
 3101
sfe_util.h
 233
 242

sfe didn't work with NWAM
sfe_util.c
 2256-2267
 2810-2821
 2968
sfe_util.h
 307

cap_autoneg in kstat may be incorrect.
sfe_util.c
 4410

Vlan capabiliy was enabled for sis900 which didn't support vlan.
sfe_util.c
 4664-4666

Forced mode was not setup correctly
sfe_util.c
 4697-4704
 4973

Corrupted warning messages
sfe_util.c
 4737
 4747

Packets may be corrupted in sparc platforms, because rx/tx buffers
may not be aligned for io cache.
sfe_util.c
 4864-4866

Detach won't work correctly if mac_unregister will return errors.
sfe_util.c
 5091-5094
 4989-4990 in old sfe_util.c

-----------------------------------------------------------
Making the bug list above, I found another bug. I'd like to fix below too.
Incorrect tx timeout period. It's too short.

1675  if (dp->tx_blocked &&
1676       now - dp->tx_blocked > dp->gc.gc_tx_timeout_interval) {
should be 
1675  if (dp->tx_blocked &&
1676       now - dp->tx_blocked > dp->gc.gc_tx_timeout) {


================================================================
Improvements:

Improving performance in making tx/rx descriptors
sfe.c
 1146-1147
 1177-1180
 1216-1217
 1234-1237
 1243
 1254

Use tx_ring_size and rx_ring_size in gem_conf structure rather
than the constants. In future, the ring size constant
should be seperated from hardware dependant methods.
sfe.c
 1188
 1194
 1243
 1254
 1296
 1437
 1450
 1457
 1470
 1498
 1550

Make NS DP83815 PHY registers non-writable after modifying
PHY parameters.
sfe.c
 1644

Patching PHY parameters for recent NS DP83815/83816 chipset
sfe.c
 1654-1669

Improving performance inconverting value to boolean
sfe_util.c
 117

A new function dumping tx packets was added for debugging purpose.
sfe_util.c
 214-248
 251-352

Removing unused vlan tag function
sfe_util.c
 230-250 in old sfe_util.c
 253

Changing dump funtions because of framework change.
sfe_util.c
 437

LSO support. (it doesn't affect sfe)
sfe_util.c
 964-966
 1111-1114
sfe_util.h
 463-466
 531

Improving performance
sfe_util.c
 1149

Unused lines for vlan tag processing were removed
sfe_util.c
 1163-1184 in old sfe_util.c

Readablity of gem_send_common() was improved.
A new subroutine was seperated from gem_semd_common()
sfe_util.c
 1374-1420
 1301-1302, 1383 in old sfe_util.c were removed.
 1507
 1383 in old sfe_util.c was removed
 1391-1410, 1412-1413 in old sfe_util were removed
 1526-1530
 1425-1432 in old sfe_util were removed

Debugging information were improved
sfe_util.c
 1575-1580
 1693
 1709-1710

Use macro instead of constant, to specify parameter
in calling gem_restart_nic()
sfe_util.c
 1696

ddi_dma_sync() performance improved
sfe_util.c
 1777-1782

sync iocache for rx header in received packets. (it
doesn't affect sfe.)
sfe_util.c
 1812
 1835-1838

Unused vlan tag code were removed
 1875
 1769-1777 in old sfe_util.c were removed

Autonegotiations didn't start for some PHYs. (It will not
affect sis900.)
 sfe_util.c
 2797-2798

cstyle issues were fixed
sfe_util.c
 2806
 3749

receive buffers were not ready when the mac started. (It doesn't
affect sfe.
 sfe_util.c
 3132-3135
 3016-3019 in old sfe_util.c were removed

Workarond for panics in getting statistics
It happened in GLDv2. It should be fixed for GLDv3 too, because
I'm not sure whether it will happen in GLDv3. The root cause is
calling methods in GLD with holding a private mutex lock, intrlock
in gem_dev structure. But I cannot fix the root cause for now
because it will need big change.
sfe_util.c
 4233-4237



rx_pkt_delay may become too big. It doesn't affect sfe.
 sfe_util.c
 4599

mrf_normal_blank_time was incorrect. (It doesn't affect sfe)
gem controles packet count, not blank time.
sfe_util.c
 4621

Unused code were removed
sfe_util.c
 4712  in old sfe_util.c
 4719-4726 in old sfe_util.c

performance improvement in gem polling mode. The default value
was changed. (It doesn't affect sfe)
sfe_util.c
 4902

Fix for supportting multiport devices, like marvell nics. (It
doesn't affect sfe)
sfe_util.c
 5040
 5137
 5013 in old sfe_util.c was removed.
sfe_util.h
 559

An unused member in gem_dev was removed
sfe_util.h
 336

----- Original Message -----
>Date: Thu, 12 Jun 2008 14:54:13 -0700 (PDT)
>From: Alan DuBoff <[EMAIL PROTECTED]>
>To: "Garrett D'Amore" <[EMAIL PROTECTED]>
>Cc: driver-discuss@opensolaris.org
>Subject: Re: [driver-discuss] Codereview for CR# 6655415 sfe auto-negotiate
>
>
>On Wed, 11 Jun 2008, Garrett D'Amore wrote:
>
>> So maybe instead of a gazillion different CRs, you could just do a single C
R 
>> saying "incorporate changes from upstream supplier". I'd still like to have
 
>> some explanation in that CR for what all the changes are for, but you can 
>> coordinate with Masa to get the details.
>>
>> (Of course, listing all the CRs individually is even better, but I do 
>> recognize it is potentially a fair bit more effort.)
>
>Garrett,
>
>It looks like I can change a CR as fix-delivered.
>
>I think I should file another CR for all the bug fixes which Masa creates 
>a list of, and then just mark this one fixed-delivered...and refer to the 
>new CR in this old one. New list would include the auto-negotiate bug of 
>course.
>
>Does that sound ok?
>
>--
>
>Alan DuBoff - Solaris x86 IHV/OEM Group
>_______________________________________________
>driver-discuss mailing list
>driver-discuss@opensolaris.org
>http://mail.opensolaris.org/mailman/listinfo/driver-discuss

_______________________________________________
driver-discuss mailing list
driver-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/driver-discuss

Reply via email to