1. 20 Mar, 2018 3 commits
  2. 19 Mar, 2018 1 commit
    • jgruber's avatar
      Reland "[builtins] Remove off-heap builtins from the snapshot" · fd70917d
      jgruber authored
      This is a reland of f1b1ec70
      
      Original change's description:
      > [builtins] Remove off-heap builtins from the snapshot
      >
      > This CL is the final major step towards shipping off-heap-safe builtins
      > embedded into the binary.
      >
      > Prior to snapshot serialization, we now:
      > * create the embedded blob containing off-heap instruction streams,
      > * use that to generate embedded.cc (containing embedded binary data),
      > * replace off-heap-safe builtins with trampolines,
      > * and serialize those into the final snapshot.
      >
      > The new RelocInfo::OFF_HEAP_TARGET kind is used to fix up trampoline
      > targets on deserialization.
      >
      > Bug: v8:6666
      > Change-Id: Ib07aea9e3bd7ecdec42291c1388b3a7453ea96ce
      > Reviewed-on: https://chromium-review.googlesource.com/950775
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#51960}
      
      TBR=yangguo@chromium.org,mstarzinger@chromium.org
      
      Cq-Include-Trybots: luci.v8.try:v8_mac64_dbg,v8_mac64_rel
      Bug: v8:6666
      Change-Id: Id9954af3c8195754ff3658c4603858904fcf88c4
      Reviewed-on: https://chromium-review.googlesource.com/964481
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52006}
      fd70917d
  3. 15 Mar, 2018 3 commits
  4. 09 Mar, 2018 2 commits
    • jgruber's avatar
      Reland "[builtins] Embed builtins into the binary" · e6476f89
      jgruber authored
      This is a reland of 491d5a81
      
      Original change's description:
      > [builtins] Embed builtins into the binary
      >
      > This embeds code for off-heap-safe builtins into the binary. Actual
      > execution of embedded code is not implemented yet.
      >
      > The embedded file has the following format:
      >
      > namespace v8 {
      > namespace internal {
      >
      > namespace {
      >
      > V8_EMBEDDED_TEXT_HEADER(v8_embedded_blob_)
      > __asm__( /* builtin offsets and lengths */ );
      > __asm__(V8_ASM_LABEL("Builtins_RecordWrite"));
      > __asm__( /* binary instruction stream */ );
      > /* Repeat for other builtins. */
      >
      > extern "C" const uint8_t v8_embedded_blob_[];
      > static const uint32_t v8_embedded_blob_size_ = /* size in bytes */;
      >
      > }  // namespace
      >
      > const uint8_t* DefaultEmbeddedBlob() { return v8_embedded_blob_; }
      > uint32_t DefaultEmbeddedBlobSize() { return v8_embedded_blob_size_; }
      >
      > }  // namespace internal
      > }  // namespace v8
      >
      > Bug: v8:6666
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      > Change-Id: Ic989f01da69ebe2863f31d934bfbe2c5d6e80864
      > Reviewed-on: https://chromium-review.googlesource.com/946011
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#51759}
      
      TBR=yangguo@chromium.org
      
      Bug: v8:6666
      Change-Id: I89b0498f22b4ce573723748d55d86a82ba285a88
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/957024Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51832}
      e6476f89
    • Jakob Gruber's avatar
      Revert "Reland "[builtins] Embed builtins into the binary"" · 481aa56d
      Jakob Gruber authored
      This reverts commit 36b32aa2.
      
      Reason for revert: https://build.chromium.org/p/client.v8.fyi/builders/Win%20V8%20FYI%20Release%20%28NVIDIA%29/builds/208
      
      Original change's description:
      > Reland "[builtins] Embed builtins into the binary"
      > 
      > This is a reland of 491d5a81
      > 
      > Original change's description:
      > > [builtins] Embed builtins into the binary
      > >
      > > This embeds code for off-heap-safe builtins into the binary. Actual
      > > execution of embedded code is not implemented yet.
      > >
      > > The embedded file has the following format:
      > >
      > > namespace v8 {
      > > namespace internal {
      > >
      > > namespace {
      > >
      > > V8_EMBEDDED_TEXT_HEADER(v8_embedded_blob_)
      > > __asm__( /* builtin offsets and lengths */ );
      > > __asm__(V8_ASM_LABEL("Builtins_RecordWrite"));
      > > __asm__( /* binary instruction stream */ );
      > > /* Repeat for other builtins. */
      > >
      > > extern "C" const uint8_t v8_embedded_blob_[];
      > > static const uint32_t v8_embedded_blob_size_ = /* size in bytes */;
      > >
      > > }  // namespace
      > >
      > > const uint8_t* DefaultEmbeddedBlob() { return v8_embedded_blob_; }
      > > uint32_t DefaultEmbeddedBlobSize() { return v8_embedded_blob_size_; }
      > >
      > > }  // namespace internal
      > > }  // namespace v8
      > >
      > > Bug: v8:6666
      > > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      > > Change-Id: Ic989f01da69ebe2863f31d934bfbe2c5d6e80864
      > > Reviewed-on: https://chromium-review.googlesource.com/946011
      > > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#51759}
      > 
      > TBR=yangguo@chromium.org
      > 
      > Bug: v8:6666
      > Change-Id: I741554cb080b6811dfbcb0913c6e1594e74c0432
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      > Reviewed-on: https://chromium-review.googlesource.com/955084
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#51804}
      
      TBR=yangguo@chromium.org,jgruber@chromium.org
      
      Change-Id: I0e21f958f18b0e4d7edebece5e4a2a3ea094cdd3
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:6666
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/956185Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51828}
      481aa56d
  5. 08 Mar, 2018 2 commits
    • Yang Guo's avatar
      [debug] implement break at builtin entry via debug trampoline. · 31f2a821
      Yang Guo authored
      R=bmeurer@chromium.org, leszeks@chromium.org
      
      Bug: v8:178
      Change-Id: I00411ddfee458a71464dcba7f1b504b46c70ef06
      Reviewed-on: https://chromium-review.googlesource.com/953002Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51811}
      31f2a821
    • jgruber's avatar
      Reland "[builtins] Embed builtins into the binary" · 36b32aa2
      jgruber authored
      This is a reland of 491d5a81
      
      Original change's description:
      > [builtins] Embed builtins into the binary
      >
      > This embeds code for off-heap-safe builtins into the binary. Actual
      > execution of embedded code is not implemented yet.
      >
      > The embedded file has the following format:
      >
      > namespace v8 {
      > namespace internal {
      >
      > namespace {
      >
      > V8_EMBEDDED_TEXT_HEADER(v8_embedded_blob_)
      > __asm__( /* builtin offsets and lengths */ );
      > __asm__(V8_ASM_LABEL("Builtins_RecordWrite"));
      > __asm__( /* binary instruction stream */ );
      > /* Repeat for other builtins. */
      >
      > extern "C" const uint8_t v8_embedded_blob_[];
      > static const uint32_t v8_embedded_blob_size_ = /* size in bytes */;
      >
      > }  // namespace
      >
      > const uint8_t* DefaultEmbeddedBlob() { return v8_embedded_blob_; }
      > uint32_t DefaultEmbeddedBlobSize() { return v8_embedded_blob_size_; }
      >
      > }  // namespace internal
      > }  // namespace v8
      >
      > Bug: v8:6666
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      > Change-Id: Ic989f01da69ebe2863f31d934bfbe2c5d6e80864
      > Reviewed-on: https://chromium-review.googlesource.com/946011
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#51759}
      
      TBR=yangguo@chromium.org
      
      Bug: v8:6666
      Change-Id: I741554cb080b6811dfbcb0913c6e1594e74c0432
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/955084Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51804}
      36b32aa2
  6. 06 Mar, 2018 4 commits
    • Ross McIlroy's avatar
      Revert "Reland "[builtins] Embed builtins into the binary"" · c75ff739
      Ross McIlroy authored
      This reverts commit 75d19b5b.
      
      Reason for revert: Breaking Mac: https://build.chromium.org/p/client.v8.fyi/builders/Mac%20V8%20FYI%20Release%20%28Intel%29/builds/290
      
      Original change's description:
      > Reland "[builtins] Embed builtins into the binary"
      > 
      > This is a reland of 491d5a81
      > 
      > Original change's description:
      > > [builtins] Embed builtins into the binary
      > >
      > > This embeds code for off-heap-safe builtins into the binary. Actual
      > > execution of embedded code is not implemented yet.
      > >
      > > The embedded file has the following format:
      > >
      > > namespace v8 {
      > > namespace internal {
      > >
      > > namespace {
      > >
      > > V8_EMBEDDED_TEXT_HEADER(v8_embedded_blob_)
      > > __asm__( /* builtin offsets and lengths */ );
      > > __asm__(V8_ASM_LABEL("Builtins_RecordWrite"));
      > > __asm__( /* binary instruction stream */ );
      > > /* Repeat for other builtins. */
      > >
      > > extern "C" const uint8_t v8_embedded_blob_[];
      > > static const uint32_t v8_embedded_blob_size_ = /* size in bytes */;
      > >
      > > }  // namespace
      > >
      > > const uint8_t* DefaultEmbeddedBlob() { return v8_embedded_blob_; }
      > > uint32_t DefaultEmbeddedBlobSize() { return v8_embedded_blob_size_; }
      > >
      > > }  // namespace internal
      > > }  // namespace v8
      > >
      > > Bug: v8:6666
      > > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      > > Change-Id: Ic989f01da69ebe2863f31d934bfbe2c5d6e80864
      > > Reviewed-on: https://chromium-review.googlesource.com/946011
      > > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#51759}
      > 
      > TBR=yangguo@chromium.org
      > 
      > Bug: v8:6666
      > Change-Id: Iba245976ce46c62474dcba94a99ab4a217b2e20e
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      > Reviewed-on: https://chromium-review.googlesource.com/950983
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#51769}
      
      TBR=yangguo@chromium.org,jgruber@chromium.org
      
      Change-Id: If2560e5ea57585421ba5c3da35717abb9b31766f
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:6666
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/951562Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51772}
      c75ff739
    • jgruber's avatar
      Reland "[builtins] Embed builtins into the binary" · 75d19b5b
      jgruber authored
      This is a reland of 491d5a81
      
      Original change's description:
      > [builtins] Embed builtins into the binary
      >
      > This embeds code for off-heap-safe builtins into the binary. Actual
      > execution of embedded code is not implemented yet.
      >
      > The embedded file has the following format:
      >
      > namespace v8 {
      > namespace internal {
      >
      > namespace {
      >
      > V8_EMBEDDED_TEXT_HEADER(v8_embedded_blob_)
      > __asm__( /* builtin offsets and lengths */ );
      > __asm__(V8_ASM_LABEL("Builtins_RecordWrite"));
      > __asm__( /* binary instruction stream */ );
      > /* Repeat for other builtins. */
      >
      > extern "C" const uint8_t v8_embedded_blob_[];
      > static const uint32_t v8_embedded_blob_size_ = /* size in bytes */;
      >
      > }  // namespace
      >
      > const uint8_t* DefaultEmbeddedBlob() { return v8_embedded_blob_; }
      > uint32_t DefaultEmbeddedBlobSize() { return v8_embedded_blob_size_; }
      >
      > }  // namespace internal
      > }  // namespace v8
      >
      > Bug: v8:6666
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      > Change-Id: Ic989f01da69ebe2863f31d934bfbe2c5d6e80864
      > Reviewed-on: https://chromium-review.googlesource.com/946011
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#51759}
      
      TBR=yangguo@chromium.org
      
      Bug: v8:6666
      Change-Id: Iba245976ce46c62474dcba94a99ab4a217b2e20e
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/950983Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51769}
      75d19b5b
    • Jakob Gruber's avatar
      Revert "[builtins] Embed builtins into the binary" · 4f18484b
      Jakob Gruber authored
      This reverts commit 491d5a81.
      
      Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Mac64/builds/20696
      
      Original change's description:
      > [builtins] Embed builtins into the binary
      > 
      > This embeds code for off-heap-safe builtins into the binary. Actual
      > execution of embedded code is not implemented yet.
      > 
      > The embedded file has the following format:
      > 
      > namespace v8 {
      > namespace internal {
      > 
      > namespace {
      > 
      > V8_EMBEDDED_TEXT_HEADER(v8_embedded_blob_)
      > __asm__( /* builtin offsets and lengths */ );
      > __asm__(V8_ASM_LABEL("Builtins_RecordWrite"));
      > __asm__( /* binary instruction stream */ );
      > /* Repeat for other builtins. */
      > 
      > extern "C" const uint8_t v8_embedded_blob_[];
      > static const uint32_t v8_embedded_blob_size_ = /* size in bytes */;
      > 
      > }  // namespace
      > 
      > const uint8_t* DefaultEmbeddedBlob() { return v8_embedded_blob_; }
      > uint32_t DefaultEmbeddedBlobSize() { return v8_embedded_blob_size_; }
      > 
      > }  // namespace internal
      > }  // namespace v8
      > 
      > Bug: v8:6666
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      > Change-Id: Ic989f01da69ebe2863f31d934bfbe2c5d6e80864
      > Reviewed-on: https://chromium-review.googlesource.com/946011
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#51759}
      
      TBR=yangguo@chromium.org,jgruber@chromium.org
      
      Change-Id: I36f5ee173fca565327b7f3e0ea20503ceef451fe
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:6666
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/950982Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51760}
      4f18484b
    • jgruber's avatar
      [builtins] Embed builtins into the binary · 491d5a81
      jgruber authored
      This embeds code for off-heap-safe builtins into the binary. Actual
      execution of embedded code is not implemented yet.
      
      The embedded file has the following format:
      
      namespace v8 {
      namespace internal {
      
      namespace {
      
      V8_EMBEDDED_TEXT_HEADER(v8_embedded_blob_)
      __asm__( /* builtin offsets and lengths */ );
      __asm__(V8_ASM_LABEL("Builtins_RecordWrite"));
      __asm__( /* binary instruction stream */ );
      /* Repeat for other builtins. */
      
      extern "C" const uint8_t v8_embedded_blob_[];
      static const uint32_t v8_embedded_blob_size_ = /* size in bytes */;
      
      }  // namespace
      
      const uint8_t* DefaultEmbeddedBlob() { return v8_embedded_blob_; }
      uint32_t DefaultEmbeddedBlobSize() { return v8_embedded_blob_size_; }
      
      }  // namespace internal
      }  // namespace v8
      
      Bug: v8:6666
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      Change-Id: Ic989f01da69ebe2863f31d934bfbe2c5d6e80864
      Reviewed-on: https://chromium-review.googlesource.com/946011
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51759}
      491d5a81
  7. 13 Feb, 2018 1 commit
  8. 02 Feb, 2018 1 commit
  9. 30 Jan, 2018 1 commit
  10. 08 Dec, 2017 1 commit
  11. 01 Dec, 2017 1 commit
  12. 14 Nov, 2017 1 commit
    • Jakob Gruber's avatar
      Revert "Revert lazy bytecode handler support" · e0400694
      Jakob Gruber authored
      This reverts commit 9e4543a2.
      
      Reason for revert: Culprit CL was found, let's reland this.
      
      Original change's description:
      > Revert lazy bytecode handler support
      >
      > Speculative revert due to canary crashes. I'll begin relanding these
      > one-by-one next week.
      >
      > This bundles two reverts:
      >
      > Revert "[snapshot] Lazy-deserialize bytecode handlers"
      > This reverts commit b4587369.
      >
      > Revert "[interpreter] Remove mechanism for bytecode handler reuse"
      > This reverts commit 07fc87a2.
      >
      > TBR: rmcilroy@chromium.org,mlippautz@chromium.org,yangguo@chromium.org
      > Bug: chromium:783708
      > Change-Id: I6f8314b9eeafd9412a1c69843bc242e7da240eee
      > Reviewed-on: https://chromium-review.googlesource.com/763428
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#49294}
      
      TBR=rmcilroy@chromium.org,mlippautz@chromium.org,yangguo@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: chromium:783708
      Change-Id: I6c9274ddf0d0832ecce32baacc4f6a1388f56ac4
      Reviewed-on: https://chromium-review.googlesource.com/768749
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49362}
      e0400694
  13. 10 Nov, 2017 1 commit
    • jgruber's avatar
      Revert lazy bytecode handler support · 9e4543a2
      jgruber authored
      Speculative revert due to canary crashes. I'll begin relanding these
      one-by-one next week.
      
      This bundles two reverts:
      
      Revert "[snapshot] Lazy-deserialize bytecode handlers"
      This reverts commit b4587369.
      
      Revert "[interpreter] Remove mechanism for bytecode handler reuse"
      This reverts commit 07fc87a2.
      
      TBR: rmcilroy@chromium.org,mlippautz@chromium.org,yangguo@chromium.org
      Bug: chromium:783708
      Change-Id: I6f8314b9eeafd9412a1c69843bc242e7da240eee
      Reviewed-on: https://chromium-review.googlesource.com/763428
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49294}
      9e4543a2
  14. 08 Nov, 2017 1 commit
  15. 26 Oct, 2017 1 commit
  16. 24 Oct, 2017 1 commit
  17. 20 Oct, 2017 1 commit
    • Hannes Payer's avatar
      [heap] Implemented write protected code pages. · 14917b65
      Hannes Payer authored
      This CL provides the basic infrastructure on the GC side for write protected code pages.
      
      The only thing missing on the GC side is the out-of-line free list implementation. In this
      CL sweeper threads and the mutator need to synchronize when page protection mode changes.
      This would not be necessary if the sweepr use and out-of-line free list.
      
      Code allocation is currently protected by a CodeSpaceMemoryModificationScope. This may
      go away with a unification of code space allocation and initialization that will happen
      later.
      
      One thing missing in this CL: freshly added pages are still read+write+executable. This
      also needs to change: WIP
      
      Bug: chromium:774108,v8:6792
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: Ib8d1ed1c09cc144791e462277bf43a4641e1490d
      Reviewed-on: https://chromium-review.googlesource.com/716379
      Commit-Queue: Hannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48774}
      14917b65
  18. 18 Oct, 2017 1 commit
    • Jakob Gruber's avatar
      Reland "Reland "[snapshot] Add BuiltinDeserializerAllocator"" · 4104fd90
      Jakob Gruber authored
      This is a reland of 526c31d0
      Original change's description:
      > Reland "[snapshot] Add BuiltinDeserializerAllocator"
      > 
      > This is a reland of 2b9a6d89
      > Original change's description:
      > > [snapshot] Add BuiltinDeserializerAllocator
      > > 
      > > Encapsulates special reservation / allocation behavior for builtin
      > > deserialization.
      > > 
      > > Bug: v8:6624
      > > Change-Id: Ic784ed43b607c881b356c6e535c9dbe185e1d4cd
      > > Reviewed-on: https://chromium-review.googlesource.com/716229
      > > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#48638}
      > 
      > TBR=yangguo@chromium.org
      > 
      > Bug: v8:6624
      > Change-Id: I07c49263b4ef128dfe9b97d364e9a279b343aa24
      > Reviewed-on: https://chromium-review.googlesource.com/723520
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#48647}
      
      TBR=yangguo@chromium.org
      
      Bug: v8:6624
      Change-Id: I4186fcf89b9fce3433a02fc864346a300b90ffb5
      Reviewed-on: https://chromium-review.googlesource.com/725439Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48666}
      4104fd90
  19. 17 Oct, 2017 4 commits
  20. 26 Sep, 2017 3 commits
    • Yang Guo's avatar
      Reland "[snapshot] include version string in the startup snapshot." · dc7b2b2b
      Yang Guo authored
      This is a reland of 629406d1
      Original change's description:
      > [snapshot] include version string in the startup snapshot.
      > 
      > This is to easier diagnose build issues involving the snapshot.
      > Sample error message for mismatching snapshot:
      > 
      > #
      > # Fatal error in ../../src/snapshot/snapshot-common.cc, line 286
      > # Version mismatch between V8 binary and snapshot.
      > #   V8 binary version: 6.3.1 (candidate)
      > #    Snapshot version: 6.3.0 (candidate)
      > # The snapshot consists of 2820444 bytes and contains 1 contexts.
      > #
      > 
      > 
      > R=machenbach@chromium.org
      > 
      > Bug: chromium:764327
      > Change-Id: Icdc7aeac77819b113985b424feda814a072d5406
      > Reviewed-on: https://chromium-review.googlesource.com/684295
      > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > Commit-Queue: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#48161}
      
      Bug: chromium:764327
      Change-Id: I3721689824e0a6909eede86d0829dc258ae40c4d
      Reviewed-on: https://chromium-review.googlesource.com/684494Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48164}
      dc7b2b2b
    • Yang Guo's avatar
      Revert "[snapshot] include version string in the startup snapshot." · dc64a731
      Yang Guo authored
      This reverts commit 629406d1.
      
      Reason for revert: cross platform builds break.
      
      Original change's description:
      > [snapshot] include version string in the startup snapshot.
      > 
      > This is to easier diagnose build issues involving the snapshot.
      > Sample error message for mismatching snapshot:
      > 
      > #
      > # Fatal error in ../../src/snapshot/snapshot-common.cc, line 286
      > # Version mismatch between V8 binary and snapshot.
      > #   V8 binary version: 6.3.1 (candidate)
      > #    Snapshot version: 6.3.0 (candidate)
      > # The snapshot consists of 2820444 bytes and contains 1 contexts.
      > #
      > 
      > 
      > R=​machenbach@chromium.org
      > 
      > Bug: chromium:764327
      > Change-Id: Icdc7aeac77819b113985b424feda814a072d5406
      > Reviewed-on: https://chromium-review.googlesource.com/684295
      > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > Commit-Queue: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#48161}
      
      TBR=machenbach@chromium.org,yangguo@chromium.org
      
      Change-Id: I35a9b575e4f7fe5c45c9dc6f9e774c3e6d30049c
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:764327
      Reviewed-on: https://chromium-review.googlesource.com/684315Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48162}
      dc64a731
    • Yang Guo's avatar
      [snapshot] include version string in the startup snapshot. · 629406d1
      Yang Guo authored
      This is to easier diagnose build issues involving the snapshot.
      Sample error message for mismatching snapshot:
      
      #
      # Fatal error in ../../src/snapshot/snapshot-common.cc, line 286
      # Version mismatch between V8 binary and snapshot.
      #   V8 binary version: 6.3.1 (candidate)
      #    Snapshot version: 6.3.0 (candidate)
      # The snapshot consists of 2820444 bytes and contains 1 contexts.
      #
      
      
      R=machenbach@chromium.org
      
      Bug: chromium:764327
      Change-Id: Icdc7aeac77819b113985b424feda814a072d5406
      Reviewed-on: https://chromium-review.googlesource.com/684295Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48161}
      629406d1
  21. 19 Sep, 2017 1 commit
  22. 05 Sep, 2017 2 commits
    • jgruber's avatar
      [builtins] Remove most Builtins::Name usages in API · 0e4f6007
      jgruber authored
      Using the Builtins::Name type doesn't give use any range safety benefits
      over simply using int id's, and it complicates use sites by always
      forcing a static_cast<Builtins::Name>(id).
      
      Bug: v8:6624
      Change-Id: Id5fcf6800c781c637145ab1d00d821f9ad473321
      Reviewed-on: https://chromium-review.googlesource.com/650247
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47823}
      0e4f6007
    • jgruber's avatar
      [builtins] Implement lazy deserialization for TFJ builtins · 79aee245
      jgruber authored
      This adds support for lazy deserialization of JS-linkage (TFJ) builtins,
      still gated behind the --lazy-deserialization flag. If enabled, we
      proceed as follows:
      
      During isolate initialization, only eager builtins are deserialized. All
      references to lazy builtins are replaced by the DeserializeLazy builtin.
      In particular, this happens in the builtin table (Builtins::builtins_)
      and in SharedFunctionInfo objects.
      
      When calling into a not-yet deserialized function (i.e. the JSFunction's
      code object is the DeserializeLazy builtin), the DeserializeLazy builtin
      takes over.  It checks the builtin table to see if the target builtin
      (determined by looking at the builtin id stored on the
      SharedFunctionInfo) has already been deserialized. If so, it simply
      copies the builtin code object to the JSFunction and SharedFunctionInfo.
      Otherwise, we enter Runtime::kDeserializeLazy to deserialize the
      builtin.
      
      With --lazy-deserialization, isolate deserialization is 11% faster
      (1.5ms vs.  1.7ms), and code_space->Size() is 33% lower (984K vs.
      1475K).
      
      Moving relocation infos & handler tables out of the partial snapshot
      cache would additionally let us save up to 30K per isolate. Adding code
      stubs to that list increases further potential savings to 262K.
      
      Bug: v8:6624
      Change-Id: I0ac7d05d165d2466998269bd431ac076a311cbeb
      Reviewed-on: https://chromium-review.googlesource.com/649166
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47818}
      79aee245
  23. 30 Aug, 2017 2 commits
    • jgruber's avatar
      [snapshot] Store builtin offsets during serialization · 89b6ef0c
      jgruber authored
      To deserialize builtins individually, we need to preserve their starting
      offsets within the serialized data.
      
      Bug: v8:6624
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: I48a48330aeb63de2c8cfcbea6fb94e1b2917495c
      Reviewed-on: https://chromium-review.googlesource.com/637774Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47708}
      89b6ef0c
    • jgruber's avatar
      Reland "[snapshot] Move builtins to dedicated snapshot area" · 70a51638
      jgruber authored
      This is a reland of 49e3bfd5
      Original change's description:
      > [snapshot] Move builtins to dedicated snapshot area
      > 
      > As a first step towards lazy builtin deserialization, this CL moves
      > builtins to their own dedicated area in the snapshot blob, physically
      > located after startup data and before context-specific data.
      > 
      > The startup- and partial serializers now serialize all seen builtins as
      > references, i.e. they only encode the relevant builtin id (taking care
      > to preserve special behavior around the interpreter trampoline and
      > CompileLazy). Builtins are later fully serialized by the
      > BuiltinSerializer. The separate blobs are finally glued together by
      > CreateSnapshotBlob.
      > 
      > Deserialization takes the same steps: when we see builtin reference
      > bytecodes before builtins have been deserialized, we push to a list of
      > deferred builtin references. After builtin deserialization, this list is
      > iterated and all builtin references are fixed up.
      > 
      > Bug: v8:6624
      > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      > Change-Id: Idee42fa9c92bdbe8d5b8c4b8bf3ca9dd39634004
      > Reviewed-on: https://chromium-review.googlesource.com/610225
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#47596}
      
      Bug: v8:6624
      Change-Id: I8bfac56c482d992987c270bf0fea7acd9e4ca0c7
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/638271Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47705}
      70a51638
  24. 28 Aug, 2017 1 commit
    • Michael Hablich's avatar
      Revert "[snapshot] Move builtins to dedicated snapshot area" · a588411e
      Michael Hablich authored
      This reverts commit 49e3bfd5.
      
      Reason for revert: Primary suspect for blocked roll: 759552
      
      Original change's description:
      > [snapshot] Move builtins to dedicated snapshot area
      > 
      > As a first step towards lazy builtin deserialization, this CL moves
      > builtins to their own dedicated area in the snapshot blob, physically
      > located after startup data and before context-specific data.
      > 
      > The startup- and partial serializers now serialize all seen builtins as
      > references, i.e. they only encode the relevant builtin id (taking care
      > to preserve special behavior around the interpreter trampoline and
      > CompileLazy). Builtins are later fully serialized by the
      > BuiltinSerializer. The separate blobs are finally glued together by
      > CreateSnapshotBlob.
      > 
      > Deserialization takes the same steps: when we see builtin reference
      > bytecodes before builtins have been deserialized, we push to a list of
      > deferred builtin references. After builtin deserialization, this list is
      > iterated and all builtin references are fixed up.
      > 
      > Bug: v8:6624
      > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      > Change-Id: Idee42fa9c92bdbe8d5b8c4b8bf3ca9dd39634004
      > Reviewed-on: https://chromium-review.googlesource.com/610225
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#47596}
      
      TBR=yangguo@chromium.org,mlippautz@chromium.org,jgruber@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: v8:6624
      Change-Id: I9906c9ea15a623226b890f63bc65876a6f5203f8
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/638331Reviewed-by: 's avatarMichael Hablich <hablich@chromium.org>
      Commit-Queue: Michael Hablich <hablich@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47648}
      a588411e