Re: [PATCH] Patch to integrate RapidDisk and RapidCache RAM Drive / Caching modules into the kernel
From: Petros Koutoupis
Date: Mon Sep 28 2015 - 10:51:16 EST
Christoph (and all),
I hope this message finds you well. The unfortunate truth is, had I the
courage and confidence to submit this years ago, we wouldn't be having
this conversation. Anyway, to address your questions:
1. Unlike the already mainline ramdisk driver, RapidDisk is designed to
be managed dynamically. That is, instead of configuring a fixed number
of volumes and volume sizes as compile/boot time variables, RapidDisk
will allow you to add, remove, and resize your RAM drive(s) at runtime.
Besides, the built in module is designed to work with smaller sizes in
mind while RapidDisk focuses on larger sizes that can reach to the
multiple Gigabytes or even Terabytes. Much like the built in module, it
will allocate pages as they are needed which allows for over
provisioning (not that it is advised) of volume sizes.
2. The majority of RapidDisk code focuses on the use of Volatile memory.
The support for Non-Volatile memory is a bit newer and there may be some
overlap here with the recently integrated pmem code. The only advantage
to having this code within RapidDisk is to provide the user with the
ability to manage both technologies simultaneously, through a single
3. The RapidCache component is designed around the Non-Volatile
functionality of RapidDisk (hence the block-level Write-Through
caching). It is also coded and optimized around the RapidDisk
sizes/variables, out-of-box. It is worth noting that I am in the process
of expanding this module to add deduplication support. This will
leverage RapidDisk's ability to allocate pages only when needed and
reduce the cache's memory footprint; making more out of less.
Thoughts, suggestions, and concerns are always welcome.
On 9/28/15 1:49 AM, Christoph Hellwig wrote:
On Sun, Sep 27, 2015 at 12:17:24PM -0500, Petros Koutoupis wrote:
Attached is a patch for two modules: RapidDisk & RapidCache. RapidDisk is a
Linux RAM drive module which allows the user to dynamically create, remove,
and resize RAM-based block devices. RapidDisk is designed to work with both
volatile and non-volatile memory. In the case of volatile memory, memory is
allocated only when needed. The RapidCache module in turn utilizes a RapidDisk
volume as a FIFO Write-Through caching node to a slower block device.
this is three things at the same time! We already have a ramdisk
driver, a pmem drive, bcache and dm-cache, so for each of them please
explain why we'd want to duplicate them instead of adding whatever
features you need to them. First step is to identify those features.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/