Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

octane benchmark faults on ppc64le #4865

Closed
thilo-maurer opened this issue Jan 25, 2016 · 3 comments
Closed

octane benchmark faults on ppc64le #4865

thilo-maurer opened this issue Jan 25, 2016 · 3 comments
Labels
invalid Issues and PRs that are invalid. v8 engine Issues and PRs related to the V8 dependency.

Comments

@thilo-maurer
Copy link

Running Octane 2.0 Benchmark (from https://www.npmjs.com/package/benchmark-octane) on Ubuntu 14.04.3 on ppc64le (POWER 8) faults with following messages. Looks the error is at the beginning of the RegExp benchmark.

    hostname     : pnode5
    node version : v0.10.25
      V8 version : 3.14.5.9
 platform & arch : linux ppc64

 config : { target_defaults: 
   { cflags: [],
     default_configuration: 'Release',
     defines: [],
     include_dirs: [],
     libraries: 
      [ '-lz',
        '-lcares',
        '-lv8',
        '-lssl',
        '-lcrypto' ] },
  variables: 
   { clang: 0,
     gcc_version: 48,
     host_arch: 'ppc64',
     node_byteorder: 'little',
     node_install_npm: false,
     node_prefix: '/usr',
     node_shared_cares: true,
     node_shared_http_parser: false,
     node_shared_libuv: false,
     node_shared_openssl: true,
     node_shared_v8: true,
     node_shared_zlib: true,
     node_tag: '',
     node_unsafe_optimizations: 0,
     node_use_dtrace: false,
     node_use_etw: false,
     node_use_openssl: true,
     node_use_perfctr: false,
     node_use_systemtap: false,
     python: '/usr/bin/python',
     target_arch: 'ppc64',
     v8_enable_gdbjit: 0,
     v8_no_strict_aliasing: 1,
     v8_use_snapshot: false } }

Richards            : 5821
DeltaBlue           : 7967
Crypto              : 4995
RayTrace            : 5737
EarleyBoyer         : 12089
Stacktrace (dead0000-dead0001) 0x5fe04141 0x5fe04101: 
==== Stack trace ============================================

Security context: 0x42106b71 <JS Object>#0#
    1: DefaultString [native runtime.js:646] (this=0x42107c19 <JS Object>#1#,a=0x5fe04141 <Map(elements=0)>#2#)
    2: NonStringToString(aka NonStringToString) [native runtime.js:562] (this=0x42104121 <undefined>,a=0x5fe04141 <Map(elements=0)>#2#)
    3: exec [native regexp.js:~168] (this=0x5170ae61 <JS RegExp>#3#,a=0x5fe04141 <Map(elements=0)>#2#)
    4: Exec [/gpfs/home/tmaurer/src/node.js-benchmark/benchmark-octane/lib/octane/regexp.js:~74] (this=0x42106c91 <JS Global Object>#4#,re=0x5170ae61 <JS RegExp>#3#,string=0x5fe04141 <Map(elements=0)>#2#)
    5: runBlock0(aka runBlock0) [/gpfs/home/tmaurer/src/node.js-benchmark/benchmark-octane/lib/octane/regexp.js:~133] (this=0)
    6: run [/gpfs/home/tmaurer/src/node.js-benchmark/benchmark-octane/lib/octane/regexp.js:1788] (this=0x51704ac1 <a RegExpBenchmark>#5#)
    7: RegExpRun [/gpfs/home/tmaurer/src/node.js-benchmark/benchmark-octane/lib/octane/regexp.js:53] (this=0x42106c91 <JS Global Object>#4#)
    8: Setup(aka RegExpSetup) [/gpfs/home/tmaurer/src/node.js-benchmark/benchmark-octane/lib/octane/regexp.js:49] (this=0x3fff80564111 <a Benchmark>#6#)
    9: RunNextSetup [/gpfs/home/tmaurer/src/node.js-benchmark/benchmark-octane/lib/octane/base.js:356] (this=0x42106c91 <JS Global Object>#4#)
   10: RunStep [/gpfs/home/tmaurer/src/node.js-benchmark/benchmark-octane/lib/octane/base.js:389] (this=0x3fff80564171 <a BenchmarkSuite>#7#,runner=0x53bc5619 <an Object>#8#)
   11: RunStep [/gpfs/home/tmaurer/src/node.js-benchmark/benchmark-octane/lib/octane/base.js:157] (this=0x42106c91 <JS Global Object>#4#)
   12: RunSuites [/gpfs/home/tmaurer/src/node.js-benchmark/benchmark-octane/lib/octane/base.js:173] (this=0x4215a911 <JS Function BenchmarkSuite>#9#,runner=0x53bc5619 <an Object>#8#,skipBenchmarks=0x42104121 <undefined>)
   13: arguments adaptor frame: 1->2
   14: run [/gpfs/home/tmaurer/src/node.js-benchmark/benchmark-octane/lib/octane.js:112] (this=0x53bc3da1 <an Object>#10#)
   15: /* anonymous */ [/gpfs/home/tmaurer/src/node.js-benchmark/benchmark-octane/run.js:3] (this=0x3fff8050d051 <an Object>#11#,exports=0x3fff8050d051 <an Object>#11#,require=0x3fff8050cf61 <JS Function require>#12#,module=0x3fff8050ce91 <a Module>#13#,__filename=0x3ba6cb29 <String[64]: /gpfs/home/tmaurer/src/node.js-benchmark/benchmark-octane/run.js>,__dirname=0x3fff8050d029 <String[57]: /gpfs/home/tmaurer/src/node.js-benchmark/benchmark-octane>)
   17: _compile [module.js:456] (this=0x3fff8050ce91 <a Module>#13#,content=0x3ba6cc59 <String[56]\: var octane = require('./lib/octane.js');\n\noctane.run();\n>,filename=0x3ba6cb29 <String[64]: /gpfs/home/tmaurer/src/node.js-benchmark/benchmark-octane/run.js>)
   18: .js [module.js:474] (this=0x3fff8050ce79 <an Object>#14#,module=0x3fff8050ce91 <a Module>#13#,filename=0x3ba6cb29 <String[64]: /gpfs/home/tmaurer/src/node.js-benchmark/benchmark-octane/run.js>)
   19: load [module.js:356] (this=0x3fff8050ce91 <a Module>#13#,filename=0x3ba6cb29 <String[64]: /gpfs/home/tmaurer/src/node.js-benchmark/benchmark-octane/run.js>)
   20: _load [module.js:312] (this=0x3fff8050cf19 <JS Function Module>#15#,request=0x5e3305f1 <String[9]: ../run.js>,parent=0x3fff8050d089 <a Module>#16#,isMain=0x42104121 <undefined>)
   21: arguments adaptor frame: 2->3
   22: require [module.js:364] (this=0x3fff8050d089 <a Module>#16#,path=0x5e3305f1 <String[9]: ../run.js>)
   23: require [module.js:380] (this=0x42106c91 <JS Global Object>#4#,path=0x5e3305f1 <String[9]: ../run.js>)
   24: /* anonymous */ [/gpfs/home/tmaurer/src/node.js-benchmark/benchmark-octane/bin/benchmark-octane2:3] (this=0x3fff8050d201 <an Object>#17#,exports=0x3fff8050d201 <an Object>#17#,require=0x3fff8050d111 <JS Function require>#18#,module=0x3fff8050d089 <a Module>#16#,__filename=0x3ba6ccc9 <String[79]: /gpfs/home/tmaurer/src/node.js-benchmark/benchmark-octane/bin/benchmark-octane2>,__dirname=0x3fff8050d1d9 <String[61]: /gpfs/home/tmaurer/src/node.js-benchmark/benchmark-octane/bin>)
   26: _compile [module.js:456] (this=0x3fff8050d089 <a Module>#16#,content=0x3ba6cdf9 <String[24]\: \n\nrequire('../run.js');\n>,filename=0x3ba6ccc9 <String[79]: /gpfs/home/tmaurer/src/node.js-benchmark/benchmark-octane/bin/benchmark-octane2>)
   27: .js [module.js:474] (this=0x3fff8050ce79 <an Object>#14#,module=0x3fff8050d089 <a Module>#16#,filename=0x3ba6ccc9 <String[79]: /gpfs/home/tmaurer/src/node.js-benchmark/benchmark-octane/bin/benchmark-octane2>)
   28: load [module.js:356] (this=0x3fff8050d089 <a Module>#16#,filename=0x3ba6ccc9 <String[79]: /gpfs/home/tmaurer/src/node.js-benchmark/benchmark-octane/bin/benchmark-octane2>)
   29: _load [module.js:312] (this=0x3fff8050cf19 <JS Function Module>#15#,request=0x3ba6ce71 <String[79]: /gpfs/home/tmaurer/src/node.js-benchmark/benchmark-octane/bin/benchmark-octane2>,parent=0x42104101 <null>,isMain=0x42104141 <true>)
   30: runMain [module.js:497] (this=0x3fff8050cf19 <JS Function Module>#15#)
   31: startup [node.js:119] (this=0x42106c91 <JS Global Object>#4#)
   32: /* anonymous */ [node.js:902] (this=0x42106c91 <JS Global Object>#4#,process=0x3fff8050d3d1 <a process>#19#)

==== Details ================================================

[1]: DefaultString [native runtime.js:646] (this=0x42107c19 <JS Object>#1#,a=0x5fe04141 <Map(elements=0)>#2#) {
  // stack-allocated locals
  var b = 0x42104121 <undefined>
  var c = 0x42104121 <undefined>
  var d = 0x42104121 <undefined>
  var e = 0x42104121 <undefined>
  // expression stack (top to bottom)
  [05] : 0x5e304819 <String[8]: toString>
  [04] : 0x5fe04141 <Map(elements=0)>#2#
--------- s o u r c e   c o d e ---------
function DefaultString(a){?var b=a.toString;?if((%_ClassOf(b)==='Function')){?var c=%_CallFunction(a,b);?if(%IsPrimitive(c))return c;?}??var d=a.valueOf;?if((%_ClassOf(d)==='Function')){?var e=%_CallFunction(a,d);?if(%IsPrimitive(e))return e;?}??throw %MakeTypeError('cannot_convert_to_primitive',[]);?}
-----------------------------------------
}

[2]: NonStringToString(aka NonStringToString) [native runtime.js:562] (this=0x42104121 <undefined>,a=0x5fe04141 <Map(elements=0)>#2#) {
  // expression stack (top to bottom)
  [02] : 0x5fe04141 <Map(elements=0)>#2#
  [01] : 0x42107c19 <JS Object>#1#
  [00] : 0x42107c19 <JS Object>#1#
--------- s o u r c e   c o d e ---------
function NonStringToString(a){?if((typeof(a)==='number'))return %_NumberToString(a);?if((typeof(a)==='boolean'))return a?'true':'false';?if((typeof(a)==='undefined'))return'undefined';?return((a===null))?'null':%ToString(%DefaultString(a));?}
-----------------------------------------
}

[3]: exec [native regexp.js:~168] (this=0x5170ae61 <JS RegExp>#3#,a=0x5fe04141 <Map(elements=0)>#2#) {
// optimized frame
}
[4]: Exec [/gpfs/home/tmaurer/src/node.js-benchmark/benchmark-octane/lib/octane/regexp.js:~74] (this=0x42106c91 <JS Global Object>#4#,re=0x5170ae61 <JS RegExp>#3#,string=0x5fe04141 <Map(elements=0)>#2#) {
// optimized frame
}
[5]: runBlock0(aka runBlock0) [/gpfs/home/tmaurer/src/node.js-benchmark/benchmark-octane/lib/octane/regexp.js:~133] (this=0) {
// optimized frame
}
[6]: run [/gpfs/home/tmaurer/src/node.js-benchmark/benchmark-octane/lib/octane/regexp.js:1788] (this=0x51704ac1 <a RegExpBenchmark>#5#) {
  // stack-allocated locals
  var i = 1
  var sum = 0
  // expression stack (top to bottom)
  [04] : 0
  [03] : 0x5170ad09 <JS Function runBlock0>#20#
  [02] : 0
--------- s o u r c e   c o d e ---------
function run() {?    for (var i = 0; i < 5; i++) {?      var sum = 0;?      sum += runBlock0();?      sum += runBlock1();?      sum += runBlock2();?      sum += runBlock3();?      sum += runBlock4();?      sum += runBlock5();?      sum += runBlock6();?      sum += runBlock7();?      sum += runBlock8();?      su...

-----------------------------------------
}

[7]: RegExpRun [/gpfs/home/tmaurer/src/node.js-benchmark/benchmark-octane/lib/octane/regexp.js:53] (this=0x42106c91 <JS Global Object>#4#) {
  // expression stack (top to bottom)
  [00] : 0x51704ac1 <a RegExpBenchmark>#5#
--------- s o u r c e   c o d e ---------
function RegExpRun() {?  regExpBenchmark.run();?}
----
Trace/breakpoint trap
@mscdex mscdex added the v8 engine Issues and PRs related to the V8 dependency. label Jan 25, 2016
@bnoordhuis
Copy link
Member

Is there a reason you're using v0.10.25? That's not even the latest v0.10 release, let alone the latest stable.

@gareth-ellis
Copy link
Member

I've done a bit of digging and it seems that ubuntu delivers 0.10.25 via the package manager on ppcle. I went back and ran some old builds and found that the regex test in octane works in 0.10.31 and later, and as such in all 0.12 and 4 builds.

So it seems this bug is fixed upstream

@bnoordhuis
Copy link
Member

Thanks for the analysis, @gareth-ellis. I'll close the issue then.

@thilo-maurer You may want to report this to Ubuntu, perhaps they can back-port the necessary fixes.

@bnoordhuis bnoordhuis added the invalid Issues and PRs that are invalid. label Jan 27, 2016
This was referenced Jul 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
invalid Issues and PRs that are invalid. v8 engine Issues and PRs related to the V8 dependency.
Projects
None yet
Development

No branches or pull requests

4 participants