You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Joshua McKenzie (JIRA)" <ji...@apache.org> on 2016/06/14 16:44:57 UTC

[jira] [Commented] (CASSANDRA-11576) Add support for JNA mlockall(2) on POWER

    [ https://issues.apache.org/jira/browse/CASSANDRA-11576?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15329851#comment-15329851 ] 

Joshua McKenzie commented on CASSANDRA-11576:
---------------------------------------------

Correct me if I'm wrong, but referencing [this page|http://lxr.free-electrons.com/source/include/asm-ppc/mman.h?v=2.4.37#L26] (or [this|http://lxr.free-electrons.com/source/arch/powerpc/include/uapi/asm/mman.h#L23] for 4.6 kernel), it looks like MCL_CURRENT and MCL_FUTURE on PPC are defined as:
{noformat}
 26 #define MCL_CURRENT     0x2000          /* lock all currently mapped pages */
 27 #define MCL_FUTURE      0x4000          /* lock all additions to address space */
{noformat}

As those are hexadecimal values, the following code would be incorrect:
{noformat}
        if (System.getProperty("os.arch").toLowerCase().contains("ppc"))
        {
         if (System.getProperty("os.name").toLowerCase().contains("linux"))
         {
            MCL_CURRENT = 020000;
            MCL_FUTURE = 040000;
         }
{noformat}

I haven't dug into the aix values.

> Add support for JNA mlockall(2) on POWER
> ----------------------------------------
>
>                 Key: CASSANDRA-11576
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-11576
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>         Environment: POWER architecture
>            Reporter: Rei Odaira
>            Assignee: Rei Odaira
>            Priority: Minor
>             Fix For: 2.1.x, 2.2.x, 3.0.x, 3.x
>
>         Attachments: 11576-2.1.txt
>
>
> org.apache.cassandra.utils.CLibrary contains hard-coded C-macro values to be passed to system calls through JNA. These values are system-dependent, and as far as I investigated, Linux and AIX on the IBM POWER architecture define {{MCL_CURRENT}} and {{MCL_FUTURE}} (for mlockall(2)) as different values than the current hard-coded values.  As a result, mlockall(2) fails on these platforms.
> {code}
> WARN  18:51:51 Unknown mlockall error 22
> {code}
> I am going to provide a patch to support JNA mlockall(2) on POWER.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)