RESOLVED FIXED 155178
Start moving to separated writable and executable mappings in the JIT
https://bugs.webkit.org/show_bug.cgi?id=155178
Summary Start moving to separated writable and executable mappings in the JIT
Oliver Hunt
Reported 2016-03-08 11:30:04 PST
Start moving to separated writable and executable mappings in the JIT
Attachments
Patch (65.15 KB, patch)
2016-03-08 11:44 PST, Oliver Hunt
no flags
Patch (65.58 KB, patch)
2016-03-08 12:00 PST, Oliver Hunt
no flags
All the build fixes for non-separated heaps (65.65 KB, patch)
2016-03-08 15:45 PST, Oliver Hunt
no flags
All the build fixes for both at the same time. sigh. (65.64 KB, patch)
2016-03-08 15:52 PST, Oliver Hunt
no flags
Oliver Hunt
Comment 1 2016-03-08 11:44:08 PST
Oliver Hunt
Comment 2 2016-03-08 11:53:16 PST
Waiting for builds
Filip Pizlo
Comment 3 2016-03-08 11:53:50 PST
Comment on attachment 273309 [details] Patch looks good to me so far. lets see what happens with the bots.
Oliver Hunt
Comment 4 2016-03-08 12:00:25 PST
Oliver Hunt
Comment 5 2016-03-08 12:10:07 PST
(In reply to comment #4) > Created attachment 273311 [details] > Patch because being able to build is totes overrated :D
Oliver Hunt
Comment 6 2016-03-08 12:53:02 PST
Alex Christensen
Comment 7 2016-03-08 13:36:36 PST
build fix in r197799
Oliver Hunt
Comment 8 2016-03-08 13:44:00 PST
(In reply to comment #7) > build fix in r197799 ... :-/ I'm going to assume Xcode here. I'm just going to verify that the patch otherwise matched what was reviewed :-/
Oliver Hunt
Comment 9 2016-03-08 13:46:01 PST
(In reply to comment #8) > (In reply to comment #7) > > build fix in r197799 > > > ... > > :-/ > > I'm going to assume Xcode here. I'm just going to verify that the patch > otherwise matched what was reviewed :-/ Seriously confused by what Xcode did to the patch post review. I'm going to rollout this (and your subsequent patch) and get the bot to re-land it, to be safe because the attached patch is the correct one.
Alex Christensen
Comment 10 2016-03-08 13:52:39 PST
Comment on attachment 273311 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=273311&action=review if you're going to reland it, please remember these fixes I also needed: > Source/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp:152 > + VM_FLAGS_ANYWHERE | VM_FLAGS_RANDOM_ADDR, VM_FLAGS_RANDOM_ADDR is not defined in my sdk. does not build. > Source/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp:164 > + int result = mprotect(stubBase, stubSize, VM_PROT_EXECUTE_ONLY); result is not defined when VM_PROT_EXECUTE_ONLY is not defined. Does not build.
WebKit Commit Bot
Comment 11 2016-03-08 13:55:02 PST
Re-opened since this is blocked by bug 155195
Oliver Hunt
Comment 12 2016-03-08 14:18:51 PST
Comment on attachment 273311 [details] Patch Something bizarre happened when this got landed. Happily? it did show another issue i missed
Oliver Hunt
Comment 13 2016-03-08 15:45:30 PST
Created attachment 273355 [details] All the build fixes for non-separated heaps
Oliver Hunt
Comment 14 2016-03-08 15:52:19 PST
Created attachment 273356 [details] All the build fixes for both at the same time. sigh.
Oliver Hunt
Comment 15 2016-03-08 16:08:46 PST
Alexey Proskuryakov
Comment 16 2016-03-08 16:24:37 PST
This broke iOS build: In file included from /Volumes/Data/slave/ios-9-release/build/Source/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp:57: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk/usr/include/mach/mach_vm.h:1:2: error: mach_vm.h unsupported. #error mach_vm.h unsupported. ^ /Volumes/Data/slave/ios-9-release/build/Source/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp:156:33: error: use of undeclared identifier 'VM_FLAGS_RANDOM_ADDR' VM_FLAGS_ANYWHERE | VM_FLAGS_RANDOM_ADDR,
Csaba Osztrogonác
Comment 17 2016-03-09 05:10:13 PST
Benjamin Poulain
Comment 18 2016-03-10 22:22:51 PST
Comment on attachment 273356 [details] All the build fixes for both at the same time. sigh. View in context: https://bugs.webkit.org/attachment.cgi?id=273356&action=review > Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:1271 > + m_assembler.stp<64>(src1, src2, dest, offset.m_value); Can you please update your storePair/loadPair to use Address instead of base+immediate? This API is confusing IMHO. It look like you are exposing STP/STNP directly but you are not. The offset is scaled. With Address it is clear: the offset is always in bytes.
Oliver Hunt
Comment 19 2016-03-11 09:58:22 PST
(In reply to comment #18) > Comment on attachment 273356 [details] > All the build fixes for both at the same time. sigh. > > View in context: > https://bugs.webkit.org/attachment.cgi?id=273356&action=review > > > Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:1271 > > + m_assembler.stp<64>(src1, src2, dest, offset.m_value); > > Can you please update your storePair/loadPair to use Address instead of > base+immediate? > > This API is confusing IMHO. It look like you are exposing STP/STNP directly > but you are not. The offset is scaled. > With Address it is clear: the offset is always in bytes. Will do.
Note You need to log in before you can comment on or make changes to this bug.