Re: Using Altivec for TCP checksum calculations
Re: Using Altivec for TCP checksum calculations
- Subject: Re: Using Altivec for TCP checksum calculations
- From: Justin Walker <email@hidden>
- Date: Fri, 26 Mar 2004 16:13:51 -0800
On Mar 26, 2004, at 10:09, Brian Tabone wrote:
I was reading up on the PowerPC 7455, and happened upon an interesting
document (http://e-www.motorola.com/files/if/cnb/ALTIVECTCPIPWP.pdf)
on Motorola's website. This document covered the advantages of doing
TCP checksum calculations in the Altivec SIMD unit versus doing it in
the scalar integer units.
Digging around in the xnu source, I found the checksum assembly code
for Darwin (in bsd/dev/ppc/xsumas.s) and found that it was doing the
checksum calculations in the integer units. My question is , beyond
having to support the G3, is there any reason why the Darwin kernel
does the checksum calculations in scalar code versus doing it in
vector code? Is there reason to avoid Altivec instructions in the
kernel?
We looked at this when the G4 first showed up. As I recall, the
consensus among those involved was that the setup time, together with
alignment requirements, coupled with the problems associated with
dealing with Altivec in the kernel, made this a non-starter.
I suppose it's always worth revisiting, but for Altivec to be valuable,
you have to have a fair amount of data, properly set up, to use this.
Given the normal size of TCP data, this is a stretch.
Regards,
Justin
--
Justin C. Walker, Curmudgeon-At-Large *
Institute for General Semantics | "Weaseling out of things is
what
| separates us from the animals.
| Well, except the weasel."
| - Homer J Simpson
*--------------------------------------*-------------------------------*
_______________________________________________
darwin-kernel mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/darwin-kernel
Do not post admin requests to the list. They will be ignored.