Page MenuHomeFreeBSD

buf_ring: support different lock classes
AcceptedPublic

Authored by glebius on Sat, Sep 5, 5:50 PM.
Tags
None
Referenced Files
F170911128: D59457.diff
Mon, Sep 7, 12:47 PM
F170839762: D59457.diff
Sun, Sep 6, 11:23 PM
F170839732: D59457.diff
Sun, Sep 6, 11:23 PM
F170810429: D59457.id185946.diff
Sun, Sep 6, 6:57 PM
F170804347: D59457.diff
Sun, Sep 6, 6:02 PM
F170792222: D59457.id185946.diff
Sun, Sep 6, 4:01 PM
F170791821: D59457.diff
Sun, Sep 6, 3:58 PM

Details

Reviewers
kib
markj
gallatin
kp
Group Reviewers
Src Committers
Summary

And enable locking assertions for INVARIANTS kernel.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 76580
Build 73463: arc lint + arc unit

Event Timeline

@kp added you since it touches OpenVPN
@gallatin @kp note dependency on D59455

  • Use _Generic() instead of transparent union.
This revision is now accepted and ready to land.Sun, Sep 6, 10:43 PM

This looks like it contains other changes from the diff stack. Did you mean to do that?

This looks like it contains other changes from the diff stack. Did you mean to do that?

Nevermind -- I see that you combined the changes. Sorry for the noise.

sys/sys/buf_ring.h
364

There is rwlock_padalign too.

369

Wouldn't it be better to add a standalone macro, lock2lock_object() or whatever, to sys/lock.h which maps a lock pointer to its lock object? This is pretty similar to the macro in D59456.

I see that some lock types are excluded from this list, but it's not clear why. buf_ring just asserts that the lock is held. It's fine to use a sleepable lock AFAICS. (And rmlocks can be sleepable anyway.)