Re: Kernel checksum routime (>=5)x86 optimization

Richard B. Johnson (root@chaos.analogic.com)
Sat, 15 May 1999 23:51:09 -0400 (EDT)


On Fri, 14 May 1999, Montressor wrote:

> Hi,
> I had some free time, so I was looking at some of the assembly code in
> the 2.2.8 kernel, and had an idea at a particular point which I suspect
> can increase checksum performance twofold. Someone give me their opinion,
> ok, cuz
> I'm new here and I don't have many skills yet.
> In the arch/i386/lib/checksum.S file, line 156:
>
> 40:
> addl -128(%esi), %eax
> adcl -124(%esi), %eax
[SNIPPED]

>
> this is, as I understand, a vastly unrolled loop to perfrom the
> checksum. Note that on a dual pipeline machine, the second pipeline does
> not get used at all in this routine. However, what happens if you change
> it to:
>
[SNIPPED]

Just make a new function, just as you want, then call it from some
test-code and compare its speed against the present one. Also make sure
it works.

I think you will find that most everything you do becomes I/O bound
with fast CPUs. Once you have CPUs that run N times faster than memory
can be accessed, you can make code that is N times slower without
any measurable difference in performance.

This makes it very difficult to prove that there is any improvement
in performance. As faster CPUs become commonplace, you can rewrite
everything in FORTRAN(*) and see no difference in performance. This
will make the FORTRAN(*) gurus happy as they explain that this is the
only language that should ever be used.

(*) Substitute the language-of-the-day.

Cheers,
Dick Johnson
***** FILE SYSTEM WAS MODIFIED *****
Penguin : Linux version 2.2.6 on an i686 machine (400.59 BogoMips).
Warning : It's hard to remain at the trailing edge of technology.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/