TM: Other builtins that call JS_malloc

RESOLVED FIXED

Status

()

Core
JavaScript Engine
RESOLVED FIXED
9 years ago
6 years ago

People

(Reporter: jorendorff, Assigned: jorendorff)

Tracking

({fixed1.9.1})

Other Branch
fixed1.9.1
Points:
---
Bug Flags:
blocking1.9.1 +

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: fixed-in-tracemonkey)

Attachments

(1 attachment)

(Assignee)

Description

9 years ago
Spun off from bug 482015 comment 8.  As bad as that bug if it bites, so probably a blocker.
Flags: blocking1.9.1?
(Assignee)

Comment 1

9 years ago
Here's the list of functions that can (I think) end up in JS_malloc or JS_ReportOutOfMemory.  Not entirely sure about js_AddProperty.

js_AddProperty
js_ArrayCompPush
js_Array_1str
js_Array_dense_setelem
js_ConcatStrings
js_NewUninitializedArray
js_StringToNumber (!) (via js_strtointeger)
js_String_getelem

Andreas doesn't want me to add a hack in JS_malloc (and friends) like the one in js_NewGCThing:

    if (!JS_ON_TRACE(cx))               // too cute? andreas thinks so
        JS_ReportOutOfMemory(cx);

But I don't see a better way to fix this.

Comment 2

