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