Permalink
Commits on Aug 23, 2013
  1. An uncacheable READ should be served out of the cache when possible.

    Mohan Srinivasan
    Mohan Srinivasan committed Aug 23, 2013
    Summary:
    Fix for another bug that got introduced during the mergeorama.
    An uncacheable READ will end up evicting the cached block (cleaning
    it first if necessary). This should not happen, we should always
    try and serve the cached block on an uncacheable READ. But a READ
    miss will go to disk.
    
    This bug does not affect correctness, but it could adversely impact
    cache hit rates.
    
    Test Plan:
    
    Reviewers:
    
    CC:
    
    Task ID: #
    
    Blame Rev:
  2. New disk write clustering algorithm.

    Mohan Srinivasan
    Mohan Srinivasan committed Aug 23, 2013
    Summary:
    Now that we have per-block hashes, this commit adds a new (and
    hopefully improved) dirty block clustering algorithm. The new
    algorithm is disabled by default and can be enabled by
    new_style_write_merge sysctl.
    
    Test Plan:
    
    Reviewers:
    
    CC:
    
    Task ID: #
    
    Blame Rev:
Commits on Aug 22, 2013
  1. Fix for a SMP locking bug introduced in the recent merge-o-rama.

    Mohan Srinivasan
    Mohan Srinivasan committed Aug 22, 2013
    Summary:
    Fix a bug in the locking of the skip_sequential_io logic that
    was introduced in the merge-o-rama.
    
    Test Plan:
    
    Reviewers:
    
    CC:
    
    Task ID: #
    
    Blame Rev:
Commits on Aug 21, 2013
  1. Re-fix a bug that was fixed long ago but change clobbered by recent m…

    Mohan Srinivasan
    Mohan Srinivasan committed Aug 21, 2013
    …erge-o-rama.
    
    Summary:
    Re-commit a fix for a bug. This fix was committed a long time ago, but it was
    clobbered amidst the recent merge-o-rama. The bug causes a crash (assertion
    failure) in the (fallow_cleaning && LRU_reclaim) case. The original fix was
    this :
    
         commit 60a143e
         Author: Mohan Srinivasan <mohan@fb.com>
         Date:   Mon Jul 9 11:36:54 2012 -0700
    
         Fix for a crash for the (fallow_cleaning && LRU_reclaim) case.
    
        Summary: Fix for a copy-paste bug, which can cause crashes when fallow cleaning is enabled in
        conjunction with LRU reclamation. Found by Vyacheslav Maslow and Wang Ning. This bug was also
        fixed a long time ago (but not committed) by Kumar Sundararajan (facebook).
    
    Test Plan:
    
    Reviewers:
    
    CC:
    
    Task ID: #
    
    Blame Rev:
Commits on Aug 16, 2013
  1. Fix a locking bug in skip_sequential_io introduced in the ulocks commit.

    Mohan Srinivasan
    Mohan Srinivasan committed Aug 16, 2013
    Summary: We were trying to acquire the ioctl_lock() again in the same thread.
    It was acquired in flashcache_map(), which calls into flashcache_uncacheable()
    which calls skip_sequential_io(). The locking changes tried to re-acquire the
    spinlock in skip_sequential_io() again.
    
    Test Plan:
    
    Reviewers:
    
    CC:
    
    Task ID: #
    
    Blame Rev:
Commits on Aug 13, 2013
  1. Missing flashcache_reclaim.c file from earlier commit.

    Mohan Srinivasan
    Mohan Srinivasan committed Aug 13, 2013
    Summary: Missing flashcache_reclaim.c file from earlier commit.
    
    Test Plan:
    
    Reviewers:
    
    CC:
    
    Task ID: #
    
    Blame Rev:
  2. Block hashing, fast allocation of invalid blocks, important fixes.

    Mohan Srinivasan
    Mohan Srinivasan committed Aug 13, 2013
    Summary:
    1) Hash all VALID blocks in a set for fast lookups and invalidations.
    2) Fast allocation of INVALID blocks.
    3) Critical fixes - fix for a softlockup (kworker doing flashcache
       processing), page allocation failures in the background cleaning
       path by pre-allocation of background buffers, serious bug that
       causes data corruption on a flashcache_load because the disk_assoc
       was initialized wrongly.
    
    Ported to open source from internal facebook repo.
    
    Test Plan:
    
    Reviewers:
    
    CC:
    
    Task ID: #
    
    Blame Rev:
Commits on Aug 7, 2013
  1. Flashcache ulocks changes.

    Mohan Srinivasan
    Mohan Srinivasan committed Aug 7, 2013
    Summary:
    
    Sweeping ulocks changes to flashcache.
    
    Ported forward from the facebook internal repo.
    
    Test Plan:
    
    Reviewers:
    
    CC:
    
    Task ID: #
    
    Blame Rev:
Commits on Aug 6, 2013
  1. Make each in-memory cacheblock state packed - 18 bytes each.

    Mohan Srinivasan
    Mohan Srinivasan committed Aug 6, 2013
    Summary: Make 'struct cacheblock' a packed struct. So it fits in
    18 bytes (down from 24 bytes).
    
    Ported forward from facebook's internal repo.
    
    Test Plan:
    
    Reviewers:
    
    CC:
    
    Task ID: #
    
    Blame Rev:
  2. Lots of flashcache IO scaling changes.

    Mohan Srinivasan
    Mohan Srinivasan committed Aug 6, 2013
    Summary:
    
    This commit has a number of flashcache changes aimed at improving
    IO scaling.
    1) Uniform distribution of blocks onto cache sets (instead of the
    linear mapping before). But pin a consecutive run of disk blocks
    onto a cache set (for clustering when writing). This necessitates
    a flashcache ssd rev bump (2->3). Backwards compatiblity is maintained.
    2) New heuristic algorithm to clean dirty+fallow blocks. When we
    replace a block (read or write cache miss), we opportunistically look
    to see if the least recent block on LRU is dirty and if so we clean it.
    This makes more room in the cache for reads.
    3) New LRU algorithm - a variant of the midpoint algorithm, using
    2 LRU Queues.
    Thanks to Kumar for co-authorship of some of these changes and Domas
    for driving this round of flashcache scaling work.
    
    Ported forward from facebook's internal repo.
    
    Test Plan:
    
    Reviewers:
    
    CC:
    
    Task ID: #
    
    Blame Rev:
