Page MenuHomeFreeBSD

Use a reader count instead of holding lock.
ClosedPublic

Authored by sson on Mar 24 2015, 4:11 AM.

Details

Reviewers
sbruno
Summary
This change uses a reader count instead of holding the mutex for the
interpreter list to avoid the problem of holding a non-sleep lock during
a page fault as reported by witness.  In addition, it consistently uses
memset()/memcpy() instead of bzero()/bcopy() except in the case where
bcopy() is required (i.e. overlapping copy).

Diff Detail

Lint
Lint Skipped
Unit
Unit Tests Skipped

Event Timeline

sson updated this revision to Diff 4364.Mar 24 2015, 4:11 AM
sson retitled this revision from to Use a reader count instead of holding lock..
sson updated this object.
sson edited the test plan for this revision. (Show Details)
sson added a reviewer: sbruno.Jun 4 2015, 6:27 PM
sbruno accepted this revision.Jun 4 2015, 8:43 PM
sbruno edited edge metadata.

Tested on head with WITNESS/INVARIANTS and all options in GENERIC. This resolves the witness enabled panic on HEAD.

This revision is now accepted and ready to land.Jun 4 2015, 8:43 PM
sbruno added a comment.Jun 5 2015, 6:32 PM

This was reverted after review. Will go back to D1971 as per suggestions to really try to use an sx_lock