Thanks for your comments, Mandy.

On pondělí 21. srpna 2017 12:42:09 CEST mandy chung wrote:
> cc'ing serviceability-dev which is the right mailing list for platform
> management discussion.
> 
> JVMCI is currently named as `jdk.internal.vm.ci` (a JDK internal
> module).   I suppose this new module is intended to be kept as an
> internal module?

The module doesn't export any API - e.g. it is internal. The current name is 
jdk.vm.ci.management - shall I change that to something like 
jdk.internal.vm.ci.management? Or some other (shorter) suggestion?

>    30  * @since 9
> 
> should be @since 10.

I see. I'll fix that.

> JVMCIMBeans.java
> 
>    55         @Override
>    56         public Set<Class<?>> mbeanInterfaces() {
>    57             return Collections.singleton(mbean.getClass());
>    58         }
> 
> This mbeanInterfaces method should return the MBean interface class but
> not the class of the mbean implementation.  This allows the platform
> mbean to be looked up from ManagementFactory.getPlatformMXBean.  If this
> is a dynamic mbean, then this method simply returns an empty list (see
> DiagnosticCommandMBean).    

I am almost 100% sure that the bean(s) exposed from Truffle is going to be 
DynamicMBean - we compose the attributes dynamically, that wouldn't work with 
reflection.

I'll change the code to return an empty list if the bean is DynamicMBean.

> To support standard mbean,
> HotSpotJVMCICompilerFactory::mbeans method would need to include the
> mbean interface type in addition to the name and the mbean
> implementation object, i.e. may need to define a specific type for it.

As we don't have any use for this yet I suggest to keep things simple. I 
believe following contract could work:

public Set<Class<?>> mbeanInterfaces() {
   if (mbean instanceof DynamicMBean) {
     return Collections.emptySet();
   } else {
     Class<?>[] interfaces = mbean.getClass().getInterfaces();
     return new HashSet<>(Arrays.asList(interfaces));
   }
}

if this is acceptable, I would change documentation of the mbean() method to 
mention how the set of mbeanInterfaces() is computed. OK?

Thanks for the review.
-jt

> On 8/18/17 11:49 AM, Vladimir Kozlov wrote:
> > Updated changes in all repos:
> > http://cr.openjdk.java.net/~kvn/8182701/webrev.01/
> > 
> > On 8/18/17 7:12 AM, Jaroslav Tulach wrote:
> > 
> > Thanks for pushing me forward, Vladimir. Yes, the changes are still
> > needed if
> > we want the Graal compiler to expose its MBean in a lazy way. I am
> > offering
> > new webrev for review. It contains following changes:
> > 
> > Per Mandy's suggestion I created new module jdk.vm.ci.management to
> > bridge between
> > JVMCI and jdk.management. Adding new module was a bit tricky, but with
> > great help of Jan
> > Lahoda I even managed to register it as a boot module.
> > 
> > I renamed the JVMCIMXBean class and dropped X per Vladimir's advice. I
> > fixed
> > the non-standard location of JVMCIMXBean class.
> > 
> > I changed the interface to use Map, so the compiler is able to expose
> > more
> > than a single bean.
> > 
> > That's it. I am looking forward to your review comments.
> > -jt
> > 
> > Here are original changes for reference:
> > 
> > http://cr.openjdk.java.net/~kvn/8182701/webrev.jdk/
> > http://cr.openjdk.java.net/~kvn/8182701/webrev.hs/
> > 
> > On 8/17/17 11:54 AM, Vladimir Kozlov wrote:
> >> Hi Jaroslav,
> >> 
> >> What we should do with 8182701? Do you still need JVMCI changes?
> >> 
> >> Note, your changes to Graal [GR-5435] were integrated recently into
> >> JDK (jdk10/hs):
> >> https://bugs.openjdk.java.net/browse/JDK-8186158
> >> 
> >> Thanks,
> >> Vladimir
> >> 
> >> On 8/14/17 10:06 AM, Jaroslav Tulach wrote:
> >>> On čtvrtek 3. srpna 2017 17:03:39 CEST Jaroslav Tulach wrote:
> >>>> On čtvrtek 27. července 2017 15:01:17 CEST Alan Bateman wrote:
> >>>>> On 27/07/2017 10:07, Jaroslav Tulach wrote:
> >>>>>> Yes, it seems like a desirable goal to let Graal compiler work
> >>>>>> with just
> >>>>>> java.base. Is there a description how to build JDK9/10 with just
> >>>>>> java.base
> >>>>>> that I could follow and test against?
> >>>>> 
> >>>>> You can use jlink to create a run-time image that only contains
> >>>>> java.base (jlink --module-path $JAVA_HOME/jmods --add-modules
> >>>>> java.base
> >>>>> --output smalljre).
> >>>> 
> >>>> Status update: I've just tried to run Graal compiler against JDK9
> >>>> with only
> >>>> java.base and jdk.internal.vm.ci modules, and there are some
> >>>> problems. I
> >>>> need to resolve them first before I provide updated version of my
> >>>> patch.
> >>> 
> >>> FYI: As of
> >>> https://github.com/graalvm/graal/commit/ca9071941a1be7f1a3725529ecc231ff
> >>> 621d5ed0
> >>> 
> >>> the Graal compiler can run with java.base, jdk.unsupported and
> >>> jdk.vm.ci only
> >>> modules. But it wasn't easy, especially the
> >>> http://wiki.apidesign.org/wiki/PropertyChangeListener required a bit
> >>> of work.
> >>> 
> >>> -jt


Reply via email to