Changing location of disk/filesystem cache
Greg Freemyer
greg.freemyer at gmail.com
Thu Oct 10 08:30:34 EDT 2013
Mandeep Sandhu <mandeepsandhu.chd at gmail.com> wrote:
>On Thu, Oct 10, 2013 at 5:00 PM, Ulka Vaze <ulka.vaze at l2it.com> wrote:
>
>> Hi,
>> disk cache is same as filesystem cache. Also called buffer cache.
>> This is implemneted below fs layer.
>> It is basically a cache of disk blocks mainatined in RAM. (In pages)
>> called buffers.
>>
>
>Ok. So this won't contain "files" but rather "blocks" many of which
>will
>represent a single file?
The buffer cache knows nothing about files. It may happen to contain the blocks that correspond to a complete file, but the buffer cache doesn't have any way to know that.
>> The purpose of this cache is to improve performance as disk devices
>are
>> slow.
>> You can access this cache from the kernel.
>> Block layer accesses this from the request structure and commits
>blocks on
>> disk.
>> There are more layers in between like IOschedulers / SCSI etc.
>>
>
>Where does the mapping for file to disk pages/blocks exist? Is it in
>the
>inode or dentry entries or something else?
That is a very filesystem dependent question.
In general dentry entries point to inodes and inodes point to blocks of pointers. Those pointers point to actual data blocks.
You need to discuss a specific filesystem type to even start to discuss anything specific.
Ie. Does the fat filesystem have an equivalent of inodes?
>> How does your device accesses files ?
>>
>
>The device itself runs stripped down version of a fairly recent Linux
>version (3.x). It has DMA capabilities to transfer content to/from the
>hosts memory from/to it's own.
If 3.x is really current you have 2 more options at least: dm-cache and bcache.
I don't know much about either, but they are going to be better options for I think than the traditional buffer cache.
Greg
--
Sent from my Android phone with K-9 Mail. Please excuse my brevity.
More information about the Kernelnewbies
mailing list