RFR(s): 8149036: Add UL tracing for thread related events at os level
Coleen Phillimore
coleen.phillimore at oracle.com
Tue Feb 23 17:22:54 UTC 2016
Thank you for separating the issues and for the comments in bug
https://bugs.openjdk.java.net/browse/JDK-8148425 which makes it clearer
the problems with strerror().
If David approves or you have another reviewer, I'll sponsor it.
Coleen
On 2/23/16 4:24 AM, Thomas Stüfe wrote:
> Hi Coleen,
>
> thank you for the review!
>
> See here the new webrev:
>
> http://cr.openjdk.java.net/~stuefe/webrevs/8149036-add-tracing-for-thread-events/webrev.01/webrev/index.html
> <http://cr.openjdk.java.net/%7Estuefe/webrevs/8149036-add-tracing-for-thread-events/webrev.01/webrev/index.html>
>
> Ok, to separate the logging from the strerror issue, I replaced the
> offending calls to os::errno_name() with plain strerror() on the base
> that this is the way we do it now all over the hotspot (although we
> know it is broken). I do not like much adding broken code to broken
> code, but all alternatives (strerror_s, os::lasterror()) I like even less.
>
> As for the strerror issue, this may be a larger discussion, so I added
> my comments to the bug David opened.
>
> Kind Regards, Thomas
>
>
> On Tue, Feb 23, 2016 at 12:09 AM, Coleen Phillimore
> <coleen.phillimore at oracle.com <mailto:coleen.phillimore at oracle.com>>
> wrote:
>
>
> Oh, also, I am willing to sponsor this.
> Thanks,
> Coleen
>
>
> On 2/22/16 5:45 PM, Coleen Phillimore wrote:
>
>
>
> On 2/22/16 3:53 PM, Coleen Phillimore wrote:
>
>
> Hi Thomas,
> I think the logging conversion looks really good. The
> errno stuff is very ugly though. Can you call strerrno_r
> - the thread safe version? I didn't see discussion around
> this.
>
>
> Hi Thomas, I was talking to Kim. You should use strerror()
> and not add this code to os.cpp. The rationale is in this bug:
>
> https://bugs.openjdk.java.net/browse/JDK-6223913
>
> It seems like the errors would have standard errno at this
> point and wouldn't be susceptible to the race in strerror().
>
> + log.warning("Failed to start thread - pthread_create
> failed (%s) for attributes: %s.",
> + os::errno_name(errno),
> os::Posix::describe_pthread_attr(buf, sizeof(buf), &attr));
>
> It seems the chance of a race creating different errno at this
> early point in the jvm is very low.
>
> Coleen
>
> Thanks,
> Coleen
>
> On 2/22/16 11:54 AM, Thomas Stüfe wrote:
>
> Dear all,
>
> please take a look at this proposed addition to UL.
> This adds a number of
> trace points to thread creation. In detail:
>
> - it traces thread creation and thread creation
> errors, including pthread
> attributes (for Posix platforms)
> - it traces stack location and creation/removal of
> stack guard pages.
>
> This all was first AIX-only tracing, but I converted
> this to UL and made it
> available on all platforms.
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8149036
> Webrev:
> http://cr.openjdk.java.net/~stuefe/webrevs/8149036-add-tracing-for-thread-events/webrev.00/webrev/
> <http://cr.openjdk.java.net/%7Estuefe/webrevs/8149036-add-tracing-for-thread-events/webrev.00/webrev/>
>
>
> Note also that I added a helper function,
> os::errno_name(), which is a very
> simple replacement for strerror() without its problems
> (thread safety,
> unwanted localizations...).
>
> What do you think?
>
> Kind Regards, Thomas
>
>
>
>
>
More information about the hotspot-runtime-dev
mailing list