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.