Closed Bug 901676 Opened 11 years ago Closed 11 years ago

Simple ParallelArray workload using Math.abs bails out only when using more then 2 threads

Categories

(Core :: JavaScript Engine, defect)

Other Branch
x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla26

People

(Reporter: masterofhats, Assigned: shu)

References

Details

(Whiteboard: [PJS])

Attachments

(2 files)

When running the simple test case

var a = [];
 
for (var i = 0; i < 50000; ++i) {
  a[i] = Math.random();
}
 
var pa = new ParallelArray(a);

pa.map(function(x) {
  return Math.abs(x);
});

the workloads runs fine if JS_THREADPOOL_SIZE is set to a value <=2. For more than two threads, the workload bails out with the following error(s):

[Parallel:M]   Compilation complete (final worklist length 1)
[^[[7m^[[34mParallel:3^[[0m]   Up
[^[[7m^[[34mParallel:3^[[0m]   ^[[33mBailout^[[0m: AbortPar / ^[[36mAbortPar^[[0m (block 11 lir 94) (PAabs.js:2)
[^[[7m^[[34mParallel:3^[[0m]   Parallel abort with cause 12 in 7f05fc555700:self-hosted:3760 (7f05fc555c40:PAabs.js:1 at line 2)
[^[[7m^[[32mParallel:1^[[0m]   Up
[^[[7m^[[32mParallel:1^[[0m]   ^[[33mBailout^[[0m: CheckOverRecursedPar / ^[[36mCheckOverRecursedPar^[[0m (block 0 lir 14) (self-hosted:3761)
[^[[7m^[[32mParallel:1^[[0m]   Propagate parallel abort via 7f05fc555700:self-hosted:3760 (7f05fc555700:self-hosted:3760)
[^[[7m^[[34mParallel:3^[[0m]   Down
[^[[7m^[[32mParallel:1^[[0m]   Down
[^[[7m^[[31mParallel:0^[[0m]   Up
[^[[7m^[[31mParallel:0^[[0m]   ^[[33mBailout^[[0m: CheckOverRecursedPar / ^[[36mCheckOverRecursedPar^[[0m (block 0 lir 14) (self-hosted:3761)
[^[[7m^[[31mParallel:0^[[0m]   Propagate parallel abort via 7f05fc555700:self-hosted:3760 (7f05fc555700:self-hosted:3760)
[^[[7m^[[31mParallel:0^[[0m]   Down
[^[[7m^[[33mParallel:2^[[0m]   Up
[^[[7m^[[33mParallel:2^[[0m]   ^[[33mBailout^[[0m: CheckOverRecursedPar / ^[[36mCheckOverRecursedPar^[[0m (block 0 lir 14) (self-hosted:3761)
[^[[7m^[[33mParallel:2^[[0m]   Propagate parallel abort via 7f05fc555700:self-hosted:3760 (7f05fc555700:self-hosted:3760)
[^[[7m^[[33mParallel:2^[[0m]   Down
PAabs.js:1:0 warning: Bailed out of parallel operation: unsupported at PAabs.js:2
[Parallel:M]   Bailout from thread 3: cause 12 at loc PAabs.js:2
[Parallel:M]   ^[[1m^[[33mBAILOUT 1^[[0m: 12 at PAabs.js:2:2
[Parallel:M]   Enqueued 7f05fc555700:self-hosted:3760
[Parallel:M]   Bailout from thread 0: cause 0, topScript 7f05fc555700:self-hosted:3760
[Parallel:M]   Invalidating script 7f05fc555700:self-hosted:3760 due to cause 0
[Parallel:M]   Skipping 7f05fc555700:self-hosted:3760, already in worklist
[Parallel:M]   Bailout from thread 1: cause 0, topScript 7f05fc555700:self-hosted:3760
[Parallel:M]   Bailout from thread 2: cause 0, topScript 7f05fc555700:self-hosted:3760
[Parallel:M]   Bailout from thread 3: cause 12, topScript 7f05fc555700:self-hosted:3760
Blocks: PJS
Whiteboard: [PJS]
This bug is because:
 - Math.abs not being able to be inlined, because
 - its input MIRType is Value, because...
 - it is the result of merging types for a phi, because...
 - ion::MergeTypes is not associative with respect to empty type sets.

Suppose there are two values v1, v2. v1 has a MIRType of Value and an empty typeset. v2 has a MIRType of T where T is not Value, and has a non-empty typeset. MergeTypes will specialize phi(v1, v2) to Value, but phi(v2, v1) to T.
Assignee: general → shu
Attachment #786650 - Flags: review?(bhackett1024)
Comment on attachment 786650 [details] [diff] [review]
bug901676-mergetypes-assoc.patch

Review of attachment 786650 [details] [diff] [review]:
-----------------------------------------------------------------

Good catch, I think I've added workarounds for this at several times in the past without investigating why the MIRTypes on the phis were unnecessarily imprecise.
Attachment #786650 - Flags: review?(bhackett1024) → review+
https://hg.mozilla.org/mozilla-central/rev/b18be598f92e
Status: UNCONFIRMED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla26
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: