Quoting Peter Jeremy <peterjeremy_at_optushome.com.au> (Thu, 25 May 2006 21:54:48 +1000): > On Thu, 2006-May-25 12:40:00 +0200, Gordon Bergling wrote: > >* Thus spake Max Laier (max_at_love2party.net): > >> I'm a little scared about this. We have had several problems in the > >> checksumming code that were due to -O2 or -O0 that screwed up just a little > > > | * This routine is very heavily used in the network > > | * code and should be modified for each CPU to be as fast as > > | * possible. > > But _correct_ code is far more important. And I'm not sure that comment > is still as relevant as it used to be - most (if not all) gigabit NICs > have checksum offloading and processors are fast enough that generic > checksum code should be "good enough" for most lesser purposes. I don't comment on the GB-NIC part (except for: not everything is GB today...), but regarding the "correct" part above: sorry, but that's exactly the reason why I put up the entry for porting this on our ideas page (it never showed up there, since Gordon took it before the page went life). More below. > >So having a better situated implementation is still an improved. The > >patch doesn't touch any arch !i386 and derivates, so I don't see any reason > >why it shouldn't be included. > > You stated that you don't understand the code. IP checksumming is a > crucial part of the kernel so the Project needs to be very careful about > making changes. As Max pointed out, there have been past situations > where the checksum code revealed gcc optimiser bugs so any change has > to be checked using a variety of compiler flags. These are not bugs in the optimizer, but mostly bugs in our assembly code. I had the same problems with the Intel C compiler. The guys at Intel had a look at the code and told me that it's it no the fault of the compiler, but the code is not done right. Therefore I switched to the plain-C version when icc is used to compile the kernel. Here's a short discussion on our mailinglists where Matt tells a little bit more about it: http://lists.freebsd.org/pipermail/freebsd-arch/2004-June/002271.html Basically most of our "huge assembly one" is reduced to a faster "nearly everything is plain-C and only a small part is done in assembly" version. Bye, Alexander. -- Selling GoodYear Eagle F1 235/40ZR18, 2x 4mm + 2x 5mm, ~150 EUR you have to pick it up between Germany/Saarland and Luxembourg/Capellen http://www.Leidinger.net Alexander _at_ Leidinger.net: PGP ID = B0063FE7 http://www.FreeBSD.org netchild _at_ FreeBSD.org : PGP ID = 72077137Received on Thu May 25 2006 - 12:04:59 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:56 UTC