dm-cache always dirty in writethrough mode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I've set up a SSD cache of a data hard drive via dm-cache. The dm-cache is set up in writethrough mode. As far as I understand writethrough mode all writes are sent to the underlying device immediately, so there should be no need to write back the cache later to the device.

What I encounter is that every time I reboot the machine, the whole cache is marked as dirty and written to the hard drive, even when there were 0 interactions with the cache before.

Is this behaviour expected? Can it be configured differently, so that not the whole cache is written back in writethrough mode every time it is assembled?

There is one special point about my setup: I don't use extra partitions for cache and meta data devices, but mapped files on the (SSD) root file system as loop devices. But this should not matter?

Information about my setup:

* Kernel version 4.2.1

* Script to set up dm cache on boot:

losetup /dev/loop0 /root/dm-cache
losetup /dev/loop1 /root/dm-cache-meta
dmsetup create cache_sdb1 --table "0 3907026944 cache /dev/loop1 /dev/loop0 /dev/disk/by-id/ata-ST2000DL003-9VT166_5YD2RBZH-part1 128 1 writethrough smq 0"

* Script to tear down cache on shutdown:

dmsetup suspend cache_sdb1
dmsetup remove cache_sdb1
losetup -d /dev/loop0
losetup -d /dev/loop1

Symptoms:

Every time after I booted the machine, dmsetup status tells me that all cache pages are dirty:

cruncher2 ~ # dmsetup status cache_sdb1
0 3907026944 cache 8 788/5120 128 262144/262144 381147 12035523 263945 491215 0 0 218414 1 writethrough 2 migration_threshold 2048 smq 0 rw -

I've entered the command after some pages were already written back, that's why below command show a lot, but not all pages dirty. But pages are really written from SSD cache to the hard disk:

cruncher2 ~ # iostat -dm 0
Linux 4.2.1-gentoo (cruncher2)  10/04/2015      _x86_64_        (2 CPU)

Device:            tps    MB_read/s    MB_wrtn/s    MB_read MB_wrtn
loop0           781.38        48.71         0.00       1731 0
loop1            15.64         0.07         0.00          2 0
sda             694.88        58.81         0.22       2090 7
sdb             729.03         0.02        48.67          0 1730
dm-0              0.53         0.00         0.00          0 0

Devices:
loop0: cache
loop1: cache meta
sda: SSD holding l0 and l1
sdb: Hard drive

I'm wondering whether the tear down has to be done differently, but I've already googled a lot and could not find any similar case. So I hope that you can explain me whether this behaviour is expected or not and if there is a way to prevent the cache written back every time.

Thanks in advance!



--
dm-devel mailing list
dm-devel@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/dm-devel



[Index of Archives]     [DM Crypt]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite Discussion]     [KDE Users]     [Fedora Docs]

  Powered by Linux