9 years ago
(In reply to comment #1)
> Not entirely sure about js_AddProperty.

The function may call js_ReallocSlots which uses OOM-reporting JS_realloc.
(Assignee)

Comment 3

9 years ago
Created attachment 371506 [details] [diff] [review]
v1

perf results coming
Assignee: general → jorendorff
Attachment #371506 - Flags: review?(gal)

Updated

9 years ago
Attachment #371506 - Flags: review?(gal) → review+
(Assignee)

Comment 4

9 years ago
SunSpider, 50 runs:

** TOTAL **:           *1.006x as slow*  2226.6ms +/- 0.2%   2240.2ms +/- 0.7%     significant

14ms slower?
(Assignee)

Comment 5

9 years ago
TEST                   COMPARISON            FROM                 TO             DETAILS

=============================================================================

** TOTAL **:           *1.006x as slow*  2226.6ms +/- 0.2%   2240.2ms +/- 0.7%     significant

=============================================================================

  3d:                  *1.010x as slow*   341.4ms +/- 0.3%    344.9ms +/- 1.4%     significant
    cube:              ??                  95.8ms +/- 0.5%     96.2ms +/- 1.8%     not conclusive: might be *1.004x as slow*
    morph:             *1.014x as slow*    63.8ms +/- 0.6%     64.7ms +/- 1.9%     significant
    raytrace:          *1.012x as slow*   181.7ms +/- 0.4%    184.0ms +/- 1.3%     significant

  access:              *1.016x as slow*   290.8ms +/- 0.3%    295.4ms +/- 1.3%     significant
    binary-trees:      *1.009x as slow*    83.6ms +/- 0.3%     84.3ms +/- 0.8%     significant
    fannkuch:          *1.019x as slow*   122.1ms +/- 0.5%    124.5ms +/- 2.0%     significant
    nbody:             *1.016x as slow*    57.6ms +/- 0.3%     58.6ms +/- 1.4%     significant
    nsieve:            *1.021x as slow*    27.5ms +/- 0.6%     28.0ms +/- 1.5%     significant

  bitops:              -                   76.3ms +/- 0.6%     75.8ms +/- 0.6% 
    3bit-bits-in-byte: -                    3.5ms +/- 4.1%      3.5ms +/- 4.4% 
    bits-in-byte:      -                   17.0ms +/- 0.6%     17.0ms +/- 0.8% 
    bitwise-and:       -                    4.4ms +/- 3.2%      4.4ms +/- 3.2% 
    nsieve-bits:       1.009x as fast      51.3ms +/- 0.5%     50.9ms +/- 0.5%     significant

  controlflow:         ??                  68.7ms +/- 0.4%     68.8ms +/- 0.4%     not conclusive: might be *1.001x as slow*
    recursive:         ??                  68.7ms +/- 0.4%     68.8ms +/- 0.4%     not conclusive: might be *1.001x as slow*

  crypto:              -                  143.6ms +/- 1.4%    143.4ms +/- 1.3% 
    aes:               -                   82.0ms +/- 2.2%     81.5ms +/- 2.0% 
    md5:               ??                  45.2ms +/- 0.9%     45.6ms +/- 1.1%     not conclusive: might be *1.009x as slow*
    sha1:              -                   16.3ms +/- 1.0%     16.3ms +/- 1.3% 

  date:                ??                 386.5ms +/- 0.4%    388.3ms +/- 0.9%     not conclusive: might be *1.005x as slow*
    format-tofte:      ??                 138.2ms +/- 0.7%    138.7ms +/- 0.9%     not conclusive: might be *1.004x as slow*
    format-xparb:      ??                 248.3ms +/- 0.4%    249.5ms +/- 1.1%     not conclusive: might be *1.005x as slow*

  math:                -                   89.6ms +/- 0.9%     88.9ms +/- 1.1% 
    cordic:            1.028x as fast      42.7ms +/- 1.4%     41.5ms +/- 1.6%     significant
    partial-sums:      *1.012x as slow*    32.8ms +/- 0.8%     33.2ms +/- 0.9%     significant
    spectral-norm:     ??                  14.1ms +/- 1.1%     14.3ms +/- 1.3%     not conclusive: might be *1.008x as slow*

  regexp:              *1.023x as slow*    90.2ms +/- 0.6%     92.3ms +/- 2.0%     significant
    dna:               *1.023x as slow*    90.2ms +/- 0.6%     92.3ms +/- 2.0%     significant

  string:              ??                 739.4ms +/- 0.2%    742.4ms +/- 0.7%     not conclusive: might be *1.004x as slow*
    base64:            *1.017x as slow*    38.3ms +/- 0.6%     39.0ms +/- 2.1%     significant
    fasta:             *1.021x as slow*   159.3ms +/- 0.3%    162.6ms +/- 0.9%     significant
    tagcloud:          *1.007x as slow*   214.4ms +/- 0.3%    215.9ms +/- 1.3%     significant
    unpack-code:       1.013x as fast     259.6ms +/- 0.4%    256.3ms +/- 0.8%     significant
    validate-input:    *1.012x as slow*    67.8ms +/- 0.3%     68.6ms +/- 0.7%     significant
(Assignee)

Comment 6

9 years ago
But if I also revert the previous changeset (bug 482015):

TEST                   COMPARISON            FROM                 TO             DETAILS

=============================================================================

** TOTAL **:           1.011x as fast    2226.6ms +/- 0.2%   2201.5ms +/- 0.2%     significant

=============================================================================

  3d:                  ??                 341.4ms +/- 0.3%    342.4ms +/- 0.3%     not conclusive: might be *1.003x as slow*
    cube:              -                   95.8ms +/- 0.5%     95.5ms +/- 0.6% 
    morph:             *1.023x as slow*    63.8ms +/- 0.6%     65.3ms +/- 0.4%     significant
    raytrace:          -                  181.7ms +/- 0.4%    181.7ms +/- 0.4% 

  access:              *1.011x as slow*   290.8ms +/- 0.3%    294.0ms +/- 0.2%     significant
    binary-trees:      *1.031x as slow*    83.6ms +/- 0.3%     86.2ms +/- 0.3%     significant
    fannkuch:          ??                 122.1ms +/- 0.5%    122.7ms +/- 0.2%     not conclusive: might be *1.005x as slow*
    nbody:             1.006x as fast      57.6ms +/- 0.3%     57.3ms +/- 0.5%     significant
    nsieve:            *1.015x as slow*    27.5ms +/- 0.6%     27.9ms +/- 1.3%     significant

  bitops:              -                   76.3ms +/- 0.6%     75.7ms +/- 0.8% 
    3bit-bits-in-byte: -                    3.5ms +/- 4.1%      3.4ms +/- 4.1% 
    bits-in-byte:      -                   17.0ms +/- 0.6%     16.9ms +/- 1.2% 
    bitwise-and:       ??                   4.4ms +/- 3.2%      4.5ms +/- 3.4%     not conclusive: might be *1.014x as slow*
    nsieve-bits:       1.009x as fast      51.3ms +/- 0.5%     50.9ms +/- 0.4%     significant

  controlflow:         -                   68.7ms +/- 0.4%     68.5ms +/- 0.3% 
    recursive:         -                   68.7ms +/- 0.4%     68.5ms +/- 0.3% 

  crypto:              -                  143.6ms +/- 1.4%    141.8ms +/- 0.6% 
    aes:               -                   82.0ms +/- 2.2%     80.6ms +/- 0.9% 
    md5:               -                   45.2ms +/- 0.9%     44.9ms +/- 0.4% 
    sha1:              ??                  16.3ms +/- 1.0%     16.4ms +/- 1.2%     not conclusive: might be *1.002x as slow*

  date:                1.021x as fast     386.5ms +/- 0.4%    378.4ms +/- 0.6%     significant
    format-tofte:      1.009x as fast     138.2ms +/- 0.7%    137.0ms +/- 0.3%     significant
    format-xparb:      1.028x as fast     248.3ms +/- 0.4%    241.5ms +/- 0.9%     significant

  math:                1.031x as fast      89.6ms +/- 0.9%     86.9ms +/- 0.3%     significant
    cordic:            1.060x as fast      42.7ms +/- 1.4%     40.3ms +/- 0.4%     significant
    partial-sums:      -                   32.8ms +/- 0.8%     32.7ms +/- 0.5% 
    spectral-norm:     1.016x as fast      14.1ms +/- 1.1%     13.9ms +/- 0.8%     significant

  regexp:              -                   90.2ms +/- 0.6%     89.8ms +/- 0.5% 
    dna:               -                   90.2ms +/- 0.6%     89.8ms +/- 0.5% 

  string:              1.021x as fast     739.4ms +/- 0.2%    723.9ms +/- 0.4%     significant
    base64:            1.056x as fast      38.3ms +/- 0.6%     36.3ms +/- 0.4%     significant
    fasta:             *1.010x as slow*   159.3ms +/- 0.3%    160.9ms +/- 0.3%     significant
    tagcloud:          1.011x as fast     214.4ms +/- 0.3%    212.1ms +/- 0.9%     significant
    unpack-code:       1.048x as fast     259.6ms +/- 0.4%    247.7ms +/- 0.3%     significant
    validate-input:    1.012x as fast      67.8ms +/- 0.3%     66.9ms +/- 0.5%     significant
(Assignee)

Comment 7

9 years ago
http://hg.mozilla.org/tracemonkey/rev/6936f8a3fba7
(Assignee)

Updated

9 years ago
Whiteboard: fixed-in-tracemonkey

Comment 8

9 years ago
http://hg.mozilla.org/mozilla-central/rev/6936f8a3fba7
Status: NEW → RESOLVED
Last Resolved: 9 years ago
Resolution: --- → FIXED

Updated

9 years ago
Flags: blocking1.9.1? → blocking1.9.1+

Comment 9

9 years ago
http://hg.mozilla.org/releases/mozilla-1.9.1/rev/2fe2cb36e3f8
Keywords: fixed1.9.1

Updated

9 years ago
Duplicate of this bug: 482015

Updated

6 years ago
Depends on: 705669
You need to log in before you can comment on or make changes to this bug.