summaryrefslogtreecommitdiffstats
path: root/sys/uvm/uvm_pmemrange.c
diff options
context:
space:
mode:
authoroga <oga@openbsd.org>2011-07-05 19:02:47 +0000
committeroga <oga@openbsd.org>2011-07-05 19:02:47 +0000
commit117fae6fc2a524bf39588752610822bf85f39c5d (patch)
treebd225f4e973cbfaed275cca8be29eafbbd8d2d06 /sys/uvm/uvm_pmemrange.c
parentFix some awful code in the example, pointed out by millert@. (diff)
downloadwireguard-openbsd-117fae6fc2a524bf39588752610822bf85f39c5d.tar.xz
wireguard-openbsd-117fae6fc2a524bf39588752610822bf85f39c5d.zip
ENOMEM causing EIO errors is bad juju. Softraid crypto did this.
Instead of allocating a crypto op and the optional dma buffer on each and every io, preallocate a list of softraid crypto wus that contain a buffer of the max size we will use (MAXPHYS). since we know the number of openings we have in advance this means that on each io we just pick one, shorten the list of crypto descs, init any values then do the io. ok jsing (who provided many useful comments. he also provided a smarter way of handling the cryptop lists which is not in this diff but will be implemented soonish), marco@. dlg@ pointed out that this should probably use iopools but letting disciplines allocate their own iopool involves more softraid rejigging that will have to be done first. For now this is sufficient.
Diffstat (limited to 'sys/uvm/uvm_pmemrange.c')
0 files changed, 0 insertions, 0 deletions