Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Dec 2000 15:24:21 +0000 (GMT)
From:      Mark Powell <M.S.Powell@salford.ac.uk>
To:        freebsd-stable@freebsd.org
Subject:   Different gcc optimisations cause IP packet CRC problems
Message-ID:  <Pine.BSF.4.21.0012111513500.36265-100000@plato.salford.ac.uk>

next in thread | raw e-mail | index | archive | help
Hi,
  On a PIII 600E, compiling a week old 4.2S kernel with the following
options:

-O2 -fomit-frame-pointer -mpentium -march=pentium -pipe

Cause the kernel to produce TCP CRC errors when talking to certain IP
addresses. It generally seemed to get the 2nd octet of the CRC out by one
i.e. 0xb9f7 became 0xbaf7 etc.
  I originally did this, because I was using this fastish machine to
remake world for another P166 machine. I forgot to change it back and
accidentally recompiled it's own kernel with the above settings.
  This problem was fixed by simply changing the gcc optimisation to the
correct CPU type:

-O2 -fomit-frame-pointer -mpentiumpro -march=pentiumpro -pipe

However, shouldn't the PIII be backwards compatible with any Pentium code?
Or are there some incorrect assumptions made in the CRC generation code?
  Cheers.

BTW Where in the source is the CRC generated?

Mark Powell - UNIX System Administrator - The University of Salford
Academic Information Services, Clifford Whitworth Building,
Salford University, Manchester, M5 4WT, UK.
Tel: +44 161 295 5936  Fax: +44 161 295 5888  www.pgp.com for PGP key




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0012111513500.36265-100000>