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)