Request for Review: 5049299: (process) Use posix_spawn, not fork, on S10 to avoid swap exhaustion

Rob McKenna rob.mckenna at oracle.com
Thu Jul 25 16:17:09 UTC 2013


Thanks a lot Erik,

I've added the dependency to the makefile here:

http://cr.openjdk.java.net/~robm/5049299/webrev.05/ 
<http://cr.openjdk.java.net/%7Erobm/5049299/webrev.05/>

Is it ok between the ifeq block?

Alan,

I've altered the launchMechanism code to use valueOf (and lower case 
names) - much cleaner, thanks for that. I've also limited each platform 
to supported mechanisms only. With the new layout I don't believe a 
separate test is needed here. (the default is now posix_spawn/vfork and 
Basic.java has been altered to run with fork too)

     -Rob

On 05/07/13 08:24, Erik Joelsson wrote:
> Build changes are looking pretty good. Just one thing that I would 
> like to add. Since the executable jspawnhelper is linking in an object 
> file from libjava, it would be good to declare that dependency. See 
> unpack200 for a similar situation.
>
> $(BUILD_JSPAWNHELPER): $(LINK_JSPAWNHELPER_OBJECTS)
>
> /Erik
>
> On 2013-07-04 15:41, Rob McKenna wrote:
>> Hi Alan,
>>
>> I've just uploaded the latest changes which rebase the fix to the 
>> current repo. (required post 8008118) I've also swapped out useFork 
>> for jdk.lang.Process.launchMechanism. (it affords us the flexibility 
>> to enable or disable other mechanisms on the various platforms at a 
>> later date) I have a couple of questions about this:
>>
>> 1) I'm thinking of including a unit test which will run through the 
>> various permutations across each platform making sure we fail when 
>> expected.
>>
>> 2) Should we simply ignore the flag on Windows or should we throw the 
>> same error if its provided?
>>
>> cc'ing Erik for a build review.
>>
>> http://cr.openjdk.java.net/~robm/5049299/webrev.04/
>>
>>     -Rob
>>
>>
>> On 02/07/13 16:41, Alan Bateman wrote:
>>> On 23/12/2012 01:19, Rob McKenna wrote:
>>>> Hi Martin, thanks a lot for this.
>>>>
>>>> I've renamed LINKFLAG to the more appropriate (and common) 
>>>> ARCHFLAG. It seems to pop up all around our source but if build-dev 
>>>> know of a better (or canonical) way of doing it I'll take it!
>>>>
>>>> The BUILD_JEXEC differences don't show up in my webrev or hg diff, 
>>>> but I see them in the jdk.patch generated by webrev. I have no idea 
>>>> why this is. (I did use the JEXEC stuff as a template for the 
>>>> JSPAWNHELPER code, but I don't recall altering the JEXEC stuff in 
>>>> any way. It looks like its limited to indentation. Strange.)
>>>>
>>>> W.r.t. useFork, I'll discuss this with Alan once he has a spare 
>>>> minute. I believe he may have had some concerns, but I'll let you 
>>>> know how that goes either way.
>>>>
>>>> The only __APPLE__ should be to get the call to _NSGetEnviron(). 
>>>> Everything else should be bsd.
>>>>
>>>> I've put a webrev at:
>>>>
>>>> http://cr.openjdk.java.net/~robm/5049299/webrev.03/ 
>>>> <http://cr.openjdk.java.net/%7Erobm/5049299/webrev.03/>
>>>>
>>>> I hope this addresses the rest of your comments.
>>>>
>>>>     -Rob
>>> Rob - this was great work but I don't think we brought it to a 
>>> conclusion. Are you planning to re-base the patch and send out a new 
>>> webrev?
>>>
>>> -Alan
>>




More information about the core-libs-dev mailing list