extracting thin mappings in real time

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

 



I have a kernel module that sits on top of a thin device mapper target that receives block I/O requests and re-submits then to the thin target. I would like to implement the following functionality: whenever I receive a write completion from the thin target (assuming that it's the first time a block written to) I would like to extract the newly-established mapping of that virtual block.

I know that I can do this using thin_dump, however this involves:
(1) spawning a process
(2) reserving/releasing a metadata snapshot, and
(3) dumping _all_ the mappings.

In other words, it's far to heavyweight for my performance requirements.

Ideally I would like to be able to obtain the mapping in kernel space. I had a look at thin_dump and from what I understand it directly reads the B-tree from the disk? Is there some kernel function that already does this? E.g. given a thin LBA return the physical block address.

Also, regarding having to have reserved a metadata snapshot, is this necessary for obtaining mappings? Aren't mappings immutable once established?

-- 
Thanos Makatos
--
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