a lock, ignore the node and continue. To allow the cleaning to succeed
the current threadmust make progress.
For a brief time the cache may contain more than one vnode referring to
a lower node.
Don't unlock the hash mutex if getnewvnode fails -- we don't hold it.
- split out_solicit() into locked and unlocked front end, and use the
unlocked version from the softintr
- kill sc_intr_lock, midi doesn't really use it (XXX finish this?
change this? in the midi* code)
- convert tsleep()/wakeup() to cv
- move some free's out of the lock
- KASSERT() lock is held in a few more places
TODO:
- malloc -> kmem
- crashes in midiclose(), doesn't actually play things to the right
device. "midiplay -d midi1 -xv" plays out my midi@pcppi speaker,
and then the above crash. clearly something is calling the wrong
sub-device callbacks!
For larger sets, use a bloom filter to avoid the inner loop for most of
the input. The current implementation uses a simple modular hash as
first function (well suited for input e.g. in ISO Latin character sets)
and a more complex multiplicative hash as second function with a filter
size of 512 Bit. This reduces the typical run time to O(n+m).
CHFS is a file system for flash devices developed by the
Software Engineering Department at University of Szeged, Hungary.
http://chewiefs.sed.hu/
Thanks for all who made it possible.
When remove files using name from pnode, another link on this file
can be unlinked. E.g. "touch 1; ln 1 2; rm 2" will remove file named
"1". Thus puffs_null_node_remove should remove directory entry which
name is provided by pcn (as said in puffs_ops.3). Caller should
provide appropriately initialized pcn.
From Evgeniy Ivanov <lolkaantimat@gmail.com>
When puffs_null_node_rename() overwrites existing file, its pnode
must be removed, because src pnode already represents this file.
From Evgeniy Ivanov <lolkaantimat@gmail.com>
instead of continuations directly from shm callbacks or interrupt
handlers. The whole CPS design remains but is adapted to cope with
a thread model.
This patch allows scheduling away I/O requests of domains that behave
abnormally, or even destroy them if there is a need to (without thrashing
dom0 with lots of error messages at IPL_BIO).
I took this opportunity to make the driver MPSAFE, so multiple instances
can run concurrently. Moved from home-grown pool(9) queues to
pool_cache(9), and rework the callback mechanism so that it delegates
I/O processing to thread instead of handling it itself through the
continuation trampoline.
This one fixes the potential DoS many have seen in a dom0 when trying to
suspend a NetBSD domU with a corrupted I/O ring.
Benchmarks (build.sh release runs and bonnie++) do not show any
performance regression, the "new" driver is on-par with the "old" one.
ok bouyer@.