Re: What exactly is our CRC algorithm?

From: Bruce Momjian <bruce(at)momjian(dot)us>
To: Andres Freund <andres(at)2ndquadrant(dot)com>
Cc: Abhijit Menon-Sen <ams(at)2ndQuadrant(dot)com>, pgsql-hackers(at)postgresql(dot)org, Heikki Linnakangas <hlinnakangas(at)vmware(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>
Subject: Re: What exactly is our CRC algorithm?
Date: 2014-12-26 17:05:34
Message-ID: 20141226170534.GC3763@momjian.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Dec 26, 2014 at 04:52:58PM +0100, Andres Freund wrote:
> On December 26, 2014 4:50:33 PM CET, Bruce Momjian <bruce(at)momjian(dot)us> wrote:
> >On Thu, Dec 25, 2014 at 11:57:29AM +0530, Abhijit Menon-Sen wrote:
> >> Hi.
> >>
> >> Here's a proposed patch to use CPUID at startup to determine if the
> >> SSE4.2 CRC instructions are available, to use them instead of the
> >> slice-by-8 implementation (posted earlier).
> >>
> >> A few notes:
> >>
> >> 1. GCC has included cpuid.h since 4.3.0, so I figured it was safe to
> >> use. It can be replaced with some inline assembly otherwise.
> >>
> >> 2. I've also used the crc32b/crc32q instructions directly rather than
> >> using ".bytes" to encode the instructions; bintuils versions since
> >> 2007 or so have supported them.
> >>
> >> 3. I've included the MSVC implementation mostly as an example of how
> >to
> >> extend this to different compilers/platforms. It's written
> >according
> >> to the documentation for MSVC intrinsics, but I have not tested
> >it.
> >> Suggestions/improvements are welcome.
> >
> >Uh, what happens if the system is compiled on a different CPU that it
> >is
> >run on? Seems we would need a run-time CPU test.
>
> That's the cpuid thing mentioned above.

Oh, so cpuid is not a macro exported by the compiler but a C API. Good.

--
Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ Everyone has their own god. +

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Alvaro Herrera 2014-12-26 17:10:51 Re: Some other odd buildfarm failures
Previous Message Tom Lane 2014-12-26 16:47:35 Re: Some other odd buildfarm failures