[LBNL]

Berkeley UPC - Unified Parallel C

(A joint project of LBNL and UC Berkeley)
[UCB]

Home
Downloads
Documentation
Bugs
Publications
Demos
Contact
Internal

Berkeley UPC v2.8.0 Runtime patch 1: X86_64 cmpxchg16b

This patch fixes runtime crashes (SIGSEGV) due to insufficent alignment of arguments to the cmpxchg16b instruction present on many recent x86_64 processors.

If you have seen UPC applications or GASNet tests fail with a Segmentation Violation (SIGSEGV), you may be seeing this bug (though appliction errors can also lead to a SIGSEGV). To see if you may be affected by this bug, you can run the following command in either your Build or Installation directory for Berkeley UPC 2.8.0:
        find . -name gasnet_config.h | xargs grep 'define GASNETI_HAVE_X86_CMPXCHG16B'
If your output contains any matching lines, then you should apply this patch. If your output does not show any matching lines, then you are not affected.

Instructions:

  1. Download the Berkeley UPC 2.8.0 runtime source release tarball from http://upc.lbl.gov.
  2. Extract the source tarball to a directory on your harddrive.
  3. Download and save the Berkeley UPC Runtime v2.8.0 patch 1 patch file to the same directory.
  4. Patch the source files with the following command:
            patch -p0 < berkeley_upc-2.8.0-patch1.txt
    You should see output something like this:
            patching file gasnet/gasnet_syncops.h
            patching file gasnet/gasnet_atomic_bits.h
            patching file gasnet/tests/testgasnet.c
  5. Build and install the source distribution as usual.

Home
Downloads
Documentation
Bugs
Publications
Demos
Contact
Internal

This page last modified on Monday, 23-Mar-2009 14:56:49 PDT