[ 
https://issues.apache.org/jira/browse/HADOOP-7446?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Todd Lipcon updated HADOOP-7446:
--------------------------------

    Attachment: hadoop-7446.txt

New patch to fix up compilation issues on 32-bit:

The PIC workaround is only necessary on 32-bit PIC. If you try to use it on 
64-bit PIC, you end up with a subtle bug: gcc may actually allocate the "ebx" 
variable in the %ebx register, and then you end up getting the wrong result. 
So, the fix is to only do the %ebx save off to the stack in 32-bit mode. See 
http://www.technovelty.org/code/arch/pic-cas.html for a good explanation.

Given this, we now only worry about %ebx and not %rbx, since on 64-bit 
platforms we don't have to save anything aside.

I've tested this code via TestDataChecksum on both 32-bit and 64-bit JVMs, and 
also ran a short standalone test of the bulk_verify_crc32 under valgrind to 
check for any possible memory errors.

> Implement CRC32C native code using SSE4.2 instructions
> ------------------------------------------------------
>
>                 Key: HADOOP-7446
>                 URL: https://issues.apache.org/jira/browse/HADOOP-7446
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: native
>    Affects Versions: 0.23.0
>            Reporter: Todd Lipcon
>            Assignee: Todd Lipcon
>             Fix For: 0.23.0
>
>         Attachments: hadoop-7446.txt, hadoop-7446.txt, hadoop-7446.txt
>
>
> Once HADOOP-7445 is implemented, we can get further performance improvements 
> by implementing CRC32C using the hardware support available in SSE4.2. This 
> support should be dynamically enabled based on CPU feature flags, and of 
> course should be ifdeffed properly so that it doesn't break the build on 
> architectures/platforms where it's not available.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to