Opened 6 years ago

Last modified 2 months ago

#3107 new bug

Over-eager GC when blocked on a signal in the non-threaded runtime

Reported by: awick Owned by:
Priority: lowest Milestone: 7.12.1
Component: Runtime System Version: 6.10.1
Keywords: Cc: dons
Operating System: Linux Architecture: Unknown/Multiple
Type of failure: Runtime performance bug Test Case:
Blocked By: Blocking:
Related Tickets: Differential Revisions:

Description

Right now, in the non-threaded runtime, if you have the situation where all the threads are blocked on MVars, the deadlock detection / avoidance code runs a GC. This is fine, generally, but if they're blocked on MVars held by signal handlers, it has a profoundly bad effect on performance. In short, the runtime starts collection (blocking signals?), and we're stuck waiting for it to finish before handling signals. Or, if the signal doesn't come in, we sit waiting in a loop, garbage collecting.

It would be nice if the runtime either didn't trigger collection if signal handlers are in place, or, at the very least, held off on doing so for a nontrivial period of time.

Change History (13)

comment:1 Changed 6 years ago by igloo

  • difficulty set to Unknown
  • Milestone set to 6.12.1
  • Type changed from bug to run-time performance bug

Thanks for the report

comment:2 Changed 5 years ago by simonmar

  • Type of failure set to Runtime performance bug

comment:3 Changed 5 years ago by igloo

  • Milestone changed from 6.12.1 to 6.12 branch

comment:4 Changed 5 years ago by igloo

  • Milestone changed from 6.12 branch to 6.12.3

comment:5 Changed 5 years ago by igloo

  • Milestone changed from 6.12.3 to 6.14.1
  • Priority changed from normal to low

comment:6 Changed 4 years ago by igloo

  • Milestone changed from 7.0.1 to 7.0.2

comment:7 Changed 4 years ago by igloo

  • Milestone changed from 7.0.2 to 7.2.1

comment:8 Changed 3 years ago by igloo

  • Milestone changed from 7.2.1 to 7.4.1

comment:9 Changed 3 years ago by igloo

  • Milestone changed from 7.4.1 to 7.6.1
  • Priority changed from low to lowest

comment:10 Changed 2 years ago by igloo

  • Milestone changed from 7.6.1 to 7.6.2

comment:11 Changed 8 months ago by thoughtpolice

  • Milestone changed from 7.6.2 to 7.10.1

Moving to 7.10.1.

comment:12 Changed 2 months ago by thoughtpolice

  • Milestone changed from 7.10.1 to 7.12.1

Moving to 7.12.1 milestone; if you feel this is an error and should be addressed sooner, please move it back to the 7.10.1 milestone.

comment:13 Changed 2 months ago by thoughtpolice

Moving to 7.12.1 milestone; if you feel this is an error and should be addressed sooner, please move it back to the 7.10.1 milestone.

Note: See TracTickets for help on using tickets.