Re: network sockets unusable?

  • From: Doug Simon <Doug.Simon@Sun.COM>
  • To: users@maxine.kenai.com
  • Subject: Re: network sockets unusable?
  • Date: Sun, 31 Jan 2010 18:13:31 -0800


On Jan 30, 2010, at 10:26 PM, Johannes Eickhold wrote:

> Am Freitag, den 29.01.2010, 14:53 -0800 schrieb Doug Simon:
> 
> Hi Doug.
> 
>> Judging by the jvm.c line number in the error message, it appears as
>> though you are not using the latest version of Maxine. I suggest
>> updating from the main repository
> 
> Indeed I didn't update my workspace. Fixed.
> 
> Now I get another error when the native method
> 
> [Thread "main" --> JNI: java.net.PlainSocketImpl.initProto()]
> 
> is executed:
> 
> unimplemented (JVM_GetSockName in ../../../substrate/jvm.c:1948)
> 
> As I have seen in some of the talks about Maxine, you run TCK and other
> kinds of tests internally on Maxine. Do you have a list that shows which
> functionality from Java's class library is not usable because specific
> JVM_* methods are missing? I guess that would be at least everything
> which uses native methods that contain calls to back to the JVM
> interface like in my socket example.

The best (and currently only) way to determine how much of the JVM_* 
interface is implemented in Maxine is to look in the Native/substrate/jvm.c 
source file. The functions currently implemented are those necessary to run 
the programs and benchmarks we've focused on over the life of the project. 
Even then, there is unfortunately some inconsistency across the platforms in 
terms of what's supported. For example, the JVM_GetSockName you mention is 
implemented for Solaris but not for Linux. In this case, it should simply be 
a matter of modifying the #if macro in the function body. However for a few 
functions, the corresponding functionality in the VM has not (yet) been 
implemented. Apart from these, it should be fairly trivial to complete the 
implementation of the remaining functions. It just hasn't been a high 
priority yet. If you decide to implement the missing functionality for the 
programs you are trying to run and run into problems, be sure to let me know.

> I found this posts http://tinyurl.com/yf8v7jw and
> http://tinyurl.com/yc7cgu3 that explain nicely how different open source
> VMs (and class libraries) implement and use the JVM interface. Is there
> some similar documentation available for Maxine?

Apart from the aforementioned jvm.c file, not really.

> I also would like to know if there exist documentation on the schemes
> which make Maxine modular as you mention in Maxine's FAQ. I want to get
> an idea of how I can use the schemes to plug in something else. 

Once again, browsing the code is the only answer for now. The schemes 
currently supported by the VM correspond the fields in VMConfiguration.java 
of a type implementing VMScheme. All of these fields adhere to a "...Scheme" 
naming convention (e,g. layoutScheme). The +XX:+PrintConfiguration VM option 
can be used to see what specific implementation is configured for each scheme 
in a VM instance. E.g.:

% max vm -XX:+PrintConfiguration
  Build level: PRODUCT
  Platform: darwin-amd64, isa=AMD64, 64-bit, little endian, 64-byte aligned 
cache, page size=4096
  Grip scheme: com.sun.max.vm.grip.direct.DirectGripScheme
  Reference scheme: com.sun.max.vm.reference.heap.HeapReferenceScheme
  Layout scheme: com.sun.max.vm.layout.ohm.OhmLayoutScheme
  Monitor scheme: 
com.sun.max.vm.monitor.modal.schemes.thin_inflated.ThinInflatedMonitorScheme
  Heap scheme: com.sun.max.vm.heap.sequential.semiSpace.SemiSpaceHeapScheme
  TargetABIs scheme: 
com.sun.max.vm.compiler.target.amd64.AMD64TargetABIsScheme
  EirABIs scheme: com.sun.max.vm.cps.eir.amd64.darwin.DarwinAMD64EirABIs
  TargetGenerator scheme: 
com.sun.max.vm.cps.b.c.d.e.amd64.target.AMD64CPSCompiler
  DynamicTrampoline scheme: 
com.sun.max.vm.trampoline.template.TemplateBasedTrampolineScheme
  RuntimeCompiler scheme: com.sun.max.vm.cps.jit.amd64.AMD64JitCompiler
  Compilation scheme: 
com.sun.max.vm.compiler.adaptive.AdaptiveCompilationScheme
  Run scheme: com.sun.max.vm.run.java.JavaRunScheme

What kind of VM functionality are you thinking of experimenting with?

-Doug


Re: network sockets unusable?

Doug Simon 02/01/2010

Re: network sockets unusable?

Johannes Eickhold 02/02/2010

Re: network sockets unusable?

Doug Simon 02/02/2010

Re: network sockets unusable?

Johannes Eickhold 02/02/2010
  • Mysql
  • Glassfish
  • Jruby
  • Rails
  • Nblogo
Terms of Use; Privacy Policy;
© 2010, Oracle Corporation and/or its affiliates
(revision 20100226.3083a24)
 
 
loading
Please Confirm