> I've put up a webrev at http://cr.opensolaris.org/~gdamore/eri > > This fixes (I believe) the heap corruption found in eri due to an > incorrect handling of the way pullup'd mblks were handled (which, > coincidentally, didn't make use of pullupmsg or msgpullup!). I think > that problem was most likely introduced when I converted eri to GLDv3. > > At the same time, to reduce potential opportunity for confusion and > errors, I've removed the legacy handling for DMA and DVMA based > transmit. The code was very complicated, and my own experiments show > very little impact. (In fact, my simpler code appears to run slightly > faster on average using ttcp, but the differences observed were too > small to be conclusive.) For the record, for ordinary (<= 1500 bytes) > ethernet frames, I believe that on the transmit side, it is always > faster to simply bcopy. The situation is a bit more complicated for > receive, but I've not touched the receive path. (Although this driver > also suffers from a very suboptimal receive path. It implements loan up > "poorly", getting most of the complexity and almost none of the > performance benefit.) > > I will freely confess that I haven't spent huge amounts of time on all > possible permutations for performance analysis of this driver. I > believe at this point, we are well past the situation where performance > on this driver is critical, as we are only talking about a 100 Mbps > driver. I think the improved readability and sustainability, along with > no clear loss (or gain!) of performance, is enough to warrant moving > ahead at this point without burning many tens of hours in the various > test permutations necessary for a truly complete analysis. If anyone > feels rather differently, please speak up! > > In a future RFE, I may remove the loan up of the RX path as well. The > RX path has dvma disabled by default, and uses the slower DMA > interfaces. Furthermore, it does not use esballoc(), and so I expect > the trade off to favor simplification and using simple bcopy to process > received packets. > > Thanks.
Changes look straight-forward (and clean!) to me. I find it very interesting that eri did not make use of ddi_device_acc_attr_t. Questions: 3489: does this condition warrant a cmn_err? May be tough to track down if this ever happens regularly. Do you need a hand with testing? (I have an extra eri or two laying around collecting dust). Steve _______________________________________________ driver-discuss mailing list driver-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/driver-discuss