1. 21 Jun, 2018 1 commit
  2. 09 May, 2018 1 commit
    • Dan Elphick's avatar
      Reland "[heap] Mark RO_SPACE as read-only after deserialization" · 60064133
      Dan Elphick authored
      This is a reland of 40f1aaf3
      
      Put back padding clearing into the SerializeObject method but only when
      the String is not in RO_SPACE. For RO_SPACE strings, if required
      iterate over the space before serialization clearing the strings.
      
      Original change's description:
      > [heap] Mark RO_SPACE as read-only after deserialization
      >
      > Adds MarkAsReadOnly and MarkAsReadWrite to ReadOnlySpace. The latter
      > is only usable with ReadOnlySpace::WritableScope to avoid the space
      > being left writable). MarkAsReadOnly updates the high water mark and
      > makes several previously mutating methods into no-ops.
      >
      > Moves some writes to immutable objects out of the bootstrapper to
      > setup-heap-internal so they don't write to a read-only page.
      >
      > Also avoid writing hashes to strings that already have the value set as
      > that invariably means writing to the "0" and "1" constant strings in
      > RO_SPACE.
      >
      > Before serialization, it makes RO_SPACE writable again so that any
      > padding can be cleared before writing it.
      >
      > Bug: v8:7464
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      > Change-Id: I22edc20dba7dde8943991a8fcaf87244af4490a3
      > Reviewed-on: https://chromium-review.googlesource.com/1014128
      > Commit-Queue: Dan Elphick <delphick@chromium.org>
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#52943}
      
      Bug: v8:7464
      Change-Id: Ia8386c4ff5f5df3207f584caf7a9b1ff1e405f25
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/1042145Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53087}
      60064133
  3. 03 May, 2018 2 commits
    • Michael Achenbach's avatar
      Revert "[heap] Mark RO_SPACE as read-only after deserialization" · d14bca61
      Michael Achenbach authored
      This reverts commit 40f1aaf3.
      
      Reason for revert:
      https://luci-milo.appspot.com/buildbot/client.v8/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/21000
      
      Original change's description:
      > [heap] Mark RO_SPACE as read-only after deserialization
      > 
      > Adds MarkAsReadOnly and MarkAsReadWrite to ReadOnlySpace. The latter
      > is only usable with ReadOnlySpace::WritableScope to avoid the space
      > being left writable). MarkAsReadOnly updates the high water mark and
      > makes several previously mutating methods into no-ops.
      > 
      > Moves some writes to immutable objects out of the bootstrapper to
      > setup-heap-internal so they don't write to a read-only page.
      > 
      > Also avoid writing hashes to strings that already have the value set as
      > that invariably means writing to the "0" and "1" constant strings in
      > RO_SPACE.
      > 
      > Before serialization, it makes RO_SPACE writable again so that any
      > padding can be cleared before writing it.
      > 
      > Bug: v8:7464
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      > Change-Id: I22edc20dba7dde8943991a8fcaf87244af4490a3
      > Reviewed-on: https://chromium-review.googlesource.com/1014128
      > Commit-Queue: Dan Elphick <delphick@chromium.org>
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#52943}
      
      TBR=yangguo@chromium.org,hpayer@chromium.org,mlippautz@chromium.org,delphick@chromium.org
      
      Change-Id: Id4770c0fdb21cd9eea2f62a019f44a6bdea8f0a7
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7464
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/1041948Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52944}
      d14bca61
    • Dan Elphick's avatar
      [heap] Mark RO_SPACE as read-only after deserialization · 40f1aaf3
      Dan Elphick authored
      Adds MarkAsReadOnly and MarkAsReadWrite to ReadOnlySpace. The latter
      is only usable with ReadOnlySpace::WritableScope to avoid the space
      being left writable). MarkAsReadOnly updates the high water mark and
      makes several previously mutating methods into no-ops.
      
      Moves some writes to immutable objects out of the bootstrapper to
      setup-heap-internal so they don't write to a read-only page.
      
      Also avoid writing hashes to strings that already have the value set as
      that invariably means writing to the "0" and "1" constant strings in
      RO_SPACE.
      
      Before serialization, it makes RO_SPACE writable again so that any
      padding can be cleared before writing it.
      
      Bug: v8:7464
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Change-Id: I22edc20dba7dde8943991a8fcaf87244af4490a3
      Reviewed-on: https://chromium-review.googlesource.com/1014128
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52943}
      40f1aaf3
  4. 02 May, 2018 1 commit
    • Leszek Swirski's avatar
      Revert "[parser] Slice the source string where possible" · 18bc2856
      Leszek Swirski authored
      This reverts commit 2df5e7a7.
      
      Reason for revert: Mystery crashes https://bugs.chromium.org/p/chromium/issues/detail?id=838805
      
      Original change's description:
      > [parser] Slice the source string where possible
      > 
      > When internalizing string literals (for quoted strings or property names),
      > try to create a sliced string of the source string rather than allocating
      > a copy of the bytes.
      > 
      > This will not work for string literals that contain escapes (e.g. unicode
      > escapes), and currently does not support two-byte strings.
      > 
      > Bug: chromium:818642
      > Change-Id: I686e5ad36baecd1a84ce5e124118431249b6c980
      > Reviewed-on: https://chromium-review.googlesource.com/1010282
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      > Reviewed-by: Marja Hölttä <marja@chromium.org>
      > Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#52898}
      
      TBR=marja@chromium.org,yangguo@chromium.org,jarin@chromium.org,mlippautz@chromium.org,leszeks@chromium.org,verwaest@chromium.org
      
      Change-Id: I598b6668c43a3e843e2dd8e60852b2b2f3461954
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:818642
      Reviewed-on: https://chromium-review.googlesource.com/1039885
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52919}
      18bc2856
  5. 01 May, 2018 1 commit
  6. 18 Apr, 2018 1 commit
  7. 09 Apr, 2018 2 commits
  8. 06 Apr, 2018 2 commits
    • Michael Achenbach's avatar
      Revert "[cleanup] Refactor the Factory" · 503e07c3
      Michael Achenbach authored
      This reverts commit f9a2e24b.
      
      Reason for revert: gc stress failures not all fixed by follow up.
      
      Original change's description:
      > [cleanup] Refactor the Factory
      > 
      > There is no good reason to have the meat of most objects' initialization
      > logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead,
      > this CL changes the protocol between Heap and Factory to be AllocateRaw,
      > and all object initialization work after (possibly retried) successful
      > raw allocation happens in the Factory.
      > 
      > This saves about 20KB of binary size on x64.
      > 
      > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      > Change-Id: Icbfdc4266d7be8b48d2fe085f03411743dc6a0ca
      > Reviewed-on: https://chromium-review.googlesource.com/959533
      > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#52416}
      
      TBR=jkummerow@chromium.org,yangguo@chromium.org,mstarzinger@chromium.org,hpayer@chromium.org
      
      Change-Id: Idbbc53478742f3e9525eee83342afc6aedae122f
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/999414Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52420}
      503e07c3
    • Jakob Kummerow's avatar
      [cleanup] Refactor the Factory · f9a2e24b
      Jakob Kummerow authored
      There is no good reason to have the meat of most objects' initialization
      logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead,
      this CL changes the protocol between Heap and Factory to be AllocateRaw,
      and all object initialization work after (possibly retried) successful
      raw allocation happens in the Factory.
      
      This saves about 20KB of binary size on x64.
      
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Change-Id: Icbfdc4266d7be8b48d2fe085f03411743dc6a0ca
      Reviewed-on: https://chromium-review.googlesource.com/959533
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52416}
      f9a2e24b
  9. 20 Feb, 2018 1 commit
  10. 13 Feb, 2018 1 commit
    • Sigurd Schneider's avatar
      Reland "[cleanup] Harden the SubString CSA/Runtime implementations." · bb282636
      Sigurd Schneider authored
      This is a reland of 6d5b54df82e27a82811a836dcdbbfe26829f0e6d
      Original change's description:
      > [cleanup] Harden the SubString CSA/Runtime implementations.
      >
      > Remove the self-healing for invalid parameters in the
      > CodeStubAssembler::SubString helper and the %SubString runtime function,
      > which is used as a fallback for the CodeStubAssembler implementation.
      > All call sites must do appropriate parameter validation anyways now that
      > the self-hosted JavaScript builtins using these helpers are gone, and we
      > have proper contracts with the uses.
      >
      > Also remove the context parameter from the CodeStubAssembler::SubString
      > method, which is unnecessary, since this can no longer throw an
      > exception.
      >
      > Bug: v8:5269, v8:6936, v8:7109, v8:7137
      > Change-Id: I19d93bad5f41faa0561c4561a48f78fcba99a549
      > Reviewed-on: https://chromium-review.googlesource.com/795720
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#49702}
      
      Bug: v8:5269, v8:6936, v8:7109, v8:7137
      Change-Id: I5e84998a2dd3990d7981505b401ffc770e0b7ac5
      Reviewed-on: https://chromium-review.googlesource.com/913130Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51265}
      bb282636
  11. 06 Feb, 2018 1 commit
  12. 02 Dec, 2017 1 commit
    • Mathias Bynens's avatar
      Normalize casing of hexadecimal digits · 822be9b2
      Mathias Bynens authored
      This patch normalizes the casing of hexadecimal digits in escape
      sequences of the form `\xNN` and integer literals of the form
      `0xNNNN`.
      
      Previously, the V8 code base used an inconsistent mixture of uppercase
      and lowercase.
      
      Google’s C++ style guide uses uppercase in its examples:
      https://google.github.io/styleguide/cppguide.html#Non-ASCII_Characters
      
      Moreover, uppercase letters more clearly stand out from the lowercase
      `x` (or `u`) characters at the start, as well as lowercase letters
      elsewhere in strings.
      
      BUG=v8:7109
      TBR=marja@chromium.org,titzer@chromium.org,mtrofin@chromium.org,mstarzinger@chromium.org,rossberg@chromium.org,yangguo@chromium.org,mlippautz@chromium.org
      NOPRESUBMIT=true
      
      Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: I790e21c25d96ad5d95c8229724eb45d2aa9e22d6
      Reviewed-on: https://chromium-review.googlesource.com/804294
      Commit-Queue: Mathias Bynens <mathias@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49810}
      822be9b2
  13. 29 Nov, 2017 2 commits
    • Michael Achenbach's avatar
      Revert "[cleanup] Harden the SubString CSA/Runtime implementations." · c0a4680d
      Michael Achenbach authored
      This reverts commit 99cb4d35.
      
      Reason for revert:
      https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap%20-%20debug/builds/16445
      
      Original change's description:
      > [cleanup] Harden the SubString CSA/Runtime implementations.
      > 
      > Remove the self-healing for invalid parameters in the
      > CodeStubAssembler::SubString helper and the %SubString runtime function,
      > which is used as a fallback for the CodeStubAssembler implementation.
      > All call sites must do appropriate parameter validation anyways now that
      > the self-hosted JavaScript builtins using these helpers are gone, and we
      > have proper contracts with the uses.
      > 
      > Also remove the context parameter from the CodeStubAssembler::SubString
      > method, which is unnecessary, since this can no longer throw an
      > exception.
      > 
      > Bug: v8:5269, v8:6936, v8:7109, v8:7137
      > Change-Id: I19d93bad5f41faa0561c4561a48f78fcba99a549
      > Reviewed-on: https://chromium-review.googlesource.com/795720
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#49702}
      
      TBR=jgruber@chromium.org,bmeurer@chromium.org
      
      Change-Id: I2900b5f087e78f1d321724f03bd063a5ff094183
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:5269, v8:6936, v8:7109, v8:7137
      Reviewed-on: https://chromium-review.googlesource.com/796150Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49703}
      c0a4680d
    • Benedikt Meurer's avatar
      [cleanup] Harden the SubString CSA/Runtime implementations. · 99cb4d35
      Benedikt Meurer authored
      Remove the self-healing for invalid parameters in the
      CodeStubAssembler::SubString helper and the %SubString runtime function,
      which is used as a fallback for the CodeStubAssembler implementation.
      All call sites must do appropriate parameter validation anyways now that
      the self-hosted JavaScript builtins using these helpers are gone, and we
      have proper contracts with the uses.
      
      Also remove the context parameter from the CodeStubAssembler::SubString
      method, which is unnecessary, since this can no longer throw an
      exception.
      
      Bug: v8:5269, v8:6936, v8:7109, v8:7137
      Change-Id: I19d93bad5f41faa0561c4561a48f78fcba99a549
      Reviewed-on: https://chromium-review.googlesource.com/795720Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49702}
      99cb4d35
  14. 20 Nov, 2017 1 commit
  15. 02 Nov, 2017 1 commit
  16. 20 Oct, 2017 1 commit
  17. 13 Oct, 2017 1 commit
  18. 28 Sep, 2017 1 commit
  19. 21 Sep, 2017 1 commit
  20. 04 Sep, 2017 1 commit
  21. 28 Aug, 2017 1 commit
  22. 14 Aug, 2017 1 commit
  23. 10 Aug, 2017 1 commit
  24. 08 Aug, 2017 1 commit
  25. 19 Jul, 2017 1 commit
    • Ulan Degenbaev's avatar
      [heap] Add API to set heap semi-space limits in KB. · bb29f9a4
      Ulan Degenbaev authored
      This relands parts of "[heap] Allow a minimum semi-space size of 512K."
      excluding the actual semi-space size change.
      
      This partially reverts commit f341bb0f
      
      > Original commit message:
      > Revert "[heap] Allow a minimum semi-space size of 512K."
      > This reverts commit 0d2ed6c3.
      > The CL introduced perf regressions: crbug.com/735649.
      > We are going to reland the CL in an isolated V8 roll to ensure
      > that perf regressions are attributed correctly.
      
      > Original commit message:
      > > [heap] Allow a minimum semi-space size of 512K.
      > > This CL also reduces the minimum semi-space size to 512K.
      > > BUG=chromium:716032
      > BUG=chromium:735649
      
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: I5ed66b72104aa877d67fcd20bdadc807ea1551c3
      Reviewed-on: https://chromium-review.googlesource.com/575065
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46762}
      bb29f9a4
  26. 30 Jun, 2017 1 commit
    • Ulan Degenbaev's avatar
      Revert "[heap] Allow a minimum semi-space size of 512K." · f341bb0f
      Ulan Degenbaev authored
      This reverts commit 0d2ed6c3.
      
      The CL introduced perf regressions: crbug.com/735649.
      
      We are going to reland the CL in an isolated V8 roll to ensure
      that perf regressions are attributed correctly.
      
      Original commit message:
      > [heap] Allow a minimum semi-space size of 512K.
      > This CL also reduces the minimum semi-space size to 512K.
      > BUG=chromium:716032
      
      BUG=chromium:735649
      
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: I1f1b08ca6853347c00070f000c309d839ff8a4bb
      Reviewed-on: https://chromium-review.googlesource.com/552541Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46349}
      f341bb0f
  27. 29 Jun, 2017 1 commit
  28. 19 Jun, 2017 1 commit
  29. 29 May, 2017 2 commits
  30. 22 May, 2017 1 commit
  31. 03 May, 2017 1 commit
    • mlippautz's avatar
      [heap] MinorMC: Evacuation for young generation · bf74d43d
      mlippautz authored
      In the spirit of the full MC, we evacuate and update pointers in parallel for
      the young generation.
      
      The collectors are connected during incremental marking when mark bits are
      transferred from the young generation bitmap to the old generation bitmap.
      
      The evacuation phase cannot (yet) move pages and relies completely on copying
      objects.
      
      BUG=chromium:651354
      
      Review-Url: https://codereview.chromium.org/2796233003
      Cr-Commit-Position: refs/heads/master@{#45074}
      bf74d43d
  32. 17 Mar, 2017 2 commits
  33. 31 Jan, 2017 1 commit
  34. 19 Jan, 2017 1 commit