You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jm...@apache.org on 2016/06/17 16:41:50 UTC
[02/10] cassandra git commit: Set correct MCL_CURRENT and MCL_FUTURE
values on IBM POWER to support mlockall(2) through JNA
Set correct MCL_CURRENT and MCL_FUTURE values on IBM POWER to support mlockall(2) through JNA
Patch by rodaira; reviewed by jmckenzie for CASSANDRA-11576
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a56bc160
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a56bc160
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a56bc160
Branch: refs/heads/cassandra-2.2
Commit: a56bc1600bc8b98b9949751873e911ad5b237fbe
Parents: 615bf37
Author: Rei Odaira <ro...@us.ibm.com>
Authored: Fri Apr 15 10:50:45 2016 -0500
Committer: Josh McKenzie <jm...@apache.org>
Committed: Fri Jun 17 12:38:25 2016 -0400
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../org/apache/cassandra/utils/CLibrary.java | 28 ++++++++++++++++++--
2 files changed, 27 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/a56bc160/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index ec2b48e..64cfdaa 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
2.1.15
+ * Support mlockall on IBM POWER arch (CASSANDRA-11576)
* Cache local ranges when calculating repair neighbors (CASSANDRA-11933)
* Allow LWT operation on static column with only partition keys (CASSANDRA-10532)
* Create interval tree over canonical sstables to avoid missing sstables during streaming (CASSANDRA-11886)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/a56bc160/src/java/org/apache/cassandra/utils/CLibrary.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/CLibrary.java b/src/java/org/apache/cassandra/utils/CLibrary.java
index 1c771af..48cb67c 100644
--- a/src/java/org/apache/cassandra/utils/CLibrary.java
+++ b/src/java/org/apache/cassandra/utils/CLibrary.java
@@ -33,8 +33,8 @@ public final class CLibrary
{
private static final Logger logger = LoggerFactory.getLogger(CLibrary.class);
- private static final int MCL_CURRENT = 1;
- private static final int MCL_FUTURE = 2;
+ private static final int MCL_CURRENT;
+ private static final int MCL_FUTURE;
private static final int ENOMEM = 12;
@@ -75,6 +75,30 @@ public final class CLibrary
logger.warn("Obsolete version of JNA present; unable to register C library. Upgrade to JNA 3.2.7 or later");
jnaAvailable = false;
}
+
+ if (System.getProperty("os.arch").toLowerCase().contains("ppc"))
+ {
+ if (System.getProperty("os.name").toLowerCase().contains("linux"))
+ {
+ MCL_CURRENT = 0x2000;
+ MCL_FUTURE = 0x4000;
+ }
+ else if (System.getProperty("os.name").toLowerCase().contains("aix"))
+ {
+ MCL_CURRENT = 0x100;
+ MCL_FUTURE = 0x200;
+ }
+ else
+ {
+ MCL_CURRENT = 1;
+ MCL_FUTURE = 2;
+ }
+ }
+ else
+ {
+ MCL_CURRENT = 1;
+ MCL_FUTURE = 2;
+ }
}
private static native int mlockall(int flags) throws LastErrorException;