<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/include/linux/lightnvm.h, branch v4.8.16</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.8.16</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.8.16'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2016-07-07T14:51:52Z</updated>
<entry>
<title>lightnvm: make ppa_list const in nvm_set_rqd_list</title>
<updated>2016-07-07T14:51:52Z</updated>
<author>
<name>Matias Bjørling</name>
<email>m@bjorling.me</email>
</author>
<published>2016-07-07T07:54:22Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=8680f165eaa56cc9812d7d9b4903f449df0f6a45'/>
<id>urn:sha1:8680f165eaa56cc9812d7d9b4903f449df0f6a45</id>
<content type='text'>
The passed by reference ppa list in nvm_set_rqd_list() is updated when
multiple planes are available. In that case, each PPA plane is
incremented when the device side PPA list is created. This prevents the
caller to rely on the PPA list to be unmodified after a call.

Signed-off-by: Matias Bjørling &lt;m@bjorling.me&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>lightnvm: remove _unlocked variant of [get/put]_blk</title>
<updated>2016-07-07T14:51:52Z</updated>
<author>
<name>Matias Bjørling</name>
<email>m@bjorling.me</email>
</author>
<published>2016-07-07T07:54:19Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=41285fad511a2c3746bee7ccb3b2f21b70305c14'/>
<id>urn:sha1:41285fad511a2c3746bee7ccb3b2f21b70305c14</id>
<content type='text'>
The [get/put]_blk API enables targets to get ownership of blocks at
runtime. This information is currently not recorded on disk, and the
information is therefore lost on power failure. To restore the
metadata, the [get/put]_blk must persist its metadata. In that case,
we need to control the outer lock, so that we can disable them while
updating the on-disk metadata. Fortunately, the _unlocked versions can
be removed, which allows us to move the lock into the [get/put]_blk
functions.

Signed-off-by: Matias Bjørling &lt;m@bjorling.me&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>lightnvm: move target mgmt into media mgr</title>
<updated>2016-07-07T14:51:52Z</updated>
<author>
<name>Matias Bjørling</name>
<email>m@bjorling.me</email>
</author>
<published>2016-07-07T07:54:16Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=b76eb20bb0c6f4f9c2e1ad493f73c52817b8aaff'/>
<id>urn:sha1:b76eb20bb0c6f4f9c2e1ad493f73c52817b8aaff</id>
<content type='text'>
To enable persistent block management to easily control creation and
removal of targets, we move target management into the media
manager. The LightNVM core continues to maintain which target types are
registered, while the media manager now keeps track of its initialized
targets.

Two new callbacks for the media manager are introduced. create_tgt and
remove_tgt. Note that remove_tgt returns 0 on successfully removing a
target, and returns 1 if the target was not found.

Signed-off-by: Matias Bjørling &lt;m@bjorling.me&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>lightnvm: remove open/close statistics for gennvm</title>
<updated>2016-07-07T14:51:52Z</updated>
<author>
<name>Matias Bjørling</name>
<email>m@bjorling.me</email>
</author>
<published>2016-07-07T07:54:14Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=077d2389994197277f4f7662b13d11b2f67646a7'/>
<id>urn:sha1:077d2389994197277f4f7662b13d11b2f67646a7</id>
<content type='text'>
The responsibility of the media manager is not to keep track of
open/closed blocks. This is better maintained within a target,
that already manages this information on writes.

Remove the statistics and merge the states NVM_BLK_ST_OPEN and
NVM_BLK_ST_CLOSED.

Signed-off-by: Matias Bjørling &lt;m@bjorling.me&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>lightnvm: initialize ppa_addr in dev_to_generic_addr()</title>
<updated>2016-07-07T14:51:52Z</updated>
<author>
<name>Javier González</name>
<email>javier@cnexlabs.com</email>
</author>
<published>2016-07-07T07:54:09Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=5389a1dfb39786df08d4f6a482bd2734b1b50e33'/>
<id>urn:sha1:5389a1dfb39786df08d4f6a482bd2734b1b50e33</id>
<content type='text'>
The -&gt;reserved bit is not initialized when allocated on stack.
This may lead targets to misinterpret the PPA as cached.

