From per.liden at oracle.com Wed May 1 19:05:33 2019 From: per.liden at oracle.com (Per Liden) Date: Wed, 1 May 2019 21:05:33 +0200 Subject: [aarch64-port-dev ] [Roland Westrelin] Re: Aarch64 port for ZGC, so far In-Reply-To: References: <877egxmpx4.fsf@redhat.com> <875zw9k63l.fsf@redhat.com> <090f5722-daa7-bbb0-cff4-f017514a46fb@redhat.com> <3feb3501-89f2-4e25-f3f6-1e02cf5daf0d@redhat.com> <3a560c90-805e-7553-5847-86de5f655d04@redhat.com> Message-ID: Hi Stuart, On 04/30/2019 07:36 PM, Stuart Monteith wrote: > I've made a patchset with multi-mapping for aarch64, which is > literally a copy from x86. It doesn't require the 64bit literal > addresses patch, as the bits all fit within 48 bits: > http://cr.openjdk.java.net/~smonteith/zgc-mm/20190430/ > > There is also an updated patchset for the tagged pointers, with a fix > for the JNI "Critical" functions to mask out the tags: > http://cr.openjdk.java.net/~smonteith/zgc/20190430/ > > These patchsets apply to the tip today, so they take into account the > new 4/8/16TB heap limits Per introduced. > > I'm currently regression testing, and benchmarking with/without > tagging. With tags there are 64-bit literals that ought to have a > negative effect on performance, and with multimapping there might be > some impact from the TLB. Having said that, the impact is expected to > be small on the TLB as Per explained. > > Once I've settled on an approach, I'll post RFRS - I'd really like for > ZGC for Aarch64 to get into OpenJDK for JDK 13. Sounds good. Just a heads up that there are two things that I think we want merged before the aarch64 port goes in. The first is JEP 351 (uncommit). With multi-mapping, you'll get uncommit support for aarch64 for free. With tagged pointers, some additional work will be needed in ZPhysicalMemoryBacking for aarch64. The second thing is Nils' work to improve/simplify the C2 barriers. That will affect ZGC's ad-file, but there shouldn't be too much work to adapt to that. My best guess at this time is that both of these things will be merged in the near future (JEP 351 will hopefully be targeted for 13 by end of tomorrow). Btw, if you go with multi-mapping, then we'll just move the copied files from os_cpu/linux_x86 to os/linux. And you can of course always go with multi-mapping first, and switch to using tagging at some point later (or vice versa for that matter). cheers, Per > > BR, > Stuart > > On Mon, 15 Apr 2019 at 17:28, Stuart Monteith > wrote: >> >> Thanks Per, I've not encountered any issues so far with that. With the >> fix to JNI, I expect ZGC should be functioning properly now... until >> the next edge-case when it is not. >> >> This is my current set of patches: >> http://cr.openjdk.java.net/~smonteith/zgc/20190415/ >> >> It was built on tip from this morning. Meanwhile, I'll work on a patch >> for multi-map ZGC for comparison. >> >> BR, >> Stuart >> >> >> On Mon, 15 Apr 2019 at 16:33, Per Liden wrote: >>> >>> On 04/15/2019 05:25 PM, Andrew Haley wrote: >>>> On 4/15/19 3:57 PM, Stuart Monteith wrote: >>>>> If I understand this correctly, siginfo_t would contain the >>>>> faulting address with the tag wiped. The ucontext would still contain >>>>> the full 64-bit registers, unmolested. I've asked internally, but that >>>>> is how I've interpreted it. >>>> >>>> That sounds sensible. >>> >>> Also note that depending on what this oop is used for in the signal >>> handler, you might not need the tag bits (they typically are only useful >>> for ZGC). But if you really do need them, you can call >>> ZAddress::good(oop) to slap the bits on again. >>> >>> cheers, >>> Per From ci_notify at linaro.org Wed May 1 22:35:44 2019 From: ci_notify at linaro.org (ci_notify at linaro.org) Date: Wed, 1 May 2019 22:35:44 +0000 (UTC) Subject: [aarch64-port-dev ] JTREG, JCStress, SPECjbb2015 and Hadoop/Terasort results for OpenJDK JDK on AArch64 Message-ID: <596879010.16698.1556750145502.JavaMail.jenkins@a6c5c67cda76> This is a summary of the JTREG test results =========================================== The build and test results are cycled every 15 days. For detailed information on the test output please refer to: http://openjdk.linaro.org/jdkX/openjdk-jtreg-nightly-tests/summary/2019/121/summary.html ------------------------------------------------------------------------------- client-release/hotspot ------------------------------------------------------------------------------- Build 0: aarch64/2018/oct/15 pass: 5,780; fail: 19; not run: 90 ------------------------------------------------------------------------------- client-release/jdk ------------------------------------------------------------------------------- Build 0: aarch64/2018/oct/15 pass: 8,495; fail: 670; error: 23 ------------------------------------------------------------------------------- client-release/langtools ------------------------------------------------------------------------------- Build 0: aarch64/2018/oct/15 pass: 3,970; fail: 5 ------------------------------------------------------------------------------- release/hotspot ------------------------------------------------------------------------------- Build 0: aarch64/2019/mar/20 pass: 5,568; fail: 3; not run: 93 Build 1: aarch64/2019/mar/29 pass: 5,572; fail: 3; not run: 93 Build 2: aarch64/2019/apr/03 pass: 5,576; fail: 2; not run: 96 Build 3: aarch64/2019/apr/05 pass: 5,576; fail: 2; error: 1; not run: 96 Build 4: aarch64/2019/apr/08 pass: 5,577; fail: 2; not run: 96 Build 5: aarch64/2019/apr/10 pass: 5,577; fail: 5; error: 1; not run: 96 Build 6: aarch64/2019/apr/12 pass: 5,581; fail: 3; not run: 96 Build 7: aarch64/2019/apr/15 pass: 5,582; fail: 2; not run: 96 Build 8: aarch64/2019/apr/17 pass: 5,579; fail: 2; not run: 96 Build 9: aarch64/2019/apr/19 pass: 5,579; fail: 2; not run: 96 Build 10: aarch64/2019/apr/22 pass: 5,580; fail: 2; not run: 96 Build 11: aarch64/2019/apr/24 pass: 5,579; fail: 3; not run: 96 Build 12: aarch64/2019/apr/26 pass: 5,579; fail: 3; error: 1; not run: 96 Build 13: aarch64/2019/apr/29 pass: 5,601; fail: 2; not run: 96 Build 14: aarch64/2019/may/01 pass: 5,602; fail: 2; not run: 96 ------------------------------------------------------------------------------- release/jdk ------------------------------------------------------------------------------- Build 0: aarch64/2019/mar/20 pass: 8,513; fail: 522; error: 25 Build 1: aarch64/2019/mar/29 pass: 8,519; fail: 532; error: 22 Build 2: aarch64/2019/apr/03 pass: 8,523; fail: 530; error: 23 Build 3: aarch64/2019/apr/05 pass: 8,514; fail: 539; error: 28 Build 4: aarch64/2019/apr/08 pass: 8,513; fail: 540; error: 29 Build 5: aarch64/2019/apr/10 pass: 8,502; fail: 552; error: 30 Build 6: aarch64/2019/apr/12 pass: 8,525; fail: 530; error: 24 Build 7: aarch64/2019/apr/15 pass: 8,515; fail: 537; error: 27 Build 8: aarch64/2019/apr/17 pass: 8,543; fail: 524; error: 17 Build 9: aarch64/2019/apr/19 pass: 8,535; fail: 530; error: 19 Build 10: aarch64/2019/apr/22 pass: 8,533; fail: 526; error: 25 Build 11: aarch64/2019/apr/24 pass: 8,521; fail: 531; error: 28 Build 12: aarch64/2019/apr/26 pass: 8,521; fail: 531; error: 28 Build 13: aarch64/2019/apr/29 pass: 8,527; fail: 527; error: 26 Build 14: aarch64/2019/may/01 pass: 8,533; fail: 528; error: 21 3 fatal errors were detected; please follow the link above for more detail. ------------------------------------------------------------------------------- release/langtools ------------------------------------------------------------------------------- Build 0: aarch64/2019/mar/20 pass: 3,933 Build 1: aarch64/2019/mar/29 pass: 3,935 Build 2: aarch64/2019/apr/03 pass: 3,931 Build 3: aarch64/2019/apr/05 pass: 3,931 Build 4: aarch64/2019/apr/08 pass: 3,931 Build 5: aarch64/2019/apr/10 pass: 3,931 Build 6: aarch64/2019/apr/12 pass: 3,934 Build 7: aarch64/2019/apr/15 pass: 3,934 Build 8: aarch64/2019/apr/17 pass: 3,936 Build 9: aarch64/2019/apr/19 pass: 3,936 Build 10: aarch64/2019/apr/22 pass: 3,936 Build 11: aarch64/2019/apr/24 pass: 3,937 Build 12: aarch64/2019/apr/26 pass: 3,938 Build 13: aarch64/2019/apr/29 pass: 3,938 Build 14: aarch64/2019/may/01 pass: 3,939 ------------------------------------------------------------------------------- server-release/hotspot ------------------------------------------------------------------------------- Build 0: aarch64/2018/oct/15 pass: 5,787; fail: 18; not run: 90 ------------------------------------------------------------------------------- server-release/jdk ------------------------------------------------------------------------------- Build 0: aarch64/2018/oct/15 pass: 8,476; fail: 686; error: 27 ------------------------------------------------------------------------------- server-release/langtools ------------------------------------------------------------------------------- Build 0: aarch64/2018/oct/15 pass: 3,970; fail: 5 Previous results can be found here: http://openjdk.linaro.org/jdkX/openjdk-jtreg-nightly-tests/index.html SPECjbb2015 composite regression test completed =============================================== This test measures the relative performance of the server compiler running the SPECjbb2015 composite tests and compares the performance against the baseline performance of the server compiler taken on 2016-11-21. In accordance with [1], the SPECjbb2015 tests are run on a system which is not production ready and does not meet all the requirements for publishing compliant results. The numbers below shall be treated as non-compliant (nc) and are for experimental purposes only. Relative performance: Server max-jOPS (nc): 7.54x Relative performance: Server critical-jOPS (nc): 9.09x Details of the test setup and historical results may be found here: http://openjdk.linaro.org/jdkX/SPECjbb2015-results/ [1] http://www.spec.org/fairuse.html#Academic Regression test Hadoop-Terasort completed ========================================= This test measures the performance of the server and client compilers running Hadoop sorting a 1GB file using Terasort and compares the performance against the baseline performance of the Zero interpreter and against the baseline performance of the server compiler on 2014-04-01. Relative performance: Zero: 1.0, Server: 207.57 Server 207.57 / Server 2014-04-01 (71.00): 2.92x Details of the test setup and historical results may be found here: http://openjdk.linaro.org/jdkX/hadoop-terasort-benchmark-results/ This is a summary of the jcstress test results ============================================== The build and test results are cycled every 15 days. 2019-03-20 pass rate: 11560/11560, results: http://openjdk.linaro.org/jdkX/jcstress-nightly-runs/2019/079/results/ 2019-03-29 pass rate: 11560/11560, results: http://openjdk.linaro.org/jdkX/jcstress-nightly-runs/2019/088/results/ 2019-04-03 pass rate: 11560/11560, results: http://openjdk.linaro.org/jdkX/jcstress-nightly-runs/2019/093/results/ 2019-04-05 pass rate: 11560/11560, results: http://openjdk.linaro.org/jdkX/jcstress-nightly-runs/2019/095/results/ 2019-04-08 pass rate: 11560/11560, results: http://openjdk.linaro.org/jdkX/jcstress-nightly-runs/2019/098/results/ 2019-04-11 pass rate: 11559/11560, results: http://openjdk.linaro.org/jdkX/jcstress-nightly-runs/2019/100/results/ 2019-04-12 pass rate: 11560/11560, results: http://openjdk.linaro.org/jdkX/jcstress-nightly-runs/2019/102/results/ 2019-04-15 pass rate: 11560/11560, results: http://openjdk.linaro.org/jdkX/jcstress-nightly-runs/2019/105/results/ 2019-04-17 pass rate: 11559/11560, results: http://openjdk.linaro.org/jdkX/jcstress-nightly-runs/2019/107/results/ 2019-04-19 pass rate: 11560/11560, results: http://openjdk.linaro.org/jdkX/jcstress-nightly-runs/2019/109/results/ 2019-04-22 pass rate: 11560/11560, results: http://openjdk.linaro.org/jdkX/jcstress-nightly-runs/2019/112/results/ 2019-04-24 pass rate: 11558/11560, results: http://openjdk.linaro.org/jdkX/jcstress-nightly-runs/2019/114/results/ 2019-04-26 pass rate: 11560/11560, results: http://openjdk.linaro.org/jdkX/jcstress-nightly-runs/2019/116/results/ 2019-04-29 pass rate: 11560/11560, results: http://openjdk.linaro.org/jdkX/jcstress-nightly-runs/2019/119/results/ 2019-05-01 pass rate: 11559/11559, results: http://openjdk.linaro.org/jdkX/jcstress-nightly-runs/2019/121/results/ For detailed information on the test output please refer to: http://openjdk.linaro.org/jdkX/jcstress-nightly-runs/ From derekw at marvell.com Thu May 2 01:10:32 2019 From: derekw at marvell.com (Derek White) Date: Thu, 2 May 2019 01:10:32 +0000 Subject: [aarch64-port-dev ] [AARCH64] Proposal for tracking features, enhancements, and bugs for JDK 13 release Message-ID: Hi folks, This is a proposal to help us track the aarch64 work that we?d like to go into the next JDK release [1]. This can avoid duplicate effort, duplicate tracking, and duplicate worry. I?ve talked to several folks at Oracle to come up with a process to use JBS (JDK Bug System) [2] to track without getting in Oracle?s way. ----------------------------------------------------------------------------------------------------------------------------------------------- GENERAL ISSUE TRACKING We should have everything we want to work on in the aarch64 port entered into JBS as bugs, enhancements, tasks (e.g. ?test this on aarch64?), etc. All aarch64 issues should have , and