04 Jul, 2011

2 commits

  • UBIFS has many built-in self-check functions which can be enabled using the
    debug_chks module parameter or the corresponding sysfs file
    (/sys/module/ubifs/parameters/debug_chks). However, this is not flexible enough
    because it is not per-filesystem. This patch moves this to debugfs interfaces.

    We already have debugfs support, so this patch just adds more debugfs files.
    While looking at debugfs support I've noticed that it is racy WRT file-system
    unmount, and added a TODO entry for that. This problem has been there for long
    time and it is quite standard debugfs PITA. The plan is to fix this later.

    This patch is simple, but it is large because it changes many places where we
    check if a particular type of checks is enabled or disabled.

    Signed-off-by: Artem Bityutskiy

    Artem Bityutskiy
     
  • We have too many different debugging checks - lessen the amount by merging all
    index-related checks into one. At the same time, move the "force in-the-gap"
    test to the "index checks" class, because it is too heavy for the "general"
    class.

    This patch merges TNC, Old index, and Index size check and calles this just
    "index checks".

    Signed-off-by: Artem Bityutskiy

    Artem Bityutskiy
     

23 May, 2011

1 commit

  • Switch to debugging using dynamic printk (pr_debug()). There is no good reason
    to carry custom debugging prints if there is so cool and powerful generic
    dynamic printk infrastructure, see Documentation/dynamic-debug-howto.txt. With
    dynamic printks we can switch on/of individual prints, per-file, per-function
    and per format messages. This means that instead of doing old-fashioned

    echo 1 > /sys/module/ubifs/parameters/debug_msgs

    to enable general messages, we can do:

    echo 'format "UBIFS DBG gen" +ptlf' > control

    to enable general messages and additionally ask the dynamic printk
    infrastructure to print process ID, line number and function name. So there is
    no reason to keep UBIFS-specific crud if there is more powerful generic thing.

    Signed-off-by: Artem Bityutskiy

    Artem Bityutskiy
     

14 May, 2011

1 commit

  • UBIFS can force itself to use the 'in-the-gaps' commit method - the last resort
    method which is normally invoced very very rarely. Currently this "force
    int-the-gaps" debugging feature is a separate test mode. But it is a bit saner
    to make it to be the "general" self-test check instead.

    This patch is just a clean-up which should make the debugging code look a bit
    nicer and easier to use - we have way too many debugging options.

    Signed-off-by: Artem Bityutskiy

    Artem Bityutskiy
     

11 Mar, 2011

1 commit

  • Change the default UBIFS behavior WRT data CRC checking. Currently,
    UBIFS checks data CRC when reading, which slows it down quite a bit,
    and this is the default option. However, it looks like in average
    user does not need this feature and would prefer faster read speed
    over extra reliability. And this seems to be de-facto standard that
    file-systems do not check data CRC every time they read from the
    media.

    Thus, make UBIFS default behavior so that it does not check data
    CRC. This corresponds to the no_chk_data_crc mount option. Those users
    who need extra protection can always enable it using the chk_data_crc
    option.

    Please, read more information about this feature here:
    http://www.linux-mtd.infradead.org/doc/ubifs.html#L_checksumming

    Signed-off-by: Artem Bityutskiy

    Artem Bityutskiy
     

29 Jan, 2009

1 commit

  • This UBIFS feature has never worked properly, and it was a mistake
    to add it because we simply have no use-cases. So, lets still accept
    the fast_unmount mount option, but ignore it. This does not change
    much, because UBIFS commit in sync_fs anyway, and sync_fs is called
    while unmounting.

    Signed-off-by: Artem Bityutskiy

    Artem Bityutskiy
     

31 Dec, 2008

1 commit


03 Dec, 2008

1 commit


30 Sep, 2008

2 commits

  • UBIFS read performance can be improved by skipping the CRC
    check when data nodes are read. This option can be used if
    the underlying media is considered to be highly reliable.
    Note that CRCs are always checked for metadata.

    Read speed on Arm platform with OneNAND goes from 19 MiB/s
    to 27 MiB/s with data CRC checking disabled.

    Signed-off-by: Adrian Hunter

    Adrian Hunter
     
  • Some flash media are capable of reading sequentially at faster rates.
    UBIFS bulk-read facility is designed to take advantage of that, by
    reading in one go consecutive data nodes that are also located
    consecutively in the same LEB.

    Read speed on Arm platform with OneNAND goes from 17 MiB/s to
    19 MiB/s.

    Signed-off-by: Adrian Hunter

    Adrian Hunter
     

13 Aug, 2008

1 commit


15 Jul, 2008

1 commit