<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/md/persistent-data, branch v3.12</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v3.12</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v3.12'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2013-08-23T13:02:14Z</updated>
<entry>
<title>dm space map: optimise sm_ll_dec and sm_ll_inc</title>
<updated>2013-08-23T13:02:14Z</updated>
<author>
<name>Joe Thornber</name>
<email>ejt@redhat.com</email>
</author>
<published>2013-08-09T12:04:56Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=f722063ee01c0060488e1000006405449451cfa0'/>
<id>urn:sha1:f722063ee01c0060488e1000006405449451cfa0</id>
<content type='text'>
Prior to this patch these methods did a lookup followed by an insert.
Instead they now call a common mutate function that adjusts the value
according to a callback function.  This avoids traversing the data
structures twice and hence improves performance.

Also factor out sm_ll_lookup_big_ref_count() for use by both
sm_ll_lookup() and sm_ll_mutate().

Signed-off-by: Joe Thornber &lt;ejt@redhat.com&gt;
Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;
Signed-off-by: Alasdair G Kergon &lt;agk@redhat.com&gt;
</content>
</entry>
<entry>
<title>dm btree: prefetch child nodes when walking tree for a dm_btree_del</title>
<updated>2013-08-23T13:02:14Z</updated>
<author>
<name>Joe Thornber</name>
<email>ejt@redhat.com</email>
</author>
<published>2013-08-09T11:59:30Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=04f17c802f447e76d13ade5bb78fbbf34baef0f8'/>
<id>urn:sha1:04f17c802f447e76d13ade5bb78fbbf34baef0f8</id>
<content type='text'>
dm-btree now takes advantage of dm-bufio's ability to prefetch data via
dm_bm_prefetch().  Prior to this change many btree node visits were
causing a synchronous read.

Signed-off-by: Joe Thornber &lt;ejt@redhat.com&gt;
Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;
Signed-off-by: Alasdair G Kergon &lt;agk@redhat.com&gt;
</content>
</entry>
<entry>
<title>dm btree: use pop_frame in dm_btree_del to cleanup code</title>
<updated>2013-08-23T13:02:14Z</updated>
<author>
<name>Joe Thornber</name>
<email>ejt@redhat.com</email>
</author>
<published>2013-08-09T11:48:42Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=cd5acf0b445030cd8b5bfd818f464997652485e5'/>
<id>urn:sha1:cd5acf0b445030cd8b5bfd818f464997652485e5</id>
<content type='text'>
Remove a visited leaf straight away from the stack, rather than
marking all it's children as visited and letting it get removed on the
next iteration.  May also offer a micro optimisation in dm_btree_del.

Signed-off-by: Joe Thornber &lt;ejt@redhat.com&gt;
Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;
Signed-off-by: Alasdair G Kergon &lt;agk@redhat.com&gt;
</content>
</entry>
<entry>
<title>dm persistent metadata: add space map threshold callback</title>
<updated>2013-05-10T13:37:20Z</updated>
<author>
<name>Joe Thornber</name>
<email>ejt@redhat.com</email>
</author>
<published>2013-05-10T13:37:20Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=2fc48021f4afdd109b9e52b6eef5db89ca80bac7'/>
<id>urn:sha1:2fc48021f4afdd109b9e52b6eef5db89ca80bac7</id>
<content type='text'>
Add a threshold callback to dm persistent data space maps.

Signed-off-by: Joe Thornber &lt;ejt@redhat.com&gt;
Signed-off-by: Alasdair G Kergon &lt;agk@redhat.com&gt;
</content>
</entry>
<entry>
<title>dm persistent data: add threshold callback to space map</title>
<updated>2013-05-10T13:37:20Z</updated>
<author>
<name>Joe Thornber</name>
<email>ejt@redhat.com</email>
</author>
<published>2013-05-10T13:37:20Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=7c3d3f2a87b01ff167a5f048285d5e3dee920235'/>
<id>urn:sha1:7c3d3f2a87b01ff167a5f048285d5e3dee920235</id>
<content type='text'>
Add a threshold callback function to the persistent data space map
interface for a subsequent patch to use.

dm-thin and dm-cache are interested in knowing when they're getting
low on metadata or data blocks.  This patch introduces a new method
for registering a callback against a threshold.

Signed-off-by: Joe Thornber &lt;ejt@redhat.com&gt;
Signed-off-by: Alasdair G Kergon &lt;agk@redhat.com&gt;
</content>
</entry>
<entry>
<title>dm persistent data: support space map resizing</title>
<updated>2013-05-10T13:37:19Z</updated>
<author>
<name>Joe Thornber</name>
<email>ejt@redhat.com</email>
</author>
<published>2013-05-10T13:37:19Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=1921c56d95c4ac92b359ad44ffbc1e9a36060b29'/>
<id>urn:sha1:1921c56d95c4ac92b359ad44ffbc1e9a36060b29</id>
<content type='text'>
Support extending a dm persistent data metadata space map.

