Hi, I know that bcache doesn't natively support multi-level caching but I was playing with it and found this interesting "workaround": make-bcache -B /dev/vdb -C /dev/vdc the above command will generate a /dev/bcache0 device that we can now use as backing (or cached) device: make-bcache -B /dev/bcache0 -C /dev/vdd This will make the kernel panic because the driver is trying to create a duplicated "bcache" folder under /sys/block/bcache0/ . So, simply patching the code inside register_bdev to create a folder "bcache2" if "bcache" already exists does the trick. Now I have: vdb 252:16 0 5G 0 disk └─bcache0 251:0 0 5G 0 disk └─bcache1 251:128 0 5G 0 disk /mnt/bcache1 vdc 252:32 0 10G 0 disk └─bcache0 251:0 0 5G 0 disk └─bcache1 251:128 0 5G 0 disk /mnt/bcache1 vdd 252:48 0 5G 0 disk └─bcache1 251:128 0 5G 0 disk /mnt/bcache1 Is anyone using this functionality? I assume not, because by default it doesn't work. Is there any good reason why this doesn't work by default? I tried to understand how data will be read out of /dev/bcache1: will the /dev/vdd cache, secondly created cache device, be interrogated first and then will it be the turn of /dev/vdc ? Meaning: can we consider that now the layer structure is vdd └─vdc └─bcache0 └─bcache1 ?