- User Since
- Mar 12 2014, 1:00 AM (310 w, 6 d)
Sun, Feb 23
- No need for DEVOLATILE.
- pip_add may be called with a value of 0, handle this.
Sat, Feb 22
Fri, Feb 21
Rebase, add copyrights.
This is superseded by https://reviews.freebsd.org/rS332974 .
I am fairly confident that none of the sysctls in this review require Giant, if only because Giant is not referenced at all in ath(9) or the ieee80211 stack. It is just a matter of going through and convincing oneself in each case. I did a few more, but if you prefer to just commit and revisit later, it is ok with me.
Thu, Feb 20
Wed, Feb 19
- Use func consistently in KASSERT()s.
- Rename "count" to "bc".
I am still open to suggestions regarding the name.
Fix the !INVARIANTS build.
- Move blockcount code into distinct headers. I did not add a copyright statement yet.
- Apply mjg's notes: handle Giant, fix assertion message.
- Add a blockcount_t to make the counter opaque. Add blockcount_read() to allow the counter value to be read (masking off the waiter flag).
- Add some barriers: blockcount_release() issues a release fence and _blockcount_wait() issues an acquire fence before returning.
- Avoid re-reading the counter value more than necessary when checking whether to go to sleep.
Tue, Feb 18
Mon, Feb 17
Can you explain why this makes a difference, at least for slbt_zone? I think I am missing something.
Remove unintended diff.
Sun, Feb 16
Something is still needed to fix a "make -C sys/modules/dtrace/systrace". I will commit the patch I suggested earlier if no one has any objections.
So what about my comments in D23469? Why do we have to have 3 refcount APIs?
Sat, Feb 15
I don't see a problem with excluding the dtrace modules if KDTRACE_HOOKS is not defined, but the patch doesn't completely fix the problem. KDTRACE_HOOKS is a kernel option that means, "the kernel implements the interfaces required by dtrace.ko and friends." It doesn't make sense for the modules themselves to be modulated by this option. Right now a standalone build of systrace.ko will fail because it doesn't define KDTRACE_HOOKS. With this patch it fails also, but for a different reason (SYSDIR is not defined in standalone builds).
Fri, Feb 14
Avoid busying valid pages, to avoid a deadlock involving
kernel stack pages.
I see that Linux has a non-blocking join, pthread_tryjoin_np(). Is that not sufficient for your purposes?
If the object is dead, wait for pending paging operations
to complete before returning.
This change probably can't be MFCed. We could fix the problem in a different way, by changing swaponsomething() to allocate block ranges more carefully. The current algorithm just scans the list of existing swap devices and places the new one after the end of the last one. I think I will just commit the change and make the block range allocation smarter in a follow-up change.
Thu, Feb 13
Wake up sleepers when incrementing nsw_wcount_async.
Wed, Feb 12
Tue, Feb 11
I have no objection to this. I think the checks are cheap enough that they won't hurt, and after spending some time reading libalias I believe they are sufficient.