在GHC RTS的调度程序中,为什么它将一个功能标记为免费?

Nyb*_*ble 9 haskell scheduling runtime ghc

当我阅读关于调度程序的GHC Wiki评论时,我对此部分感到困惑:

将Capability标记为免费的一个原因是支持快速标注.在进行安全的外部调用时,我们必须释放Capability,然后将其移交给另一个工作线程.如果外国呼叫很短,我们不希望在返回时产生上下文切换的成本,但由于我们将能力标记为空闲,因此返回的任务很可能立即重新获取并继续.我们醒来的工作人员会发现Capability已经拥有,然后再次进入休眠状态 (如果没有可用于运行该工作线程的空闲CPU,则可能会产生双上下文切换).

我的问题:
对于大胆的句子,确实会导致"双上下文切换",无论是否标记自由的能力.此外,如果它们发生的话,两个"开关"是什么 - 从who1到who2,然后who2到who3?