RFC: 8136978 Much nearly duplicated code for vmError support (original) (raw)
Sebastian Sickelmann sebastian.sickelmann at gmx.de
Tue Oct 13 19:21:21 UTC 2015
- Previous message: [8u] Request for approval: 8134031: Incorrect JIT compilation of complex code with inlining and escape analysis
- Next message: RFC: 8136978 Much nearly duplicated code for vmError support
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi,
i have looked at the enhancement JDK-8136978 and have 2 solutions how this could be handled and want to ask which seems to be more "hotspot-code-style" like.
The common idea behind the change is to move os/linux/vmError_linux.cpp to os/posix/vmError_posix.cpp and change the methods appropriate. Remove of os_[]/vmError_[].cpp (for [*] = aix,bsd,solaris and linux)
I want to concentrate on the "signals stuff" in this mail.
Calls to os::Linux::ucontext_set_pc and os::Linux::ucontext_get_pc will be changed to os::Posix::....... Calls to pthread_sigmask will be replaced with os::Posix::unblock_signals(const sigset_t *set).
These methods are defined in os/posix/os_posix.hpp. I think unblock_signals should be implemented in os/[]/vm/os_[].cpp like this:
int os::Posix::unblock_signals(const sigset_t *set) {
return pthread_sigmask(SIG_UNBLOCK, set, NULL);
}
But for ucontext_set_pc and ucontext_get_pc i see two variants:
Implement in in os/[]/vm/os_[].cpp like this:
address os::Posix::ucontext_get_pc(ucontext_t* ctx) {
return os::Linux::ucontext_get_pc(ctx);
}
and call the existing methods from the os_cpu directory.
Or remove the ucontext_get_pc and ucontext_set_pc from the os/[]/vm/os_[].hpp and change the implementations in os_cpu//vm/os_[]_[**].cpp from os::[*]::ucontext....... to os::Posix::ucontext.........
I think the solutions are identically from the view of the compile result at least when inlining is used.
I think the first solutions would creates a smaller changeset. I think the second solution would lead to a slightly smaller codebase.
What do you think? I personally prefer the second.
-- Sebastian
- Previous message: [8u] Request for approval: 8134031: Incorrect JIT compilation of complex code with inlining and escape analysis
- Next message: RFC: 8136978 Much nearly duplicated code for vmError support
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]