[Bug 200992] proccess won't die in thread_suspend_switch

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Wed Mar 2 18:46:30 UTC 2016


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=200992

--- Comment #26 from commit-hook at freebsd.org ---
A commit references this bug:

Author: kib
Date: Wed Mar  2 18:46:18 UTC 2016
New revision: 296320
URL: https://svnweb.freebsd.org/changeset/base/296320

Log:
  If callout_stop_safe() noted that the callout is currently executing,
  but next invocation is cancelled while migrating,
  sleepq_check_timeout() needs to be informed that the callout is
  stopped.  Otherwise the thread switches off CPU and never become
  runnable, since running callout could have already raced with us,
  while the migrating and cancelled callout could be one which is
  expected to set TDP_TIMOFAIL flag for us.  This contradicts with the
  expected behaviour of callout_stop() for other callers, which
  e.g. decrement references from the callout callbacks.

  Add a new flag CS_MIGRBLOCK requesting report of the situation as
  'successfully stopped'.

  Reviewed by:  jhb (previous version)
  Tested by:    cognet, pho
  PR:   200992
  Sponsored by: The FreeBSD Foundation
  MFC after:    2 weeks
  Differential revision:        https://reviews.freebsd.org/D5221

Changes:
  head/sys/kern/kern_timeout.c
  head/sys/kern/subr_sleepqueue.c
  head/sys/sys/callout.h

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-threads mailing list