<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/include/linux/lightnvm.h, branch v4.12</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.12</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.12'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2017-04-16T16:06:25Z</updated>
<entry>
<title>lightnvm: allow to init targets on factory mode</title>
<updated>2017-04-16T16:06:25Z</updated>
<author>
<name>Javier González</name>
<email>jg@lightnvm.io</email>
</author>
<published>2017-04-15T18:55:45Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=4af3f75d7992dd0dc49da95fbc039fa3806fba4f'/>
<id>urn:sha1:4af3f75d7992dd0dc49da95fbc039fa3806fba4f</id>
<content type='text'>
Target initialization has two responsibilities: creating the target
partition and instantiating the target. This patch enables to create a
factory partition (e.g., do not trigger recovery on the given target).
This is useful for target development and for being able to restore the
device state at any moment in time without requiring a full-device
erase.

Signed-off-by: Javier González &lt;javier@cnexlabs.com&gt;
Signed-off-by: Matias Bjørling &lt;matias@cnexlabs.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>lightnvm: rename scrambler controller hint</title>
<updated>2017-04-16T16:06:25Z</updated>
<author>
<name>Javier González</name>
<email>jg@lightnvm.io</email>
</author>
<published>2017-04-15T18:55:38Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=a7737f39c70d9c63ba530d6316724d7be67de541'/>
<id>urn:sha1:a7737f39c70d9c63ba530d6316724d7be67de541</id>
<content type='text'>
According to the OCSSD 1.2 specification, the 0x200 hint enables the
media scrambler for the read/write opcode, providing that the controller
has been correctly configured by the firmware. Rename the macro to
represent this meaning.

Signed-off-by: Javier González &lt;javier@cnexlabs.com&gt;
Signed-off-by: Matias Bjørling &lt;matias@cnexlabs.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>lightnvm: submit erases using the I/O path</title>
<updated>2017-04-16T16:06:25Z</updated>
<author>
<name>Javier González</name>
<email>jg@lightnvm.io</email>
</author>
<published>2017-04-15T18:55:37Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=17912c49edfa6ab552329bf63d1b757eb874673b'/>
<id>urn:sha1:17912c49edfa6ab552329bf63d1b757eb874673b</id>
<content type='text'>
Until now erases have been submitted as synchronous commands through a
dedicated erase function. In order to enable targets implementing
asynchronous erases, refactor the erase path so that it uses the normal
async I/O submission functions. If a target requires sync I/O, it can
implement it internally. Also, adapt rrpc to use the new erase path.

Signed-off-by: Javier González &lt;javier@cnexlabs.com&gt;
Fixed spelling error.
Signed-off-by: Matias Bjørling &lt;matias@cnexlabs.com&gt;

Signed-off-by: Matias Bjørling &lt;matias@cnexlabs.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>lightnvm: allow targets to use sysfs</title>
<updated>2017-01-31T15:32:13Z</updated>
<author>
<name>Javier González</name>
<email>jg@lightnvm.io</email>
</author>
<published>2017-01-31T12:17:20Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=9a69b0ed6257ae5e71c99bf21ce53f98c558476a'/>
<id>urn:sha1:9a69b0ed6257ae5e71c99bf21ce53f98c558476a</id>
<content type='text'>
In order to register through the sysfs interface, a driver needs to know
its kobject. On a disk structure, this happens when the partition
information is added (device_add_disk), which for lightnvm takes place
after the target has been initialized. This means that on target
initialization, the kboject has not been created yet.

This patch adds a target function to let targets initialize their own
kboject as a child of the disk kobject.

Signed-off-by: Javier González &lt;javier@cnexlabs.com&gt;
Added exit typedef and passed gendisk instead of void pointer for exit.
Signed-off-by: Matias Bjørling &lt;matias@cnexlabs.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>lightnvm: Add CRC read error</title>
<updated>2017-01-31T15:32:13Z</updated>
<author>
<name>Javier González</name>
<email>jg@lightnvm.io</email>
</author>
<published>2017-01-31T12:17:18Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=38ea2f7656f815e7330868cbec7bada0fd7933a8'/>
<id>urn:sha1:38ea2f7656f815e7330868cbec7bada0fd7933a8</id>
<content type='text'>
Let the host differentiate between a read error and a CRC check error on
the device side.

