2018-11-28 11:22:56

by Javier González

[permalink] [raw]
Subject: [PATCH] lightnvm: pblk: add comments wrt locking in recovery path

pblk's recovery path is single threaded and therefore a number of
assumptions regarding concurrency can be made. To avoid confusion, make
this explicit with a couple of comments in the code.

Signed-off-by: Javier González <[email protected]>
---
drivers/lightnvm/pblk-core.c | 1 +
drivers/lightnvm/pblk-recovery.c | 3 +++
2 files changed, 4 insertions(+)

diff --git a/drivers/lightnvm/pblk-core.c b/drivers/lightnvm/pblk-core.c
index 44c5dc046912..f1b411e7c7c9 100644
--- a/drivers/lightnvm/pblk-core.c
+++ b/drivers/lightnvm/pblk-core.c
@@ -1276,6 +1276,7 @@ static int pblk_line_prepare(struct pblk *pblk, struct pblk_line *line)
return 0;
}

+/* Line allocations in the recovery path are always single threaded */
int pblk_line_recov_alloc(struct pblk *pblk, struct pblk_line *line)
{
struct pblk_line_mgmt *l_mg = &pblk->l_mg;
diff --git a/drivers/lightnvm/pblk-recovery.c b/drivers/lightnvm/pblk-recovery.c
index 416d9840544b..4c726506a831 100644
--- a/drivers/lightnvm/pblk-recovery.c
+++ b/drivers/lightnvm/pblk-recovery.c
@@ -13,6 +13,9 @@
* General Public License for more details.
*
* pblk-recovery.c - pblk's recovery path
+ *
+ * The L2P recovery path is single threaded as the L2P table is updated in order
+ * following the line sequence ID.
*/

#include "pblk.h"
--
2.7.4



2018-11-30 08:36:58

by Matias Bjørling

[permalink] [raw]
Subject: Re: [PATCH] lightnvm: pblk: add comments wrt locking in recovery path

On 11/28/2018 12:20 PM, Javier González wrote:
> pblk's recovery path is single threaded and therefore a number of
> assumptions regarding concurrency can be made. To avoid confusion, make
> this explicit with a couple of comments in the code.
>
> Signed-off-by: Javier González <[email protected]>
> ---
> drivers/lightnvm/pblk-core.c | 1 +
> drivers/lightnvm/pblk-recovery.c | 3 +++
> 2 files changed, 4 insertions(+)
>
> diff --git a/drivers/lightnvm/pblk-core.c b/drivers/lightnvm/pblk-core.c
> index 44c5dc046912..f1b411e7c7c9 100644
> --- a/drivers/lightnvm/pblk-core.c
> +++ b/drivers/lightnvm/pblk-core.c
> @@ -1276,6 +1276,7 @@ static int pblk_line_prepare(struct pblk *pblk, struct pblk_line *line)
> return 0;
> }
>
> +/* Line allocations in the recovery path are always single threaded */
> int pblk_line_recov_alloc(struct pblk *pblk, struct pblk_line *line)
> {
> struct pblk_line_mgmt *l_mg = &pblk->l_mg;
> diff --git a/drivers/lightnvm/pblk-recovery.c b/drivers/lightnvm/pblk-recovery.c
> index 416d9840544b..4c726506a831 100644
> --- a/drivers/lightnvm/pblk-recovery.c
> +++ b/drivers/lightnvm/pblk-recovery.c
> @@ -13,6 +13,9 @@
> * General Public License for more details.
> *
> * pblk-recovery.c - pblk's recovery path
> + *
> + * The L2P recovery path is single threaded as the L2P table is updated in order
> + * following the line sequence ID.
> */
>
> #include "pblk.h"
>

Picked up for 4.21.