Java Real-Time System HotSpot(TM) Client VM warning: unable to lock pages i
Error:
Java Real-Time System HotSpot(TM) Client VM warning: unable to lock pages into memory
I'm getting this error, although I have assigned all the needed privilegs to root and I am logged in as root. I have done everything described in the guidelines to get the privilegs, but still this warning occurs.
But my application still works completely with no appreciable differences.
So my question is: Does this warning affect the performance of my application?? Or can I live with this warning?
Gordon
Determinism is an important issue in my application. That's why page locking should be active in my application. When I'm determining the ScopedMemory size via VM like:
... -XX:ScopedSize=500000000 ...Then page locking works with a size of 500 mb very well. But when I try to set the ScopedSize value to 1 gb, then the exception (unable to lock page...) is thrown. So it seems as if I had all the required rights, but the huge size is not supported.
The System has about 6 gb of DDR2Ram and minimum 5 gb are free during starting the VM. So are there any other parameters except ScopedSize that I can change, to allow the VM to lock memory with a size of about 1 gb? Or where is the problem with locking such big sizes?
Thanks,
Gordon
Similar Messages
-
Where to find Java Real-Time System Evaluation
Hello,
I tried to download an evaluation version of the Java Real-Time System from this page: http://www.oracle.com/technetwork/java/javase/tech/rts-142899.html
But, when i try to download the "Java RTS 2.2 - Academic Developer Use" for Linux x86 32bit, i get the following message: "The Java Real-Time System evaluation program is closed at this time."
Is the evaluation program expired? Where could i find an evaluation version of JRTS?
Thank you all for your attention,
Greetings.
AndreaDeterminism is an important issue in my application. That's why page locking should be active in my application. When I'm determining the ScopedMemory size via VM like:
... -XX:ScopedSize=500000000 ...Then page locking works with a size of 500 mb very well. But when I try to set the ScopedSize value to 1 gb, then the exception (unable to lock page...) is thrown. So it seems as if I had all the required rights, but the huge size is not supported.
The System has about 6 gb of DDR2Ram and minimum 5 gb are free during starting the VM. So are there any other parameters except ScopedSize that I can change, to allow the VM to lock memory with a size of about 1 gb? Or where is the problem with locking such big sizes?
Thanks,
Gordon -
Java Real time system poor inline performance
I am looking at the performance of 1.5.0_16 and Java RTS 2.1
I'm seeing some very big difference I suspect is due to inlining, but here is one concrete example:
import java.util.Random;
public class DoubleToFloatBenchmark {
private static final int INNER_LOOP = 10000;
private static final int OUTER_LOOP = 1000;
public static void main(String[] args) throws InterruptedException {
Random random = new Random(0);
double[] values = new double[INNER_LOOP];
long[] results = new long[INNER_LOOP];
for (int i = 0; i < values.length; i++) {
values[i] = random.nextDouble();
test(values, results);
test(values, results);
test(values, results);
test(values, results);
test(values, results);
private static void test(double[] values, long[] results) throws InterruptedException {
long time = Long.MAX_VALUE;
for (int i = 0; i < OUTER_LOOP; i++) {
long start = System.nanoTime();
for (int j = 0; j < INNER_LOOP; j++) {
results[i] = Double.doubleToLongBits(values);
long end = System.nanoTime();
time = Math.min(time, end - start);
System.out.format("time= %-,3.3fns\n", 1.0 * time / INNER_LOOP);
Runtime.getRuntime().gc();
Thread.sleep(10);
Here is the output:bash-3.00$ java -cp . DoubleToFloatBenchmark
time= 7.345ns
time= 5.196ns
time= 0.108ns
time= 0.108ns
time= 0.108ns
bash-3.00$ /opt/SUNWrtjv/bin/java -cp . DoubleToFloatBenchmark
time= 41.243ns
time= 41.297ns
time= 41.295ns
time= 41.293ns
time= 41.292ns
Any ideas on how to speed the RTJ version up. Its 400 times slower.Mak,
What you are seeing are the effects of the hotspot server compiler versus the client compiler. Java RTS only supports the client compiler (even if you use -server you get -client). The server compiler can perform very aggressive optimizations, compared to the client compiler, because if it makes a wrong assumption it stops-the-world, deoptimizes things, recompiles them the right way (perhaps immediately, or perhaps leaving it for later dynamic compilation) and continues on its way. The client compiler is much less sophisticated and does not do these aggressive optimizations. For Java RTS the server compiler's mode of operation would completely kill predictability, so deopt can not be allowed and so the aggressive optimizations are also not allowed.
Here are the results I get for client, server and then JRTS:
# /mirrors/j2se-mirrors/5.0u17/solaris-i586/bin/java -client DoubleToFloatBenchmark
time= 66.503ns
time= 65.146ns
time= 65.146ns
time= 65.146ns
time= 65.146ns
# /mirrors/j2se-mirrors/5.0u17/solaris-i586/bin/java -server DoubleToFloatBenchmark
time= 10.850ns
time= 7.711ns
time= 0.140ns
time= 0.139ns
time= 0.139ns
# rtj DoubleToFloatBenchmark
time= 74.191ns
time= 74.190ns
time= 73.739ns
time= 73.739ns
time= 73.739nsThis is the sort of results I'd expect to see. JRTS is approx 13% slower than J2SE client.
Looking at your example, this is a classic problem with micro-benchmarking - see Cliff Click's "famous" JavaOne 2002 talk on "How not to write a microbenchmark":
http://www.azulsystems.com/events/javaone_2002/microbenchmarks.pdf
There are numerous similar articles following up on that showing how easy it is for the server compiler to throw away the precious code you are so desperately trying to measure the performance of. It's a real eye-opener. See Brian Goetz's article: http://www.ibm.com/developerworks/java/library/j-jtp02225.html
In this code in your example:
for (int j = 0; j < INNER_LOOP; j++) {
results[i] = Double.doubleToLongBits(values);
the inner loop can be removed completely because the computation in the loop is independent of the loop variable j. (I'm not sure if that was intentional?)
So let's manually delete that inner loop and see what we get (and stop dividing by INNER_LOOP). Here's the results again for client, server and jrts:# /mirrors/j2se-mirrors/5.0u17/solaris-i586/bin/java -client DoubleToFloatBenchmark
time= 449.000ns
time= 450.000ns
time= 317.000ns
time= 308.000ns
time= 316.000ns
# /mirrors/j2se-mirrors/5.0u17/solaris-i586/bin/java -server DoubleToFloatBenchmark
time= 455.000ns
time= 455.000ns
time= 452.000ns
time= 455.000ns
time= 452.000ns
# rtj DoubleToFloatBenchmark time= 506.000ns
time= 506.000ns
time= 503.000ns
time= 340.000ns
time= 340.000ns
Oh my gosh! JRTS and client become faster than server! ;-) But what are we now measuring ... ?
I hope this clarifies things.
David Holmes
Edited by: davidholmes on Dec 11, 2008 10:08 AM Added link to Brian Goetz's article. -
Java 2 JRE 1.3.1 Install - Java HotSpot(TM) Client VM warning:
I have downloaded and successfully installed the J2RE 1.3.1 on our SUN Box. However when I execute java -version, I get the following error reported:
===================================================================
Java HotSpot(TM) Client VM warning: Cannot recognize SPARC version (0x9). Default to V9
Illegal Instruction
===================================================================
My current configuration is as follows:
- I have mounted a drive on our SUN Solaris 2.7 box to another SUN Solaris 2.6 box that has more space. This is where the JRE is actually installed.
- I have remodified the /usr/java soft link to be linked to the drive above:
java -> ../opt/j2re1_3_1_03
- I have the following environment variables defined:
CLASSPATH=.:/usr/java/lib/rt.jar
JAVA_HOME=/usr/java
PATH=/usr/java/bin: (etc, etc...)
What else am I missing? I have attempted to install the j2sdk as well but get the same error. So it must be something basic that is not there. I apologize if this has been addressed before, however, I have searched here and Google to no avail.
Thanks for your help in advance!The Installation Notes show the following System Requirements:
=======================================================
System Requirements
The JavaTM 2 Runtime Environment, Standard Edition, v. 1.3.1 is intended for use on Solaris 2.6, Solaris 7, and Solaris 8 operating environments.
=======================================================
So, I'm thinking that the OS is ok.
Another side note:
I have installed all the Required patches as found on the following web page: http://java.sun.com/j2se/1.3/install-solaris-patches.html#2.7
Keep those ideas comin'!!!! -
Hello
I have a VeriStand-Project (VSP) created with my Laptop-Host (LTH) which works with my PXI, while
deploying it from my LTH. Then I have installed the whole NI enviroment for PXI and VeriStand use on a
industrial PC (iPC). I have tried to deploy my VSP from the iPC to the PXI but the following error
message arose on my iPC:
The VeriStand Gateway encountered an error while deploying the System Definition file.
Details: Error -1074384569 occurred at Project Window.lvlibroject Window.vi >> Project
Window.lvlib:Command Loop.vi >> NI_VS Workspace ExecutionAPI.lvlib:NI VeriStand - Connect to System.vi
Possible reason(s):
NI-XNET: (Hex 0xBFF63147) The database information on the real-time system has been created with an
older NI-XNET version. This version is no longer supported. To correct this error, re-deploy your
database to the real-time system. ========================= NI VeriStand: NI VeriStand
Engine.lvlib:VeriStand Engine Wrapper (RT).vi >> NI VeriStand Engine.lvlib:VeriStand Engine.vi >> NI
VeriStand Engine.lvlib:VeriStand Engine State Machine.vi >> NI VeriStand Engine.lvlib:Initialize
Inline Custom Devices.vi >> Custom Devices Storage.lvlib:Initialize Device (HW Interface).vi
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * • Unloading System
Definition file... • Connection with target Controller has been lost.
The software versions of the NI products (MAX/My System/Software) between my LTH and the iPC are
almost the same. The only differences are:
1. LabView Run-Time 2009 SP1 (64-bit); is installed on LTH but missing on iPC. The iPC has a 32-bit system.
2. LabView Run-Time 2012 f3; is installed on LTH but missing on iPC.
3. NI-DAQmx ADE Support 9.3.5; something strage on the LTH, because normally I am using NI-DAQmx 9.5.5 and all other DAQmx products on my LTH are 9.5.5. That means NI-DAQmx Device Driver 9.5.5 and NI-DAQmx Configuration 9.5.5.. On the iPC side all three products are 9.5.5.. That means NI-DAQmx ADE Support 9.5.5, NI-DAQmx Device Driver 9.5.5 and NI-DAQmx Configuration 9.5.5..
4. Traditional NI-DAQ 7.4.4; The iPC has this SW installed. On the LTH this SW is missing.
In order to fix this problem I have formatted my PXI and I have installed the following SW from the iPC:
1. LabVIEW Real-Time 11.0.1
2. NI-488.2 RT 3.0.0
3. NI_CAN 2.7.3
Unfortunately the above stated problem still arose.
What can I do to fix this problem?
I found a hint on http://www.labviewforum.de/Thread-XNET-CAN-die-ersten-Gehversuche.
There it is written to deploy the dbc file againt.
If this is a good hint, so how do I deploy a dbc file?
I would feel very pleased if somebody could help me! :-)
Best regards
Lukas NowakHi Lukas,
I think the problem is caused by differenet drivers for the CAN communication.
NI provides two driver for CAN: NI-CAN and NI-XNET.
NI-CAN is the outdated driver which is not longer used by new hardware. NI replaced the NI-CAN driver with NI-XNET some years ago, which supports CAN, LIN and the FLEXRAY communication protocol.
You wrote:
In order to fix this problem I have formatted my PXI and I have installed the following SW from the iPC:
3. NI_CAN 2.7.3
NI CAN is the outdated driver. I think that you should try to install NI-XNET instead of NI-CAN on your PXI-System, to get rid of the error message.
Regards, stephan -
Help needed in getting real time system performance monitor
Hi,
I need a real time system performance monitor for my solaris.
i am able to graph system usage graph on a daily/weely basis using the ksar grapher.
In the same way i need to capture the system utilisation real time to be viewed on a webpage. Please let me know if there are any free tool/scripts capable of doing it.Hi,
Process Chain Errors
/people/mona.kapur/blog/2008/01/14/process-chain-errors
Common Process chain errors
For Data Load Errors check this blog:
/people/siegfried.szameitat/blog/2005/07/28/data-load-errors--basic-checks
Implementation issues
Lifecycle Implementation
http://help.sap.com/bp_biv170/documentation/SolutionScope_EN.doc
http://help.sap.com/bp_biv235/BI_EN/documentation/BWProjectPlan_EN.mpp
Hope this helps.
Thanks,
JituK -
How can I save/write data on the hard disc of the Real-Time System?
I would like to acquire huge size of data via LabView Real-Time System.
Since data is so huge, I am now thinking that it might be good idea to
write/save data on the hard disc of the Real-Time System first and then
transfer the data file to a data processing PC using FTP etc.
If you know how to save/write data on the hard disc of the Real-Time System
(Ver. 7.1), please let me know.
Thanks,Just to add to Aitortxo's good answer,
Since you have only one Drive ( C:\) on your RT, just keep monitering the availible disc space.
After every few set of file writes keep transferring Backups delete these files, so that you keep C:\ drive space for running your applications.
Regards -
Is there support for the AC-1000 target real-time system?
Hi,
Is NI supporting the AC-1000 target real-time system? We've used MatrixX, SysBld, Autocode, and Realsim to compile, link, download, and run various control models on the target real-time system for interfacing with hardware. The AC-1000 has 2-3 processors running a pSOS Operating System, multiple I/O boards, and a MIL-STD-1553 bus. It's connected to an NT workstation via a LAN and a serial cable.
So, any information regarding support and maintenance would be very helpful. Thank you for your time!
Take care,
Chris Holmes
Senior Modelling and Simulation Engineer
United Defense, L.P.Although NI acquired MATRIXx, we did not acquire the RealSim hardware (AC-1000, AC-104, and PCI-Pro). Wind River retains the ownership of the hardware but is not supporting the product line. Wind River has made available the attached parts list for the RealSim hardware so that customers can self-service existing systems.
NI doesn't plan to develop or support RealSim - and is directing customers who wish to continue to use this software/hardware to 3rd parties. The following NI Alliance members can provide RealSim support.
iControl: www.icontrol-inc.com
ADI: www.adi.com
OPAL-RT: www.opal-rt.com
NI plans to make it easy for customers to target NI hardware, including real-time PXI, with MATRIXx in the future. For information on P
XI, please refer to the PXI section of the ni.com site at ni.com/pxi.
Ash Razdan
National Instruments
[email protected]
Attachments:
AC-104_Parts_List.xls 36 KB
AC-1000_Parts_List.xls 37 KB
PCI-Pro_Parts_list.xls 37 KB -
SetAsyncTimerAttribute ASYNC_ATTR_INTERVAL fails to reset timer on Real-time system
The interval timer does not get reset when using a timer created in a real-time program (PXI chassis using NewAsyncTimerWithPriority). It works correctly on a non real-time system (Windows 7 Laptop using NewAsyncTimer).
Example of problem:
timer is set to 20 seconds (NewAsyncTimerWithPriority)
wait 15 seconds
timer interval is set to 30 seconds (SetAsyncTimerAttribute ASYNC_ATTR_INTERVAL)
timer fires 5 seconds later instead of 30 seconds
GetAsyncTimerAttribute returns the correct value as if it worked properly. Note that the timer fires every 30 seconds after the early firing in step 4. It appears that changing the interval on a real-time system does not reset the timer as stated in the help file "If the timer has already started, setting ASYNC_ATTR_INTERVAL resets the timer."
Am I doing something wrong? Has anyone seen this problem?
Using: LabWindows/CVI 2012, Real-time module 2012.
Also installed: LabView 2012, Real-time module 2012, FPGA module 2012.
Thanks.Hi Moxcoak,
You are right this is a known issue, the async timer does not reset properly in a RT system from CVI. We have already filed a bug report on it (#387902) and I will add your service request to that corrective action report to hopefully push it to be resolved faster. Meanwhile, I will try to find the best workaround for you. One option is to set a flag with the communication thread and check it with another asynchronous thread. I will get back to you with the details on how to implement that, but it would depend on your setup.
Regards,
Basil Beirouti
Applications Engineering
National Instruments
Regards,
Basil
Applications Engineering
National Instruments -
Using wireless network with Real-Time system
Hi,
Has anyone tried to run a LabVIEW real time system communicating over a wireless network instead of wired Ethernet? Thanks.I would think that all you need to do is hook it up to a wireless access point and the system - whatever it is - wouldn't even know it was hooked up wirelessly...
Bill
(Mid-Level minion.)
My support system ensures that I don't look totally incompetent.
Proud to say that I've progressed beyond knowing just enough to be dangerous. I now know enough to know that I have no clue about anything at all. -
How to stop a thread in java 5 for a real-time system??
Hi,
In Java 5, thread.stop is deprecated. We need to modify some variable to indicate that the target thread should stop running. "The target thread should check this variable regularly........"
We are currently developing a simple real-time operating system using the basic features of java. It is running on top of SunSPOT (JAVA5). My question is I need to stop a thread in a scheduler loop of a real-time operating system. We cannot check it regularly. Otherwise it is not a real-time operating system.Is there anyway else to do this?
Thanks,
QingThat's rather hard to answer. You say you are writing in Java, but you're writing an OS. BUt what's executing the Java - you need a VM of some form. Is that a real-time or non-real-time VM? How it does things ultimately controls how effectively you can do what you are trying to do.
The simple answer is that Thread.stop() is deprecated and that it will not stop a thread in all situations anyway - eg trying to acquire a monitor lock. But all Thread.stop does is make an exception pending on the thread, and as the thread executes it polls to see if there is an exception pending. When this happens depends on the VM: it might be after every bytecode; it might be when the thread transitions states (eg thread-in-java, thread-in-vm, thread-in-native) - it all depends. But it is polling - just the same as checking that variable - it's just implicit in the VM rather than explicitly in your code.**
The RTSJ adds a new form of asynchronous termination requests through the AsynchronouslyInterruptedException (AIE). But it only affects code that explicitly declares that it expects AIE to occur, and there are also deferred sections where the AIE will remain pending. Writing code that can handle AIE is very difficult because the normal Java rules are "bent" and finally blocks do not get executed inside AIE-enabled code.
So as I said this is very hard to answer, it really depends what exactly you are running on and what you are trying to achieve.
** Note: some people used bytecode rewriting tools to add this kind of polling as a post-processing step. Perhaps that is something you might be able to do too.
David Holmes -
Hi David,
my question for now is very general.
can we use jmx with jrts???
GabiHi Gabi,
Some additional information:
- JavaRTS does support the JMX protocol
- JavaRTS supports most of the monitoring & management functionalities provided
by HotSpot MBeans
- some functionalities are disabled by default because they would create jitter (like
getting the stack trace of java threads). Default can be changed through the
realtime.debug MBean)
- JavaRTS comes with a few additional realtime specific monitoring beans.
Note that JMX relies on threads to do its work. These threads are not real-time.
Hence, if the realtime threads (including the RTGC) are consumming all the CPU,
you may not be able to call MBeans to see what is happening and take corrective actions.
Bertrand. -
VI Server in the real time target and Vi client under the local computer
Hi,
In my project i want to make a data communication between a vi server which is runnig in the real time target and a vi client runs under the local computer (My Computer target).
My problem is when i Click the property terminal of the property node function (located on the Functions>>All Functions>>
Application Control palette) , i don't find the front panel open option from the shortcut menu.
Thanks.The Front Panel options are methods. Try dropping an Invoke Node down instead of a Property Node.
Applications Engineer
National Instruments -
How can I control external MIDI devices from my PXI Real-time system?
I am trying to implement a psychoacoustic experiment using an external MIDI device that can be used to shift the pitch of a speaker's voice.
I have a 8176 controller in a 1002 chasis with the 6052E IO card. I would very much prefer to run the system in real-time mode (rather than win XP), and need to control the MIDI device through one of the interfaces on the controller.
Any suggestions?
Thanks in advance,
FrenkHi Frenk,
one way would be an analogue to MIDI converter.
There are some out there (ask for music equipment)which can convert an analogue signal to some MIDI controller signal. This way you could control the pitch shift with an analogue output of the 6052 in realtime.
Hope this helps
Regards
Stephan -
Are there any examples for using a CAN card via XNET on a real time system?
I am programming a real time application and I have a PXI 8512 card. My first order of business is to get 5-byte messages from transducers that are broadcasting at 10 Hz on known message IDs. There are no CAN/XNET samples in my "realtime" CVI sample folder. I have found some in the nixnet folder but they are Windows based so I have to hack a lot of stuff out of them.
Thank you.
Michael Chadwell
Department of Engine and Vehicle R&D
Southwest Research InstituteIn other words, I just need to do something very similar to this with no user interface:
NOTE: See attachment
Michael Chadwell
Department of Engine and Vehicle R&D
Southwest Research Institute
Attachments:
CAN Bus Monitor.jpg 83 KB
Maybe you are looking for
-
"There is no application set to open the document :Flash Player.Plugin"
/Library/Internet Plug-Ins (Disabled) Yikes! What shall I do?
-
Printer no longer works - Lexmark Z2420
I have a Lexmark model Z2420 printer. I have had this printer for several years. It is set up on my Wifi network, and has always worked fine. I printed some pages with it about a week ago. Last night it stopped working for no reason. Shows up as offl
-
I have a jpf and web service using a Tuxedo control. In some situations, the reference to var of the tuxedo control is set tu null in the JPF . The reference to the same control in the WS is working OK. Any help will be welcome
-
Dear friends we have ordered PRIME-NCS-APL-K9 (PI-APL-IMAGE-2.0) and R-L-PI2X-U-K9 (Upgrade from Cisco LMS to Cisco Prime Infrastructure 2.x) I have doubt NCS is for wireless controller but how can we add LMS to this server ? Also explain me step by
-
I am trying to start a movie and it will not start. The message is, "an error occurred loading this content". Has anyone had this message before? Any solution?