On Sun, 23 Apr 2006, Matt Fleming wrote:
Now this point has got me to thinking. Is the way that an object is
written to backing store dictated by its uvm_pagerops structure? And
if so, would creating a pseudo device with its own pager operations be
a reasonable way to go about handling writing to the compressed cache?
Surely this way the pseudo device would handle the compression and
decompression of the pages for the object.
Although I suppose it would have to be in addition to the uvm_pagerops
struct that an object already had (or else how would the compressed
cache know how to write to the _real_ backing store?).
Does this seem like a feasible idea?
I don't know zero about UVM, so I cannot comment.
But I guess you'll hit a problem that pops up with vnd(4) with
VND_COMPRESSION, too: how are you going to manage your compressed storage?
"Input" data is fixed size (== pagesize), but "output" size depends on
the compression factor, and thus you'll need some way to arrange things
with a non-fixed offset.