The extend itself is implemented by switching back to the boostrap
allocator and pointing to the new space.  The extra bitmap indexes are
then allocated from the new space, and finally we switch back to the
proper space map ops and tweak the reference counts.

Signed-off-by: Joe Thornber &lt;ejt@redhat.com&gt;
Signed-off-by: Alasdair G Kergon &lt;agk@redhat.com&gt;
</content>
</entry>
<entry>
<title>dm persistent data: fix error message typos</title>
<updated>2013-05-10T13:37:17Z</updated>
<author>
<name>Joe Thornber</name>
<email>ejt@redhat.com</email>
</author>
<published>2013-05-10T13:37:17Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=88a488f6243c98b38ac5191d4255e09d3b1c6455'/>
<id>urn:sha1:88a488f6243c98b38ac5191d4255e09d3b1c6455</id>
<content type='text'>
Fix some typos in dm-space-map-metadata.c error messages.

Signed-off-by: Joe Thornber &lt;ejt@redhat.com&gt;
Signed-off-by: Alasdair G Kergon &lt;agk@redhat.com&gt;
</content>
</entry>
<entry>
<title>dm thin: fix discard corruption</title>
<updated>2013-03-20T17:21:24Z</updated>
<author>
<name>Joe Thornber</name>
<email>ejt@redhat.com</email>
</author>
<published>2013-03-20T17:21:24Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=f046f89a99ccfd9408b94c653374ff3065c7edb3'/>
<id>urn:sha1:f046f89a99ccfd9408b94c653374ff3065c7edb3</id>
<content type='text'>
Fix a bug in dm_btree_remove that could leave leaf values with incorrect
reference counts.  The effect of this was that removal of a shared block
could result in the space maps thinking the block was no longer used.
More concretely, if you have a thin device and a snapshot of it, sending
a discard to a shared region of the thin could corrupt the snapshot.

Thinp uses a 2-level nested btree to store it's mappings.  This first
level is indexed by thin device, and the second level by logical
block.

Often when we're removing an entry in this mapping tree we need to
rebalance nodes, which can involve shadowing them, possibly creating a
copy if the block is shared.  If we do create a copy then children of
that node need to have their reference counts incremented.  In this
way reference counts percolate down the tree as shared trees diverge.

The rebalance functions were incrementing the children at the
appropriate time, but they were always assuming the children were
internal nodes.  This meant the leaf values (in our case packed
block/flags entries) were not being incremented.

Cc: stable@vger.kernel.org
Signed-off-by: Joe Thornber &lt;ejt@redhat.com&gt;
Signed-off-by: Alasdair G Kergon &lt;agk@redhat.com&gt;
</content>
</entry>
<entry>
<title>dm: add cache target</title>
<updated>2013-03-01T22:45:51Z</updated>
<author>
<name>Joe Thornber</name>
<email>ejt@redhat.com</email>
</author>
<published>2013-03-01T22:45:51Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=c6b4fcbad044e6fffcc75bba160e720eb8d67d17'/>
<id>urn:sha1:c6b4fcbad044e6fffcc75bba160e720eb8d67d17</id>
<content type='text'>
Add a target that allows a fast device such as an SSD to be used as a
cache for a slower device such as a disk.

A plug-in architecture was chosen so that the decisions about which data
to migrate and when are delegated to interchangeable tunable policy
modules.  The first general purpose module we have developed, called
"mq" (multiqueue), follows in the next patch.  Other modules are
under development.

Signed-off-by: Joe Thornber &lt;ejt@redhat.com&gt;
Signed-off-by: Heinz Mauelshagen &lt;mauelshagen@redhat.com&gt;
Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;
Signed-off-by: Alasdair G Kergon &lt;agk@redhat.com&gt;
</content>
</entry>
<entry>
<title>dm persistent data: add bitset</title>
<updated>2013-03-01T22:45:51Z</updated>
<author>
<name>Joe Thornber</name>
<email>ejt@redhat.com</email>
</author>
<published>2013-03-01T22:45:51Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=7a87edfee75151abb69d47dba2277ff2de0f6071'/>
<id>urn:sha1:7a87edfee75151abb69d47dba2277ff2de0f6071</id>
<content type='text'>
Add a persistent bitset as a wrapper around dm-array.

Signed-off-by: Joe Thornber &lt;ejt@redhat.com&gt;
Signed-off-by: Alasdair G Kergon &lt;agk@redhat.com&gt;
</content>
</entry>
</feed>
