Project

General

Profile

Actions

Bug #15315

open

ec_switch can still lose interrupts

Added by normalperson (Eric Wong) over 5 years ago. Updated over 5 years ago.

Status:
Open
Target version:
-
[ruby-core:89847]
Tags:

Description

ec_switch and thread switching may still lose interrupts

trap interrupt is OK because of r64062

Not OK:

  1. postponed job interrupt from MJIT worker
    This is trickiest to solve because it also affects thread switching,
    not just EC switching

  2. pending interrupt is not safe but fixing ec_switch is sufficient because
    rb_threadptr_interrupt only targets threads, not EC.

  3. timer interrupt is not critical because another interrupt will fire in 100ms

Solutions:

moving interrupt_flag back to rb_thread_t will solve 2 and 3

  1. will remain dangerous, we need to add extra checks at thread switching
    because MJIT worker may get stuck if target thread stalls or dies.

Files

Updated by k0kubun (Takashi Kokubun) over 5 years ago

  1. will remain dangerous

Is this about Bug #15316?

Updated by normalperson (Eric Wong) over 5 years ago

wrote:

  1. will remain dangerous

Is this about Bug #15316?

Partially, yes (sorry, just (mostly) wrapped up Thread::Light
for review on Linux and unlikely to be online much due to
family stuff.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0