[lkml]   [2010]   [Jun]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRFC: Exporting NOCMTIME to userspace
    Hello all,

    I'm currently investigating various techniques to lessen the block erase
    load on consumer nand flash devices (usb-ftl + nand and sd-ftl + nand).
    While SSDs are of no current interest to me, this use case applies to
    them as well.

    The use case I'm working with is a set of pre-allocated files that get
    updated periodically with data that overwrites some of the existing
    data. The files never grow/shrink. (rrdtool is a good example of such

    I've been looking for a mechanism to avoid writes going to the inodes of
    the files, but have been unsuccessful so far. At least ctime will get
    updated periodically.

    In this use case, the timestamps are really irrelevant (the file content
    contains timestamps), and I'd like to avoid updating the inodes
    all-together. What happens now is extra block erasures when they aren't
    actually needed or wanted.

    While there is a flag in the inode structure to stop m/ctime updates,
    this flag is not currently exported to userspace (similar to O_NOATIME).
    I feel that the least intrusive way would be such a flag, since this is
    certainly an application/file-specific problem and a mount-point flag
    would be not so useful.

    How do people feel about this? I'm aware of some of the ramifications of
    not updating ctime (regarding dumping filesystem changes, and making
    life more difficult for rsync/mtime-based backups). However, I still
    feel quite strongly that providing an option for applications to avoid
    extra nand erases would be a good thing.

    On the other hand, if someone can suggest a way to avoid timestamp
    updates/causing inode writes, I'm all ears and eyes. (using the
    block-layer directly or writing a custom fs is not really an elegant
    solution, IMO).

    Thank you for your time & best regards,

    Aleksandr Koltsoff

     \ /
      Last update: 2010-06-21 08:45    [W:0.030 / U:16.452 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site