Re: What exactly is our CRC algorithm? - Mailing list pgsql-hackers

From Andres Freund
Subject Re: What exactly is our CRC algorithm?
Date
Msg-id 012802C8-A74D-419C-8D9F-D748EC850491@2ndquadrant.com
Whole thread Raw
In response to Re: What exactly is our CRC algorithm?  (Bruce Momjian <bruce@momjian.us>)
Responses Re: What exactly is our CRC algorithm?  (Bruce Momjian <bruce@momjian.us>)
Re: What exactly is our CRC algorithm?  (Bruce Momjian <bruce@momjian.us>)
List pgsql-hackers
On December 26, 2014 4:50:33 PM CET, Bruce Momjian <bruce@momjian.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.

Andres

-- 
Please excuse brevity and formatting - I am writing this on my mobile phone.

Andres Freund                       http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: BUG #12330: ACID is broken for unique constraints
Next
From: Alvaro Herrera
Date:
Subject: Re: Some other odd buildfarm failures