Signed-off-by: Javier González &lt;javier@cnexlabs.com&gt;
Signed-off-by: Matias Bjørling &lt;m@bjorling.me&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>lightnvm: add media manager mark_blk helper</title>
<updated>2016-07-07T14:51:52Z</updated>
<author>
<name>Javier González</name>
<email>jg@lightnvm.io</email>
</author>
<published>2016-07-07T07:54:08Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=529435e8188674fa1071235f50e6fbbbe020c93f'/>
<id>urn:sha1:529435e8188674fa1071235f50e6fbbbe020c93f</id>
<content type='text'>
Expose media manager mark_blk() to targets, as done for the rest of the
media manager callback functions.

Signed-off-by: Javier González &lt;javier@cnexlabs.com&gt;
Updated description
Signed-off-by: Matias Bjørling &lt;m@bjorling.me&gt;

Signed-off-by: Matias Bjørling &lt;m@bjorling.me&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>lightnvm: reserved space calculation incorrect</title>
<updated>2016-05-06T18:51:10Z</updated>
<author>
<name>Javier González</name>
<email>jg@lightnvm.io</email>
</author>
<published>2016-05-06T18:03:21Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=116f7d4a21fe450efc652c4850eb27cda36c9db0'/>
<id>urn:sha1:116f7d4a21fe450efc652c4850eb27cda36c9db0</id>
<content type='text'>
The nvm_dev-&gt;max_pages_per_blk variable was removed in favor of the new
nvm-&gt;sec_per_blk variable. The -&gt;max_pages_per_blk variable was still
used in rrpc_capacity, reporting the reserved capacity to zero. Replace
with -&gt;sec_per_blk to calculate the reserved area again.

Signed-off-by: Javier González &lt;javier@cnexlabs.com&gt;
Updated patch description. Was "lightnvm: eliminate redundant variable"
Signed-off-by: Matias Bjørling &lt;m@bjorling.me&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>lightnvm: rename nr_pages to nr_ppas on nvm_rq</title>
<updated>2016-05-06T18:51:10Z</updated>
<author>
<name>Javier González</name>
<email>jg@lightnvm.io</email>
</author>
<published>2016-05-06T18:03:20Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=6d5be9590b5e15124e3c8b319c8d7ce01abcf07d'/>
<id>urn:sha1:6d5be9590b5e15124e3c8b319c8d7ce01abcf07d</id>
<content type='text'>
The number of ppas contained on a request is not necessarily the number
of pages that it maps to neither on the target nor on the device side.
In order to avoid confusion, rename nr_pages to nr_ppas since it is what
the variable actually contains.

Signed-off-by: Javier González &lt;javier@cnexlabs.com&gt;
Signed-off-by: Matias Bjørling &lt;m@bjorling.me&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>lightnvm: add is_cached entry to struct ppa_addr</title>
<updated>2016-05-06T18:51:10Z</updated>
<author>
<name>Matias Bjørling</name>
<email>m@bjorling.me</email>
</author>
<published>2016-05-06T18:03:19Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=df414b33bb1eb3a0ae52ccd4ecfec9323a4f89dc'/>
<id>urn:sha1:df414b33bb1eb3a0ae52ccd4ecfec9323a4f89dc</id>
<content type='text'>
A target requires a method to identify PPAs that are either cached in
memory or on disk. This can efficiently be maintained within the PPA.
The target host-side translation table can then lookup a PPA and know
from the PPA if it is cached or on disk. In the case it is cached, it is
the responsibility of the target to maintain this cache.

Signed-off-by: Matias Bjørling &lt;m@bjorling.me&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>lightnvm: expose gennvm_mark_blk to targets</title>
<updated>2016-05-06T18:51:10Z</updated>
<author>
<name>Matias Bjørling</name>
<email>m@bjorling.me</email>
</author>
<published>2016-05-06T18:03:18Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=04a8aa173bd9410849526a80dcf733da9c3e142d'/>
<id>urn:sha1:04a8aa173bd9410849526a80dcf733da9c3e142d</id>
<content type='text'>
Targets can update a block state when having a reference to an
in-memory virtual block. In the case that a target does not keep the
block metadata in memory, it does not have a way to update this
structure.

Therefore, expose gennvm_mark_blk() through the media managers
-&gt;mark_blk() callback and let targets update the state structure through
this callback.

Signed-off-by: Matias Bjørling &lt;m@bjorling.me&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
</feed>
