Hi, Paul.

You recall correctly.  We've wanted to remove the entire HPI layer
since at least 1.3 but it's never been high enough priority,
particularly given that we expect it to be a non-trivial task.  New
APIs (e.g. java.nio) were explicitly written to avoid using it, but a
number of old APIs still depend on it.

As for the "Thread" portion of HPI, here's the RFE for removing it:

  4919401: (thread) Remove Thread interface from HPI

The RFE asserts that the HPI_ThreadInterface isn't used by Hotspot and
is in fact broken.  This has caused us some problems, the most recent
of which is described in the following bug:

  6626677: Error: Unimplemented()/HPI sysMonitorExit is broken on
    linux-amd64
  http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6626677

I'm sure that given more time I could dig up additional bugids
describing various HPI problems and their symptoms, but the related
bugs listed for 6626677 are a good start.

Thanks,
iris

> Paul Hohensee wrote:
> Actually, I recall that one of the things we've always wanted to
> do is get rid of HPI.  Never seems to be important enough.
> 
> Paul
> 
> Kelly O'Hair wrote:
> > If it's not used, I say OFF WITH IT"S HEAD!  ;^)
> >
> > -kto
> >
> >
> > Alan Bateman wrote:
> >> Kelly O'Hair wrote:
> >>> I very much suspect that this -D$(ARCH) could be removed with no 
> >>> consequences.
> >>> The difficult part would be verifying it.
> >>>
> >>> C macros are a very powerful tool, but some of the global names we 
> >>> have chosen
> >>>
> >>> over the years have come back to haunt us. :^( 
> >> src/solaris/hpi/native_threads is one place that seems to depend on 
> >> $(ARCH) being defined. That code is part of the HPI "Thread" 
> >> interface. As I recall, HotSpot doesn't use the HPI's "Thread" or 
> >> "Memory" interfaces and so this code probably hasn't been used since 
> >> the transition to HotSpot back in 1.3.
> >>
> >> -Alan.

Reply via email to