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 |
| Johannes Eickhold | 02/02/2010 | |
| Doug Simon | 02/02/2010 | |
| Johannes Eickhold | 02/02/2010 |






