Re: Sick VFS question
Charles P. Wright <cpwright <at> cpwright.com>
2003-03-06 17:18:22 GMT
On Fri, 7 Mar 2003, David Chow wrote:
> Ion Badulescu wrote:
> >On Tue, 25 Feb 2003, Charles P. Wright wrote:
> >>AFAIK, In FiST-lite what happens is the upper level (wrapfs) inode has its
> >>address space operations set to the operations of the lower level (e.g.,
> >>EXT2) inode. A quick look at the code seemed to confirm this.
> >Hmm. You're probably right (you've been hacking that code more recently
> >than I have...). Anyway, what I said initially was definitely the original
> >approach for FiST-lite, and I guess my memory is getting fuzzy on recent
> >details, even though I actively worked on them.
> From what I know about FiST, this is not quite true. The aops of wrapfs
> inode are not pointed to the lower level fs's aops. Most of the address
> space operations have a struct page, which a struct page have its
> mapping and host ref to inode. The lower level inode is ref by the
> wrapfs inode private data. The wrapgs has its own page cache and looks
> like a separate fs to the VFS in all aspects.
We've recently improved the FiST code, such that if you specify filter
data, this is indeed the case and a separate page cache is kept.
However, if data is not filtered then FiST-lite is used (the method
described above). This decreases performance overhead to about 1% over a
native file system (compared to full-blown FiST which is about 5%).