<feed xmlns='http://www.w3.org/2005/Atom'>
<title>BMC/Intel-BMC/linux.git/include/linux/lightnvm.h, branch dev-4.7</title>
<subtitle>Intel OpenBMC Linux kernel source tree (mirror)</subtitle>
<id>https://git.radix-linux.su/BMC/Intel-BMC/linux.git/atom?h=dev-4.7</id>
<link rel='self' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/atom?h=dev-4.7'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/'/>
<updated>2016-05-06T18:51:10+00:00</updated>
<entry>
<title>lightnvm: reserved space calculation incorrect</title>
<updated>2016-05-06T18:51:10+00:00</updated>
<author>
<name>Javier González</name>
<email>jg@lightnvm.io</email>
</author>
<published>2016-05-06T18:03:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/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:10+00:00</updated>
<author>
<name>Javier González</name>
<email>jg@lightnvm.io</email>
</author>
<published>2016-05-06T18:03:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/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:10+00:00</updated>
<author>
<name>Matias Bjørling</name>
<email>m@bjorling.me</email>
</author>
<published>2016-05-06T18:03:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/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:10+00:00</updated>
<author>
<name>Matias Bjørling</name>
<email>m@bjorling.me</email>
</author>
<published>2016-05-06T18:03:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/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>
<entry>
<title>lightnvm: remove mgt targets on mgt removal</title>
<updated>2016-05-06T18:51:10+00:00</updated>
<author>
<name>Matias Bjørling</name>
<email>m@bjorling.me</email>
</author>
<published>2016-05-06T18:03:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=976bdfcae32ea10c2c8c2ecaeb0d85873f634dad'/>
<id>urn:sha1:976bdfcae32ea10c2c8c2ecaeb0d85873f634dad</id>
<content type='text'>
Targets associated with a device manager are not freed on device
removal. They have to be manually removed before shutdown. Make sure
any outstanding targets are freed upon shutdown.

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 dma helper functions</title>
<updated>2016-05-06T18:51:10+00:00</updated>
<author>
<name>Javier González</name>
<email>javier@cnexlabs.com</email>
</author>
<published>2016-05-06T18:03:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=75b8564932ef646e8620deffacbe134846333948'/>
<id>urn:sha1:75b8564932ef646e8620deffacbe134846333948</id>
<content type='text'>
Until now, the dma pool have been exclusively used to allocate the ppa
list being sent to the device. In pblk (upcoming), we use these pools to
allocate metadata too. Thus, we generalize the names of some variables
on the dma helper functions to make the code more readable.

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: enable metadata to be sent to device</title>
<updated>2016-05-06T18:51:10+00:00</updated>
<author>
<name>Javier González</name>
<email>javier@cnexlabs.com</email>
</author>
<published>2016-05-06T18:03:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=003fad376b924fc3a61c659f38da70356ec144fa'/>
<id>urn:sha1:003fad376b924fc3a61c659f38da70356ec144fa</id>
<content type='text'>
Enable metadata buffer to be sent to the device through the metadata
field on the physical rw nvme command. The size of the metadata buffer
must follow dev-&gt;oob_size * # of PPAs.

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: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>lightnvm: refactor set_bb_tbl for accepting ppa list</title>
<updated>2016-05-06T18:51:10+00:00</updated>
<author>
<name>Matias Bjørling</name>
<email>m@bjorling.me</email>
</author>
<published>2016-05-06T18:03:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=00ee6cc3b74bdb4dfb71838046517beb6839647c'/>
<id>urn:sha1:00ee6cc3b74bdb4dfb71838046517beb6839647c</id>
<content type='text'>
The set_bb_tbl takes struct nvm_rq and only uses its ppa_list and
nr_pages internally. Instead, make these two variables explicit.
This allows a user to call it without initializing a struct nvm_rq
first.

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: make nvm_set_rqd_ppalist() aware of vblks</title>
<updated>2016-05-06T18:51:10+00:00</updated>
<author>
<name>Matias Bjørling</name>
<email>m@bjorling.me</email>
</author>
<published>2016-05-06T18:03:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=5ebc7d9fe13ff9bd3622d0be3cd39c8751459be6'/>
<id>urn:sha1:5ebc7d9fe13ff9bd3622d0be3cd39c8751459be6</id>
<content type='text'>
A virtual block enables a block to identify multiple physical blocks.
This is useful for metadata where a device media supports multiple
planes. In that case, a block, with multiple planes can be managed
as a single vblk. Reducing the metadata required by one forth.

nvm_set_rqd_ppalist() takes care of expanding a ppa_list with vblks
automatically. However, for some use-cases, where only a single physical
block is required, the ppa_list should not be expanded.

Therefore, add a vblk parameter to nvm_set_rqd_ppalist(), and only
expand the ppa_list if vblk is set.

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: refactor device ops-&gt;get_bb_tbl()</title>
<updated>2016-05-06T18:51:10+00:00</updated>
<author>
<name>Matias Bjørling</name>
<email>m@bjorling.me</email>
</author>
<published>2016-05-06T18:03:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=e11903f5dfeb4f59fe93316d47f2ee5982e91e60'/>
<id>urn:sha1:e11903f5dfeb4f59fe93316d47f2ee5982e91e60</id>
<content type='text'>
The device ops-&gt;get_bb_tbl() takes a callback, that allows the caller
to use its own callback function to update its data structures in the
returning function.

This makes it difficult to send parameters to the callback, and usually
is circumvented by small private structures, that both carry the callers
state and any flags needed to fulfill the update.

Refactor ops-&gt;get_bb_tbl() to fill a data buffer with the status of the
blocks returned, and let the user call the callback function manually.
That will provide the necessary flags and data structures and simplify
the logic around ops-&gt;get_bb_tbl().

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