HomeFreeBSD

This fixes two conditions that can incur when migration

Description

This fixes two conditions that can incur when migration
is being done in the callout code and harmonizes the macro
use.:

  1. The callout_active() will lie. Basically if a migration is occuring and the callout is about to expire and the migration has been deferred, the callout_active will no longer return true until after the migration. This confuses and breaks callers that are doing callout_init(&c, 1); such as TCP.
  2. The migration code had a bug in it where when migrating, if a two calls to callout_reset came in and they both collided with the callout on the wheel about to run, then the second call to callout_reset would corrupt the list the callout wheel uses putting the callout thread into a endless loop.
  3. Per imp, I have fixed all the macro occurance in the code that were for the most part being ignored.

Phabricator D1711 and looked at by lstewart and jhb and sbruno.
Reviewed by: kostikbel, imp, adrian, hselasky
MFC after: 3 days
Sponsored by: Netflix Inc.

Details

Provenance
rrsAuthored on
Reviewer
kib
Parents
rS278468: Add a few more instructions to xz/FREEBSD-upgrade.
Branches
Unknown
Tags
Unknown

Event Timeline