Bug 119471

Summary: Copied space should be able to handle more than one copied backing store per JSCell
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Filip Pizlo <fpizlo>
Status: RESOLVED FIXED    
Severity: Normal CC: barraclough, buildbot, eflews.bot, ggaren, gtk-ews, gyuyoung.kim, mark.lam, mhahnenberg, msaboff, oliver, rniwa, sam, xan.lopez
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Bug Depends on:    
Bug Blocks: 119064    
Attachments:
Description Flags
the patch
none
the patch
buildbot: commit-queue-
fix some things
eflews.bot: commit-queue-
Archive of layout-test-results from webkit-ews-10 for mac-mountainlion-wk2
none
the patch mhahnenberg: review+

Filip Pizlo
Reported 2013-08-03 14:39:12 PDT
Patch forthcoming.
Attachments
the patch (22.62 KB, patch)
2013-08-03 17:45 PDT, Filip Pizlo
no flags
the patch (21.76 KB, patch)
2013-08-03 17:46 PDT, Filip Pizlo
buildbot: commit-queue-
fix some things (21.95 KB, patch)
2013-08-03 23:10 PDT, Filip Pizlo
eflews.bot: commit-queue-
Archive of layout-test-results from webkit-ews-10 for mac-mountainlion-wk2 (527.00 KB, application/zip)
2013-08-04 01:13 PDT, Build Bot
no flags
the patch (21.97 KB, patch)
2013-08-04 10:32 PDT, Filip Pizlo
mhahnenberg: review+
Filip Pizlo
Comment 1 2013-08-03 17:45:06 PDT
Created attachment 208075 [details] the patch
Filip Pizlo
Comment 2 2013-08-03 17:46:25 PDT
Created attachment 208076 [details] the patch Reverted some nonsense.
Build Bot
Comment 3 2013-08-03 18:14:09 PDT
Comment on attachment 208076 [details] the patch Attachment 208076 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.appspot.com/results/1329659
Build Bot
Comment 4 2013-08-03 18:26:38 PDT
kov's GTK+ EWS bot
Comment 5 2013-08-03 18:56:55 PDT
Filip Pizlo
Comment 6 2013-08-03 23:10:41 PDT
Created attachment 208077 [details] fix some things
EFL EWS Bot
Comment 7 2013-08-03 23:20:29 PDT
Comment on attachment 208077 [details] fix some things Attachment 208077 [details] did not pass efl-wk2-ews (efl-wk2): Output: http://webkit-queues.appspot.com/results/1334714
EFL EWS Bot
Comment 8 2013-08-03 23:27:38 PDT
Comment on attachment 208077 [details] fix some things Attachment 208077 [details] did not pass efl-ews (efl): Output: http://webkit-queues.appspot.com/results/1333664
Build Bot
Comment 9 2013-08-04 01:13:40 PDT
Comment on attachment 208077 [details] fix some things Attachment 208077 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.appspot.com/results/1358019 New failing tests: editing/style/5065910.html
Build Bot
Comment 10 2013-08-04 01:13:44 PDT
Created attachment 208082 [details] Archive of layout-test-results from webkit-ews-10 for mac-mountainlion-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: webkit-ews-10 Port: mac-mountainlion-wk2 Platform: Mac OS X 10.8.4
Filip Pizlo
Comment 11 2013-08-04 10:32:02 PDT
Created attachment 208095 [details] the patch Fixed more things. It turns out that unsigned arithmetic is hard.
Filip Pizlo
Comment 12 2013-08-04 12:03:47 PDT
It's neutral. Benchmark report for SunSpider, V8Spider, Octane, Kraken, and JSRegress on oldmac (MacPro4,1). VMs tested: "TipOfTree" at /Volumes/Data/pizlo/OpenSource/WebKitBuild/Release/jsc (r153690) "MultiCopy" at /Volumes/Data/fromMiniMe/tertiary/OpenSource/WebKitBuild/Release/jsc (r153690) Collected 12 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between sample measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds. TipOfTree MultiCopy SunSpider: 3d-cube 6.6084+-0.0670 ? 6.6312+-0.0676 ? 3d-morph 8.2842+-0.0902 8.2371+-0.0884 3d-raytrace 8.7122+-0.1923 ? 8.8042+-0.1789 ? might be 1.0106x slower access-binary-trees 1.8601+-0.0294 1.8379+-0.0168 might be 1.0121x faster access-fannkuch 7.6767+-0.0542 7.6308+-0.0670 access-nbody 4.0520+-0.0116 ? 4.0632+-0.0101 ? access-nsieve 4.8820+-0.0350 4.8410+-0.0860 bitops-3bit-bits-in-byte 1.7959+-0.0141 ? 1.8030+-0.0265 ? bitops-bits-in-byte 7.0326+-0.1102 6.9587+-0.1294 might be 1.0106x faster bitops-bitwise-and 2.8113+-0.0531 ? 2.8333+-0.0565 ? bitops-nsieve-bits 4.6926+-0.0521 4.6453+-0.0507 might be 1.0102x faster controlflow-recursive 3.0135+-0.0259 3.0030+-0.0260 crypto-aes 5.2100+-0.0429 ? 5.2366+-0.0533 ? crypto-md5 2.9890+-0.0282 ? 3.0552+-0.0620 ? might be 1.0222x slower crypto-sha1 2.8512+-0.0505 2.8072+-0.0155 might be 1.0157x faster date-format-tofte 11.1102+-0.2722 10.9307+-0.1408 might be 1.0164x faster date-format-xparb 7.7230+-0.1341 7.6259+-0.1512 might be 1.0127x faster math-cordic 3.9942+-0.0167 3.9853+-0.0155 math-partial-sums 10.6859+-0.3245 10.5752+-0.1006 might be 1.0105x faster math-spectral-norm 2.7977+-0.0190 2.7959+-0.0155 regexp-dna 12.8399+-0.2702 12.7453+-0.1929 string-base64 5.2338+-0.0417 ? 5.2668+-0.0518 ? string-fasta 10.8814+-0.1526 ? 10.9394+-0.1722 ? string-tagcloud 14.0543+-0.2180 14.0019+-0.1978 string-unpack-code 28.9331+-0.1449 28.8718+-0.1719 string-validate-input 6.4797+-0.0663 ? 6.4858+-0.0897 ? <arithmetic> * 7.2002+-0.0447 7.1774+-0.0456 might be 1.0032x faster <geometric> 5.7599+-0.0269 5.7469+-0.0292 might be 1.0022x faster <harmonic> 4.7043+-0.0172 4.6971+-0.0183 might be 1.0015x faster TipOfTree MultiCopy V8Spider: crypto 79.5720+-0.1497 ? 79.7149+-0.2341 ? deltablue 102.9256+-1.0849 ? 103.3291+-0.7003 ? earley-boyer 70.0644+-0.4302 69.7016+-0.4504 raytrace 39.5780+-0.1768 ? 39.6483+-0.1583 ? regexp 100.7834+-0.3165 ? 101.6721+-0.7443 ? richards 111.7004+-0.8242 ? 112.6253+-1.1895 ? splay 46.8866+-0.3978 ? 46.9401+-0.3458 ? <arithmetic> 78.7872+-0.2864 ? 79.0902+-0.2912 ? might be 1.0038x slower <geometric> * 73.8540+-0.2536 ? 74.0695+-0.2160 ? might be 1.0029x slower <harmonic> 68.6058+-0.2237 ? 68.7502+-0.1551 ? might be 1.0021x slower TipOfTree MultiCopy Octane and V8v7: encrypt 0.47194+-0.00641 0.46554+-0.00056 might be 1.0138x faster decrypt 8.52794+-0.02174 ? 8.53422+-0.02941 ? deltablue x2 0.58934+-0.00235 0.58845+-0.00164 earley 0.88073+-0.00622 ? 0.88108+-0.01445 ? boyer 12.59033+-0.02627 ? 12.61791+-0.03597 ? raytrace x2 4.27124+-0.01586 ? 4.31898+-0.05534 ? might be 1.0112x slower regexp x2 32.49390+-0.37484 32.45762+-0.38861 richards x2 0.31072+-0.00096 ? 0.31238+-0.00262 ? splay x2 0.64833+-0.03303 0.64398+-0.01941 navier-stokes x2 10.82776+-0.00603 ? 10.84561+-0.02009 ? closure 0.37933+-0.02138 ? 0.37963+-0.02229 ? jquery 4.69787+-0.56637 ? 4.71587+-0.56833 ? gbemu x2 134.25397+-1.41226 132.88941+-0.47663 might be 1.0103x faster box2d x2 32.06193+-0.22252 31.93734+-0.09131 V8v7: <arithmetic> 7.54709+-0.04887 ? 7.55205+-0.05084 ? might be 1.0007x slower <geometric> * 2.42320+-0.01731 ? 2.42464+-0.01307 ? might be 1.0006x slower <harmonic> 0.93598+-0.00905 0.93554+-0.00553 might be 1.0005x faster Octane including V8v7: <arithmetic> 20.83920+-0.13318 20.70826+-0.06053 might be 1.0063x faster <geometric> * 4.17762+-0.03040 4.17504+-0.03041 might be 1.0006x faster <harmonic> 1.09745+-0.01005 1.09713+-0.00867 might be 1.0003x faster TipOfTree MultiCopy Kraken: ai-astar 492.078+-0.622 ? 492.093+-0.669 ? audio-beat-detection 241.912+-1.237 ^ 240.153+-0.405 ^ definitely 1.0073x faster audio-dft 309.129+-1.549 307.565+-1.173 audio-fft 142.895+-0.199 ? 142.940+-0.149 ? audio-oscillator 246.754+-5.744 ? 251.090+-6.888 ? might be 1.0176x slower imaging-darkroom 279.749+-1.833 278.787+-1.737 imaging-desaturate 158.026+-0.250 ? 158.107+-0.296 ? imaging-gaussian-blur 402.389+-0.480 402.259+-0.279 json-parse-financial 79.651+-0.228 ^ 78.354+-0.302 ^ definitely 1.0166x faster json-stringify-tinderbox 103.922+-0.594 103.606+-0.656 stanford-crypto-aes 91.584+-0.629 ? 91.851+-0.621 ? stanford-crypto-ccm 97.846+-1.847 97.681+-1.826 stanford-crypto-pbkdf2 257.877+-0.842 ! 261.455+-2.357 ! definitely 1.0139x slower stanford-crypto-sha256-iterative 114.373+-0.213 114.149+-0.169 <arithmetic> * 215.585+-0.237 ? 215.721+-0.434 ? might be 1.0006x slower <geometric> 183.857+-0.150 183.797+-0.333 might be 1.0003x faster <harmonic> 157.670+-0.284 157.364+-0.367 might be 1.0019x faster TipOfTree MultiCopy JSRegress: adapt-to-double-divide 22.6113+-0.0757 ? 22.6254+-0.0864 ? aliased-arguments-getbyval 0.8778+-0.0127 0.8732+-0.0114 allocate-big-object 2.5115+-0.0250 ? 2.5166+-0.0228 ? arity-mismatch-inlining 0.8387+-0.0176 ? 0.8406+-0.0236 ? array-access-polymorphic-structure 6.8322+-0.0495 6.8104+-0.0738 array-nonarray-polymorhpic-access 56.3510+-0.0742 ? 75.7599+-28.7736 ? might be 1.3444x slower array-with-double-add 5.9814+-0.0647 5.9187+-0.0619 might be 1.0106x faster array-with-double-increment 4.2391+-0.0185 ? 4.2394+-0.0187 ? array-with-double-mul-add 6.7497+-0.0812 ? 6.7572+-0.0696 ? array-with-double-sum 8.0676+-0.0834 7.9557+-0.1084 might be 1.0141x faster array-with-int32-add-sub 10.7039+-0.1154 10.6277+-0.0999 array-with-int32-or-double-sum 8.1097+-0.0874 8.0930+-0.0777 big-int-mul 4.8275+-0.0505 ? 4.8663+-0.0139 ? boolean-test 4.4624+-0.0383 4.4460+-0.0313 branch-fold 4.8073+-0.0549 4.7985+-0.0582 cast-int-to-double 14.2791+-0.1249 ? 14.3220+-0.1116 ? cell-argument 14.9480+-0.2457 14.8717+-0.3762 cfg-simplify 3.8823+-0.0147 3.8806+-0.0149 cmpeq-obj-to-obj-other 12.8992+-0.1207 ? 12.9265+-0.2821 ? constant-test 8.7961+-0.1588 8.7156+-0.1479 direct-arguments-getbyval 0.7673+-0.0159 0.7658+-0.0163 double-pollution-getbyval 10.8173+-0.0818 ? 10.9043+-0.0780 ? double-pollution-putbyoffset 5.8950+-0.1022 ? 5.9278+-0.0529 ? empty-string-plus-int 10.3563+-0.2746 10.2067+-0.1913 might be 1.0147x faster external-arguments-getbyval 1.8754+-0.0294 1.8513+-0.0209 might be 1.0130x faster external-arguments-putbyval 3.0350+-0.0175 ? 3.0807+-0.0576 ? might be 1.0151x slower Float32Array-matrix-mult 14.0279+-0.0923 14.0164+-0.1414 fold-double-to-int 25.6553+-0.3978 ? 26.0422+-0.5371 ? might be 1.0151x slower function-dot-apply 3.0850+-0.0121 ? 3.1024+-0.0352 ? function-test 4.9385+-0.0623 4.9098+-0.1485 get-by-id-chain-from-try-block 6.8316+-0.1971 ? 6.9200+-0.1500 ? might be 1.0129x slower get-by-id-proto-or-self 22.9717+-0.3842 22.7431+-0.3074 might be 1.0100x faster get-by-id-self-or-proto 23.3968+-0.3835 ? 23.5462+-0.2497 ? HashMap-put-get-iterate-keys 42.5139+-0.2333 ? 42.7218+-0.1500 ? HashMap-put-get-iterate 52.1826+-0.3631 52.0432+-0.3250 HashMap-string-put-get-iterate 49.1019+-0.2920 ? 49.3146+-0.1722 ? imul-double-only 18.5939+-1.1405 17.5855+-0.0913 might be 1.0573x faster imul-int-only 14.9861+-0.2114 ? 15.1592+-0.2251 ? might be 1.0115x slower imul-mixed 23.1556+-1.1394 22.1049+-0.1054 might be 1.0475x faster in-four-cases 26.2485+-0.0936 26.2238+-0.0897 in-one-case-false 12.3458+-0.0910 12.3250+-0.0771 in-one-case-true 12.2985+-0.0999 12.2491+-0.0895 in-two-cases 12.6198+-0.0711 ? 12.7474+-0.1107 ? might be 1.0101x slower indexed-properties-in-objects 4.2925+-0.0132 ? 4.2944+-0.0113 ? inline-arguments-access 1.3851+-0.0171 1.3791+-0.0120 inline-arguments-local-escape 21.6342+-0.2154 ? 22.0132+-0.2294 ? might be 1.0175x slower inline-get-scoped-var 6.9401+-0.0870 ? 7.0512+-0.0500 ? might be 1.0160x slower inlined-put-by-id-transition 14.8880+-0.3446 14.7019+-0.2267 might be 1.0127x faster int-or-other-abs-then-get-by-val 9.2355+-0.0802 9.2016+-0.0693 int-or-other-abs-zero-then-get-by-val 35.5902+-0.1140 ? 35.7821+-0.3382 ? int-or-other-add-then-get-by-val 10.3145+-0.0696 ? 10.3154+-0.0965 ? int-or-other-add 10.5414+-0.0996 ? 10.6209+-0.1141 ? int-or-other-div-then-get-by-val 6.4072+-0.0584 6.3173+-0.0808 might be 1.0142x faster int-or-other-max-then-get-by-val 7.2071+-0.0692 7.1839+-0.0798 int-or-other-min-then-get-by-val 7.2290+-0.0858 7.2177+-0.1011 int-or-other-mod-then-get-by-val 6.0099+-0.0564 ? 6.0124+-0.0751 ? int-or-other-mul-then-get-by-val 6.6946+-0.0973 6.5449+-0.0873 might be 1.0229x faster int-or-other-neg-then-get-by-val 8.1211+-0.1187 8.0707+-0.0862 int-or-other-neg-zero-then-get-by-val 36.3291+-0.6301 35.8235+-0.1048 might be 1.0141x faster int-or-other-sub-then-get-by-val 10.2933+-0.1181 10.2890+-0.0743 int-or-other-sub 8.3800+-0.1139 8.3586+-0.0821 int-overflow-local 11.8784+-0.0967 ? 11.9875+-0.1153 ? Int16Array-bubble-sort 48.8396+-0.1767 48.7275+-0.0552 Int16Array-load-int-mul 1.9596+-0.0146 ? 1.9679+-0.0168 ? Int8Array-load 4.8771+-0.0190 4.8686+-0.0531 integer-divide 15.3416+-0.0739 15.2996+-0.1021 integer-modulo 1.9229+-0.0139 ? 1.9271+-0.0129 ? make-indexed-storage 3.9768+-0.0625 3.9664+-0.0446 make-rope-cse 5.8329+-0.0739 5.8232+-0.0752 marsaglia 522.2952+-1.2002 521.4307+-0.1787 method-on-number 25.5676+-0.3352 ? 25.8594+-0.5656 ? might be 1.0114x slower negative-zero-divide 0.3501+-0.0192 ? 0.3547+-0.0271 ? might be 1.0129x slower negative-zero-modulo 0.3420+-0.0202 0.3401+-0.0194 negative-zero-negate 0.3351+-0.0249 0.3235+-0.0211 might be 1.0357x faster nested-function-parsing-random 398.7781+-13.1899 394.9828+-12.9264 nested-function-parsing 47.3426+-1.2054 ? 47.7702+-1.0993 ? new-array-buffer-dead 3.7168+-0.0401 3.6745+-0.0191 might be 1.0115x faster new-array-buffer-push 10.3329+-0.1543 ? 10.3847+-0.1076 ? new-array-dead 28.3903+-0.0850 ? 28.4446+-0.1068 ? new-array-push 7.0293+-0.0746 7.0129+-0.0791 number-test 4.4068+-0.0419 4.3621+-0.0142 might be 1.0102x faster object-closure-call 11.2590+-2.0255 ? 13.2628+-1.4980 ? might be 1.1780x slower object-test 4.7816+-0.0822 4.7727+-0.1174 poly-stricteq 92.1705+-0.4298 91.9485+-0.4103 polymorphic-structure 21.2668+-0.3515 21.0224+-0.1734 might be 1.0116x faster polyvariant-monomorphic-get-by-id 12.6881+-0.1046 12.6452+-0.1155 put-by-val-large-index-blank-indexing-type 10.2035+-0.3521 ? 10.2571+-0.3167 ? rare-osr-exit-on-local 20.1263+-0.0799 ? 20.1386+-0.1104 ? register-pressure-from-osr 31.4452+-0.1107 31.4106+-0.1175 simple-activation-demo 34.3477+-0.1028 ? 34.4272+-0.1167 ? slow-array-profile-convergence 4.0646+-0.0609 ? 4.1752+-0.0844 ? might be 1.0272x slower slow-convergence 3.5603+-0.0650 3.5492+-0.0744 sparse-conditional 1.2961+-0.0206 ? 1.3056+-0.0247 ? splice-to-remove 47.2775+-0.1489 ? 47.2799+-0.0951 ? string-concat-object 2.8548+-0.0384 ? 2.8821+-0.0428 ? string-concat-pair-object 2.7918+-0.0276 ? 2.8369+-0.0464 ? might be 1.0161x slower string-concat-pair-simple 17.6782+-0.5619 17.0327+-0.3765 might be 1.0379x faster string-concat-simple 17.4869+-0.1866 17.0778+-0.3530 might be 1.0240x faster string-cons-repeat 10.2835+-0.0510 10.2822+-0.0307 string-cons-tower 10.8088+-0.0695 10.7665+-0.0291 string-equality 43.8895+-0.3061 43.5302+-0.0730 string-get-by-val-big-char 12.9372+-0.0531 12.8999+-0.0574 string-get-by-val-out-of-bounds-insane 5.5022+-0.1570 ? 5.5862+-0.1908 ? might be 1.0153x slower string-get-by-val-out-of-bounds 4.7851+-0.0577 ? 4.8016+-0.0274 ? string-get-by-val 4.1752+-0.0478 ? 4.2534+-0.0788 ? might be 1.0187x slower string-hash 2.6646+-0.0515 2.6269+-0.0160 might be 1.0144x faster string-long-ident-equality 38.2991+-0.1902 ? 39.0806+-0.6292 ? might be 1.0204x slower string-repeat-arith 47.6604+-0.3615 ? 48.4726+-0.8221 ? might be 1.0170x slower string-sub 94.2169+-0.7936 94.0351+-1.2051 string-test 4.3591+-0.0416 ? 4.3734+-0.0377 ? string-var-equality 72.1250+-0.3726 ? 72.3760+-0.6642 ? structure-hoist-over-transitions 3.1709+-0.0196 ? 3.1752+-0.0266 ? switch-char-constant 3.4472+-0.0412 3.4134+-0.0126 switch-char 8.1940+-0.0819 8.0937+-0.0800 might be 1.0124x faster switch-constant 9.0811+-0.1094 ? 9.1650+-0.1029 ? switch-string-basic-big-var 25.7499+-2.2187 ? 26.3524+-2.6063 ? might be 1.0234x slower switch-string-basic-big 20.9209+-0.3956 20.7239+-0.1109 switch-string-basic-var 21.6252+-0.0613 ? 21.6817+-0.0882 ? switch-string-basic 20.9489+-0.3196 ? 20.9522+-0.2823 ? switch-string-big-length-tower-var 29.5648+-0.0659 ? 29.6090+-0.0961 ? switch-string-length-tower-var 22.9411+-0.2826 22.6998+-0.0463 might be 1.0106x faster switch-string-length-tower 17.7201+-0.1021 17.6845+-0.0997 switch-string-short 17.6974+-0.0632 17.6938+-0.1129 switch 16.1522+-0.1777 15.9758+-0.0773 might be 1.0110x faster tear-off-arguments-simple 2.0684+-0.0150 2.0641+-0.0153 tear-off-arguments 3.4064+-0.0162 ? 3.4141+-0.0236 ? temporal-structure 21.7497+-0.5819 ? 21.8655+-0.6254 ? to-int32-boolean 21.9137+-0.1223 ? 22.0562+-0.0984 ? undefined-test 4.5850+-0.0389 4.5272+-0.0425 might be 1.0128x faster <arithmetic> 22.5847+-0.1254 ? 22.7076+-0.2518 ? might be 1.0054x slower <geometric> * 9.7713+-0.0295 ? 9.7877+-0.0297 ? might be 1.0017x slower <harmonic> 4.3219+-0.0825 4.3106+-0.0895 might be 1.0026x faster TipOfTree MultiCopy All benchmarks: <arithmetic> 36.0040+-0.0876 ? 36.0868+-0.1661 ? might be 1.0023x slower <geometric> 10.9643+-0.0347 ? 10.9731+-0.0307 ? might be 1.0008x slower <harmonic> 3.5594+-0.0362 3.5533+-0.0360 might be 1.0017x faster TipOfTree MultiCopy Geomean of preferred means: <scaled-result> 21.5793+-0.0717 ? 21.5854+-0.0612 ? might be 1.0003x slower
Mark Hahnenberg
Comment 13 2013-08-05 09:24:14 PDT
Comment on attachment 208095 [details] the patch r=me
Filip Pizlo
Comment 14 2013-08-05 12:51:43 PDT
Note You need to log in before you can comment on or make changes to this bug.