From Tom.Marble at Sun.COM Sun May 20 13:25:42 2007 From: Tom.Marble at Sun.COM (Tom Marble) Date: Sun, 20 May 2007 15:25:42 -0500 Subject: test of new Gmane migration Message-ID: <4650AEC6.7010707@sun.com> All: Please ignore this test message whose purpose is to confirm that the Gmane gateway has been migrated from the old list to the new list. --Tom From Peter.Kessler at Sun.COM Sun May 27 13:26:47 2007 From: Peter.Kessler at Sun.COM (Peter B. Kessler) Date: Sun, 27 May 2007 13:26:47 -0700 Subject: JIT threshold, priority queue In-Reply-To: References: Message-ID: <4659E987.6030507@Sun.COM> This question is about the HotSpot runtime compilers, not about the HotSpot runtime libraries. I've cc'd hotspot-compiler-dev at openjdk.java.net who should be able to help you. I don't know much about the runtime compilation policy, but I do know that the compiler folks wish they could _delay_ compilation, so they get better statistics about the code they are compiling. ... peter Nima Gougol wrote: > Hello everybody. Here I am trying to optimize Hotspot JDK 7. You guys > know hotspot schedule hot methods whose usage frequency is higher than a > fixed threshold through a FIFO queue for Just-In-Time compilation. I am > trying to enhance this method with dynamic threshold and priority > queues. I have already done some modifications. I have two problems. > First, I need to trace the queue of methods that are scheduled for JIT > compilations and see and compare my new policy with the default. How can > I trace and log methods that are queue for JIT compilation? > > Second, I am trying to add to constants in through the file, > src/share/vm/opto/c2_globals.hpp in order to use in my implementations > for instance in file src/share/vm/oops/methodOop.hpp. But while making > the hotpsot, compiler produce error that these identifiers are not > defined. I think this is due to my way of building. Please let me know > how I should add these identifiers and build hotspot. > > product(intx, CICompilerQueueType, 1, \ > "Compiler Queue Algorithm to > use") \ > > \ > product(intx, PairQueueLength, > 10, \ > "Max Length of Pair > Queue") \ > > Best Regards, > > Nima R. Gougol -- NOTICE: This email message is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message. From nima.gougol at gmail.com Sun May 27 18:33:08 2007 From: nima.gougol at gmail.com (Nima Gougol) Date: Sun, 27 May 2007 18:33:08 -0700 Subject: JIT threshold, priority queue In-Reply-To: <4659E987.6030507@Sun.COM> References: <4659E987.6030507@Sun.COM> Message-ID: Thanks Peter for your directions and suggestions. I hope compiler folks get back to me pretty soon. I already have some ideas to adjust compilation time. My main question is , for now , how to collect statistics and compare performances of different approaches? By the way, I am using IBM Ashes benchmarks on Solaris x86. I wish I had SPECs benchmarks but they are a little expensive. Which benchmarking applications and methods would you guys suggest? Best Nima R. Gougol On 5/27/07, Peter B. Kessler wrote: > > This question is about the HotSpot runtime compilers, not about > the HotSpot runtime libraries. I've cc'd > > hotspot-compiler-dev at openjdk.java.net > > who should be able to help you. I don't know much about the > runtime compilation policy, but I do know that the compiler > folks wish they could _delay_ compilation, so they get better > statistics about the code they are compiling. > > ... peter > > Nima Gougol wrote: > > Hello everybody. Here I am trying to optimize Hotspot JDK 7. You guys > > know hotspot schedule hot methods whose usage frequency is higher than a > > fixed threshold through a FIFO queue for Just-In-Time compilation. I am > > trying to enhance this method with dynamic threshold and priority > > queues. I have already done some modifications. I have two problems. > > First, I need to trace the queue of methods that are scheduled for JIT > > compilations and see and compare my new policy with the default. How can > > I trace and log methods that are queue for JIT compilation? > > > > Second, I am trying to add to constants in through the file, > > src/share/vm/opto/c2_globals.hpp in order to use in my implementations > > for instance in file src/share/vm/oops/methodOop.hpp. But while making > > the hotpsot, compiler produce error that these identifiers are not > > defined. I think this is due to my way of building. Please let me know > > how I should add these identifiers and build hotspot. > > > > product(intx, CICompilerQueueType, > 1, \ > > "Compiler Queue Algorithm to > > use") \ > > > > \ > > product(intx, PairQueueLength, > > 10, \ > > "Max Length of Pair > > Queue") \ > > > > Best Regards, > > > > Nima R. Gougol > > > -- > NOTICE: This email message is for the sole use of the intended > recipient(s) and may contain confidential and privileged information. > Any unauthorized review, use, disclosure or distribution is prohibited. > If you are not the intended recipient, please contact the sender by > reply email and destroy all copies of the original message. > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20070527/62cc0657/attachment.html From simon.hammond at gmail.com Mon May 28 13:23:19 2007 From: simon.hammond at gmail.com (Si Hammond) Date: Mon, 28 May 2007 21:23:19 +0100 Subject: JIT threshold, priority queue In-Reply-To: References: <4659E987.6030507@Sun.COM> Message-ID: <6051D4CD-047F-4778-820B-EE1E0E8F01B7@gmail.com> On 28 May 2007, at 02:33, Nima Gougol wrote: > Thanks Peter for your directions and suggestions. I hope compiler > folks get back to me pretty soon. I already have some ideas to > adjust compilation time. My main question is , for now , how to > collect statistics and compare performances of different > approaches? By the way, I am using IBM Ashes benchmarks on Solaris > x86. I wish I had SPECs benchmarks but they are a little expensive. > Which benchmarking applications and methods would you guys suggest? In some of our research we have used the SciMark 2.0 benchmarks (for Java). They're relatively simple code so its easier to get an understanding of what's actually happening when the code is run. I'm sure there are many others too. Si Hammond Postgraduate - PhD, High Peformance Systems Group, University of Warwick, UK simon.hammond at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20070528/8c08e7ed/attachment.html From Steve.Goldman at Sun.COM Tue May 29 05:47:09 2007 From: Steve.Goldman at Sun.COM (steve goldman) Date: Tue, 29 May 2007 08:47:09 -0400 Subject: JIT threshold, priority queue In-Reply-To: References: Message-ID: <465C20CD.3020107@sun.com> Nima Gougol wrote: > Hello everybody. Here I am trying to optimize Hotspot JDK 7. You guys know > hotspot schedule hot methods whose usage frequency is higher than a fixed > threshold through a FIFO queue for Just-In-Time compilation. I am trying to > enhance this method with dynamic threshold and priority queues. I have > already done some modifications. I have two problems. > First, I need to trace the queue of methods that are scheduled for JIT > compilations and see and compare my new policy with the default. How can I > trace and log methods that are queue for JIT compilation? -XX:+UnlockDiagnosticVMOptions -XX:+LogCompilation this will give way more output than you want but it will show when methods a queued and the time stamp and it will also show when they are compiled and installed. > > Second, I am trying to add to constants in through the file, > src/share/vm/opto/c2_globals.hpp in order to use in my implementations for > instance in file src/share/vm/oops/methodOop.hpp. But while making the > hotpsot, compiler produce error that these identifiers are not defined. I > think this is due to my way of building. Please let me know how I should > add > these identifiers and build hotspot. > > product(intx, CICompilerQueueType, 1, \ > "Compiler Queue Algorithm to use") > \ > > \ > product(intx, PairQueueLength, 10, > \ > "Max Length of Pair Queue") > \ that's the correct of adding a global switch for server only code. Are you build client when you get the errors? If you need it for both compilers you probably want to put these in globals.hpp Be aware that the counter and triggers in addition to the compile queue handling is likely to be changing relatively soon in order to accomodate the needs of tiered compilation. Because of how the current counters are used to both collect statistics and trigger compilations (plus the decaying to make them look like rates) it has been hard to get tiered to do what I want. So that triggering mechanism is being pulled apart from the statistics. -- Steve From Thomas.Rodriguez at Sun.COM Wed May 30 19:30:40 2007 From: Thomas.Rodriguez at Sun.COM (Tom Rodriguez) Date: Wed, 30 May 2007 19:30:40 -0700 Subject: JIT threshold, priority queue In-Reply-To: References: <4659E987.6030507@Sun.COM> Message-ID: <465E3350.9070205@sun.com> Measuring performance improvements from using a priority queue instead of a fifo might be hard. Only when the queue is backed up will it behave differently and that's generally a transient state so the most likely effect of this would be better startup or faster warmup of an application. Internally we use apps like NetBeans, JEdit and LimeWire for startup testing so maybe you could try looking at one of them. As Steve mentioned, the LogCompilation output includes events for compile requests being placed in the compile queue and for the creation of the actual nmethod which should allow you to track any differences. Look for the task_queued and nmethod entries in the log to find the event timestamps. tom Nima Gougol wrote: > Thanks Peter for your directions and suggestions. I hope compiler folks > get back to me pretty soon. I already have some ideas to adjust > compilation time. My main question is , for now , how to collect > statistics and compare performances of different approaches? By the way, > I am using IBM Ashes benchmarks on Solaris x86. I wish I had SPECs > benchmarks but they are a little expensive. Which benchmarking > applications and methods would you guys suggest? > > Best > > Nima R. Gougol > > On 5/27/07, *Peter B. Kessler* > wrote: > > This question is about the HotSpot runtime compilers, not about > the HotSpot runtime libraries. I've cc'd > > hotspot-compiler-dev at openjdk.java.net > > > who should be able to help you. I don't know much about the > runtime compilation policy, but I do know that the compiler > folks wish they could _delay_ compilation, so they get better > statistics about the code they are compiling. > > ... peter > > Nima Gougol wrote: > > Hello everybody. Here I am trying to optimize Hotspot JDK 7. You guys > > know hotspot schedule hot methods whose usage frequency is higher > than a > > fixed threshold through a FIFO queue for Just-In-Time > compilation. I am > > trying to enhance this method with dynamic threshold and priority > > queues. I have already done some modifications. I have two problems. > > First, I need to trace the queue of methods that are scheduled > for JIT > > compilations and see and compare my new policy with the default. > How can > > I trace and log methods that are queue for JIT compilation? > > > > Second, I am trying to add to constants in through the file, > > src/share/vm/opto/c2_globals.hpp in order to use in my > implementations > > for instance in file src/share/vm/oops/methodOop.hpp. But while > making > > the hotpsot, compiler produce error that these identifiers are not > > defined. I think this is due to my way of building. Please let me > know > > how I should add these identifiers and build hotspot. > > > > product(intx, CICompilerQueueType, > 1, \ > > "Compiler Queue Algorithm to > > use") \ > > > > \ > > product(intx, PairQueueLength, > > 10, \ > > "Max Length of Pair > > Queue") \ > > > > Best Regards, > > > > Nima R. Gougol > > > -- > NOTICE: This email message is for the sole use of the intended > recipient(s) and may contain confidential and privileged information. > Any unauthorized review, use, disclosure or distribution is prohibited. > If you are not the intended recipient, please contact the sender by > reply email and destroy all copies of the original message. > >