DragonFly kernel List (threaded) for 2008-01
Re: should we use atomic instructions to manipulate vmstats.v_wire_count?
Nicolas Thery wrote:
As far as I understand, we're requiring the mplock for vm operations, so that should be covered.
I noticed that vmstats.v_wire_count is incremented and decremented w/o
protection. In contrast, atomic instructions (from <atomic.h>) are
used in freebsd.
Is it a bug in dfly or is it intentional?
Ok but what about zget() called from zalloc() which increments
v_wire_count? I reckon zalloc() can be called w/o holding the
I don't think you're allowed to call zalloc() without the mplock. However there is a comment stating exactly this. But following the function calls, you could wind up like this:
vm_page_alloc or kmem_alloc3
Now this for sure isn't mp safe. I believe the comment is wrong, but of course I'm no authority in this area.
Serve - BSD +++ RENT this banner advert +++ ASCII Ribbon /"\
Work - Mac +++ space for low €€€ NOW!1 +++ Campaign \ /
Party Enjoy Relax | http://dragonflybsd.org Against HTML \
Dude 2c 2 the max ! http://golden-apple.biz Mail + News / \