reads are cached. All writes result in cache invalidations and writes to disk. Suitable for read mostly workloads. Use the new -r argument to flashcache_wt_create to choose "write around". 2) Make flashcache block checksums a compile time selection.
…he to not build on 2.6.39. Caught, tested by Sergey Vidyuk.
Thanks to Tao Ma for pointing that out.
email id bounce.
passed into kmalloc() for an allocation. Fixed contributed by Tao Ma.
pending, queued jobs.
cleaning is done.
show up under load that I still need to debug and fix.
into smaller locks, introducing per-cache set spinlocks.
down idle dirty block cleaning. And fix something I broke in the previous commit.
aggressive disk cleaning when fallow dirty block cleaning was enabled.
if non-zero, in flashcache_create.c and flashcache_load.c. This helps using the utils in scripts. Contributed by Alexander Nezhinsky (Mellanox).
to be used when make is called from src or src/utils. Contributed by Alexander Nezhinsky.
Latency histograms are reported via 'dmsetup status'. This is disabled by default, because latencies are computed using gettimeofday, so depending on the clocksource, this can be quite expensive. To enable computation and reporting of IO latency histogram, enable the flashcache.io_latency_hist sysctl.
a background set cleaning schedules a delayed cleaning. The delayed cleaning (from workqueue) happens after the device is completely gone, causing a panic. To fix this, when the device is being removed, stop all background set cleanings first. Once all blocks have been cleaned, cancel any pending delayed work items, and flush workqueue to wait for everything to finish.
isn't initialized correctly. This fix is only relevant for cases where expiring nodes from the white/black list is enabled (ie. it is only relevant when the do_pid_expiry sysctl is enabled).
some amount of "inactivity". The default policy is to clean dirty blocks that were inactive for the last 60 seconds. But this can be changed with fallow_delay (seconds). Setting fallow_delay to 0 completely turns off the "clean based on inactivity" policy.
-I$(KERNEL_TREE)/include/ to CFLAGS, per Vadim's fix.
Thanks also to Vadim Tkachenko and Or Gerlitz for suggesting the fix of adding $(KERNEL_TREE)/include/linux to CFLAGS.
previous commit. The bug only really affects writethrough mode. This bug can corrupt filesystems, because it confuses the cache_dev and disk_dev. 2) Adding a bunch of stats while at it.
…onfigurable metadata blocksize feature.
…nge allows us to configure a 4KB or 8KB (or larger) metadata blocksize. 2) The start of the metadata region and data region on the cache device is aligned to the metadata blocksize. 3) Adds a -m argument to flashcache_create to optionally configure the metadata blocksize. Default is 4KB. 4) Flashcache on-ssd revision bump. See the flashcache sa-guide for more detail. This change authored by Earle Philhower of Virident (earle at virident dot com) with help from Mohan.
printks (cleaning progress updates). This can cause node hangs. Ratelimit these progress update printks to avoid this. Huge thanks to Feng Yu for finding this bug, narrowing it down to the printk as the proble and, testing the fix. Thanks also to Jens Axboe for spending time on this.
it with u_int64_t. Usage of float (without saving and restoring fp state across the math) is a bug because it corrupts userspace fp state. Thanks to Jens Axboe for pointing this bug out.
there a (slow) dmsetup remove hangs forever while cleaning dirty blocks if a stop_sync was ever done.
Spotted by Feng Yu.