Signed-off-by: Javier González &lt;javier@cnexlabs.com&gt;
Signed-off-by: Matias Bjørling &lt;matias@cnexlabs.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>lightnvm: use end_io callback instead of instance</title>
<updated>2017-01-31T15:32:13Z</updated>
<author>
<name>Matias Bjørling</name>
<email>matias@cnexlabs.com</email>
</author>
<published>2017-01-31T12:17:17Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=06894efea706b3cd4ce31e341ec51b4c62c34a86'/>
<id>urn:sha1:06894efea706b3cd4ce31e341ec51b4c62c34a86</id>
<content type='text'>
When the lightnvm core had the "gennvm" layer between the device and the
target, there was a need for the core to be able to figure out which
target it should send an end_io callback to. Leading to a "double"
end_io, first for the media manager instance, and then for the target
instance. Now that core and gennvm is merged, there is no longer a need
for this, and a single end_io callback will do.

Signed-off-by: Matias Bjørling &lt;matias@cnexlabs.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>lightnvm: reduce number of nvm_id groups to one</title>
<updated>2017-01-31T15:32:13Z</updated>
<author>
<name>Matias Bjørling</name>
<email>matias@cnexlabs.com</email>
</author>
<published>2017-01-31T12:17:15Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=19bd6fe73ca812964963aa30827cff9aae64a715'/>
<id>urn:sha1:19bd6fe73ca812964963aa30827cff9aae64a715</id>
<content type='text'>
The number of configuration groups has been limited to one in current
code, even if there is support for up to four. With the introduction
of the open-channel SSD 1.3 specification, only a single
group is exposed onwards. Reflect this in the nvm_id structure.

Signed-off-by: Matias Bjørling &lt;matias@cnexlabs.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>lightnvm: cleanup nvm transformation functions</title>
<updated>2017-01-31T15:32:13Z</updated>
<author>
<name>Matias Bjørling</name>
<email>matias@cnexlabs.com</email>
</author>
<published>2017-01-31T12:17:14Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=dab8ee9e8a30620a5b5f22d6c0b3749217093803'/>
<id>urn:sha1:dab8ee9e8a30620a5b5f22d6c0b3749217093803</id>
<content type='text'>
Going from target specific ppa addresses to device was accomplished by
first converting target to generic ppa addresses and generic to device
addresses. The conversion was either open-coded or used the built-in
nvm_trans_* and nvm_map_* functions for conversion. Simplify the
interface and cleanup the calls to provide clean functions that now
either take a list of ppas or a nvm_rq, and is exposed through:

 void nvm_ppa_* - target to/from device with a list of PPAs,
 void nvm_rq_* - target to/from device with a nvm_rq.

Signed-off-by: Matias Bjørling &lt;matias@cnexlabs.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>lightnvm: remove nvm_get_bb_tbl and nvm_set_bb_tbl</title>
<updated>2017-01-31T15:32:13Z</updated>
<author>
<name>Matias Bjørling</name>
<email>matias@cnexlabs.com</email>
</author>
<published>2017-01-31T12:17:12Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=8f4fe008fb256649bd0e16c96a6eafa3bd916ac3'/>
<id>urn:sha1:8f4fe008fb256649bd0e16c96a6eafa3bd916ac3</id>
<content type='text'>
Since the merge of gennvm and core, there is no longer a need for the
device specific bad block functions.

Signed-off-by: Matias Bjørling &lt;matias@cnexlabs.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>lightnvm: remove nvm_submit_ppa* functions</title>
<updated>2017-01-31T15:32:13Z</updated>
<author>
<name>Matias Bjørling</name>
<email>matias@cnexlabs.com</email>
</author>
<published>2017-01-31T12:17:11Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=583b7058b2e8071f59646c8fb027f6c3597417ac'/>
<id>urn:sha1:583b7058b2e8071f59646c8fb027f6c3597417ac</id>
<content type='text'>
The nvm_submit_ppa* functions are no longer needed after gennvm and core
have been merged.

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