Commits on Aug 4, 2013
  1. Fix in del_all_pids, to the existence of a pid logic.

    Mohan Srinivasan
    Mohan Srinivasan committed Aug 4, 2013
    Summary: We had commented out the code in the del_all_pids logic
    where we checked to see if the pid we are deleting is currently
    alive in all releases > 2.6.31. This is because the find_task_pid*
    API wasn't EXPORT_SYMBOL'ed in .33. It is in .38. So resurrecting
    this back for Linux releases >= 2.6.38.
    Fix brought in from facebook internal flashcache repo (kinda
    important for MySQL).
    
    Test Plan:
    
    Reviewers:
    
    CC:
    
    Task ID: #
    
    Blame Rev:
  2. Fix flashcache reboot notify hook to drop references on the cachedev …

    Mohan Srinivasan
    Mohan Srinivasan committed Aug 4, 2013
    …and diskdev after syncing
    
    everything out.
    
    Summary: Fix flashcache reboot notify hook to drop references on the cachedev and diskdev
    after syncing  everything out. Fix ported from facebook internal repo. Fix was originally
    submitted by Kumar Sundararajan.
    
    Test Plan:
    
    Reviewers:
    
    CC:
    
    Task ID: #
    
    Blame Rev:
Commits on Jul 18, 2013
  1. Merge pull request #129 from igorabiola/kernelV3.10

    mohans committed Jul 18, 2013
    fix compilation on kernel 3.10
  2. Merge pull request #130 from stnoonan/patch-1

    mohans committed Jul 18, 2013
    Fix misspelling of administration
Commits on Jul 11, 2013
Commits on Jul 6, 2013
  1. fix compilation on kernel 3.10

    Igor
    Igor committed Jul 6, 2013
Commits on May 13, 2013
  1. Merge pull request #126 from viraptor/trivial-warnings

    mohans committed May 13, 2013
    Fix trivial warnings in utils
  2. Merge pull request #125 from viraptor/post-3.8-warnings

    mohans committed May 13, 2013
    Cleanup target function signatures
Commits on May 12, 2013
  1. Fix trivial warnings in utils

    viraptor committed May 12, 2013
    Removed unused variables and added more explicit returns to make the
    real warnings actually stand out.
  2. Cleanup target function signatures

    viraptor committed May 12, 2013
    Remove compilation warnings by making signatures match new kernel
    headers. The map function lost its last (unused) argument in 7de3ee57da
    The status function was changed to not return int anymore in fd7c092e71
Commits on May 8, 2013
  1. Merge pull request #124 from MaximF/patch-3

    mohans committed May 8, 2013
    Update flashcache-sa-guide.txt
  2. Merge pull request #123 from MaximF/patch-2

    mohans committed May 8, 2013
    Update flashcache-sa-guide.txt
  3. Merge pull request #122 from MaximF/patch-1

    mohans committed May 8, 2013
    Update flashcache-sa-guide.txt
Commits on May 7, 2013
  1. Update flashcache-sa-guide.txt

    MaximF
    MaximF committed May 7, 2013
    typo:
    containly -> containing
  2. Update flashcache-sa-guide.txt

    MaximF
    MaximF committed May 7, 2013
    typo:
    Writethru -> Writethrough
  3. Update flashcache-sa-guide.txt

    MaximF
    MaximF committed May 7, 2013
    There were two mentions of "writebehind" cache type.
    From earlier declaration there are three types available: "Writethrough", "Writearound", "Writeback".
    Probably "writebehind" means "Writearound".
    replace those two mentions.
Commits on Apr 19, 2013
  1. Fix a compilation error caused by a missing '#' in the commit for 3.9…

    Mohan Srinivasan
    Mohan Srinivasan committed Apr 19, 2013
    ….0 support.
    
    Summary:
    
    Test Plan:
    
    Reviewers:
    
    CC:
    
    Task ID: #
    
    Blame Rev:
  2. Merge branch 'master' of github.com:facebook/flashcache

    Mohan Srinivasan
    Mohan Srinivasan committed Apr 19, 2013
  3. Merge pull request #120 from avirus/patch-1

    mohans committed Apr 19, 2013
    added 3.9.0 support
  4. added 3.9.0 support

    avirus committed Apr 19, 2013
Commits on Feb 27, 2013
  1. Merge pull request #104 from roidayan/fix_flashcache_load

    mohans committed Feb 27, 2013
    Fix flashcache_load getting cachedev from argv when using flags
Commits on Feb 23, 2013
  1. Merge pull request #109 from viraptor/master

    mohans committed Feb 23, 2013
    Depmod should be run on the right kernel
Commits on Feb 10, 2013
  1. Merge pull request #107 from Zedzap/master

    mohans committed Feb 10, 2013
    Fix use-after-free in flashcache_destroy
  2. Fix use-after-free in flashcache_destroy

    Zedzap committed Feb 10, 2013
    The sb variable points to buf. But buf gets freed and reallocated, so
    the old pointer points to freed memory. The variable is then reused to
    invalidate the cache_sb_state, but the change never gets saved
    because the buf that is written to disk does not point to the same
    memory.