From: "Matias Bjørling" <m@bjorling.me>
To: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: "Hans Holmberg" <hans.holmberg@cnexlabs.com>,
"Javier González" <javier@cnexlabs.com>,
"Matias Bjørling" <m@bjorling.me>
Subject: [PATCH 13/25] lightnvm: pblk: rename sync_point to flush_point
Date: Wed, 20 Dec 2017 18:21:53 +0100 [thread overview]
Message-ID: <20171220172205.26464-14-m@bjorling.me> (raw)
In-Reply-To: <20171220172205.26464-1-m@bjorling.me>
From: Hans Holmberg <hans.holmberg@cnexlabs.com>
Sync point is a really confusing name for keeping track of
the last entry that needs to be flushed so change the name
to to flush_point instead.
Signed-off-by: Hans Holmberg <hans.holmberg@cnexlabs.com>
Signed-off-by: Javier González <javier@cnexlabs.com>
Signed-off-by: Matias Bjørling <m@bjorling.me>
---
drivers/lightnvm/pblk-rb.c | 61 ++++++++++++++++++++++---------------------
drivers/lightnvm/pblk-write.c | 2 +-
drivers/lightnvm/pblk.h | 6 ++---
3 files changed, 35 insertions(+), 34 deletions(-)
diff --git a/drivers/lightnvm/pblk-rb.c b/drivers/lightnvm/pblk-rb.c
index 62db408..941842e 100644
--- a/drivers/lightnvm/pblk-rb.c
+++ b/drivers/lightnvm/pblk-rb.c
@@ -54,7 +54,7 @@ int pblk_rb_init(struct pblk_rb *rb, struct pblk_rb_entry *rb_entry_base,
rb->seg_size = (1 << power_seg_sz);
rb->nr_entries = (1 << power_size);
rb->mem = rb->subm = rb->sync = rb->l2p_update = 0;
- rb->sync_point = EMPTY_ENTRY;
+ rb->flush_point = EMPTY_ENTRY;
spin_lock_init(&rb->w_lock);
spin_lock_init(&rb->s_lock);
@@ -112,7 +112,7 @@ int pblk_rb_init(struct pblk_rb *rb, struct pblk_rb_entry *rb_entry_base,
up_write(&pblk_rb_lock);
#ifdef CONFIG_NVM_DEBUG
- atomic_set(&rb->inflight_sync_point, 0);
+ atomic_set(&rb->inflight_flush_point, 0);
#endif
/*
@@ -349,26 +349,26 @@ void pblk_rb_write_entry_gc(struct pblk_rb *rb, void *data,
smp_store_release(&entry->w_ctx.flags, flags);
}
-static int pblk_rb_sync_point_set(struct pblk_rb *rb, struct bio *bio,
+static int pblk_rb_flush_point_set(struct pblk_rb *rb, struct bio *bio,
unsigned int pos)
{
struct pblk_rb_entry *entry;
- unsigned int subm, sync_point;
+ unsigned int subm, flush_point;
subm = READ_ONCE(rb->subm);
#ifdef CONFIG_NVM_DEBUG
- atomic_inc(&rb->inflight_sync_point);
+ atomic_inc(&rb->inflight_flush_point);
#endif
if (pos == subm)
return 0;
- sync_point = (pos == 0) ? (rb->nr_entries - 1) : (pos - 1);
- entry = &rb->entries[sync_point];
+ flush_point = (pos == 0) ? (rb->nr_entries - 1) : (pos - 1);
+ entry = &rb->entries[flush_point];
- /* Protect syncs */
- smp_store_release(&rb->sync_point, sync_point);
+ /* Protect flush points */
+ smp_store_release(&rb->flush_point, flush_point);
if (!bio)
return 0;
@@ -416,7 +416,7 @@ void pblk_rb_flush(struct pblk_rb *rb)
struct pblk *pblk = container_of(rb, struct pblk, rwb);
unsigned int mem = READ_ONCE(rb->mem);
- if (pblk_rb_sync_point_set(rb, NULL, mem))
+ if (pblk_rb_flush_point_set(rb, NULL, mem))
return;
pblk_write_should_kick(pblk);
@@ -440,7 +440,7 @@ static int pblk_rb_may_write_flush(struct pblk_rb *rb, unsigned int nr_entries,
#ifdef CONFIG_NVM_DEBUG
atomic_long_inc(&pblk->nr_flush);
#endif
- if (pblk_rb_sync_point_set(&pblk->rwb, bio, mem))
+ if (pblk_rb_flush_point_set(&pblk->rwb, bio, mem))
*io_ret = NVM_IO_OK;
}
@@ -607,17 +607,18 @@ unsigned int pblk_rb_read_to_bio(struct pblk_rb *rb, struct nvm_rq *rqd,
}
if (flags & PBLK_FLUSH_ENTRY) {
- unsigned int sync_point;
+ unsigned int flush_point;
- sync_point = READ_ONCE(rb->sync_point);
- if (sync_point == pos) {
- /* Protect syncs */
- smp_store_release(&rb->sync_point, EMPTY_ENTRY);
+ flush_point = READ_ONCE(rb->flush_point);
+ if (flush_point == pos) {
+ /* Protect flush points */
+ smp_store_release(&rb->flush_point,
+ EMPTY_ENTRY);
}
flags &= ~PBLK_FLUSH_ENTRY;
#ifdef CONFIG_NVM_DEBUG
- atomic_dec(&rb->inflight_sync_point);
+ atomic_dec(&rb->inflight_flush_point);
#endif
}
@@ -746,20 +747,20 @@ unsigned int pblk_rb_sync_advance(struct pblk_rb *rb, unsigned int nr_entries)
return sync;
}
-unsigned int pblk_rb_sync_point_count(struct pblk_rb *rb)
+unsigned int pblk_rb_flush_point_count(struct pblk_rb *rb)
{
- unsigned int subm, sync_point;
+ unsigned int subm, flush_point;
unsigned int count;
- /* Protect syncs */
- sync_point = smp_load_acquire(&rb->sync_point);
- if (sync_point == EMPTY_ENTRY)
+ /* Protect flush points */
+ flush_point = smp_load_acquire(&rb->flush_point);
+ if (flush_point == EMPTY_ENTRY)
return 0;
subm = READ_ONCE(rb->subm);
/* The sync point itself counts as a sector to sync */
- count = pblk_rb_ring_count(sync_point, subm, rb->nr_entries) + 1;
+ count = pblk_rb_ring_count(flush_point, subm, rb->nr_entries) + 1;
return count;
}
@@ -801,7 +802,7 @@ int pblk_rb_tear_down_check(struct pblk_rb *rb)
if ((rb->mem == rb->subm) && (rb->subm == rb->sync) &&
(rb->sync == rb->l2p_update) &&
- (rb->sync_point == EMPTY_ENTRY)) {
+ (rb->flush_point == EMPTY_ENTRY)) {
goto out;
}
@@ -848,7 +849,7 @@ ssize_t pblk_rb_sysfs(struct pblk_rb *rb, char *buf)
queued_entries++;
spin_unlock_irq(&rb->s_lock);
- if (rb->sync_point != EMPTY_ENTRY)
+ if (rb->flush_point != EMPTY_ENTRY)
offset = scnprintf(buf, PAGE_SIZE,
"%u\t%u\t%u\t%u\t%u\t%u\t%u - %u/%u/%u - %d\n",
rb->nr_entries,
@@ -857,14 +858,14 @@ ssize_t pblk_rb_sysfs(struct pblk_rb *rb, char *buf)
rb->sync,
rb->l2p_update,
#ifdef CONFIG_NVM_DEBUG
- atomic_read(&rb->inflight_sync_point),
+ atomic_read(&rb->inflight_flush_point),
#else
0,
#endif
- rb->sync_point,
+ rb->flush_point,
pblk_rb_read_count(rb),
pblk_rb_space(rb),
- pblk_rb_sync_point_count(rb),
+ pblk_rb_flush_point_count(rb),
queued_entries);
else
offset = scnprintf(buf, PAGE_SIZE,
@@ -875,13 +876,13 @@ ssize_t pblk_rb_sysfs(struct pblk_rb *rb, char *buf)
rb->sync,
rb->l2p_update,
#ifdef CONFIG_NVM_DEBUG
- atomic_read(&rb->inflight_sync_point),
+ atomic_read(&rb->inflight_flush_point),
#else
0,
#endif
pblk_rb_read_count(rb),
pblk_rb_space(rb),
- pblk_rb_sync_point_count(rb),
+ pblk_rb_flush_point_count(rb),
queued_entries);
return offset;
diff --git a/drivers/lightnvm/pblk-write.c b/drivers/lightnvm/pblk-write.c
index 6c30b7a..018af87 100644
--- a/drivers/lightnvm/pblk-write.c
+++ b/drivers/lightnvm/pblk-write.c
@@ -508,7 +508,7 @@ static int pblk_submit_write(struct pblk *pblk)
if (!secs_avail)
return 1;
- secs_to_flush = pblk_rb_sync_point_count(&pblk->rwb);
+ secs_to_flush = pblk_rb_flush_point_count(&pblk->rwb);
if (!secs_to_flush && secs_avail < pblk->min_write_pgs)
return 1;
diff --git a/drivers/lightnvm/pblk.h b/drivers/lightnvm/pblk.h
index f324a7e..6f5fbd1 100644
--- a/drivers/lightnvm/pblk.h
+++ b/drivers/lightnvm/pblk.h
@@ -166,7 +166,7 @@ struct pblk_rb {
* the last submitted entry that has
* been successfully persisted to media
*/
- unsigned int sync_point; /* Sync point - last entry that must be
+ unsigned int flush_point; /* Sync point - last entry that must be
* flushed to the media. Used with
* REQ_FLUSH and REQ_FUA
*/
@@ -189,7 +189,7 @@ struct pblk_rb {
spinlock_t s_lock; /* Sync lock */
#ifdef CONFIG_NVM_DEBUG
- atomic_t inflight_sync_point; /* Not served REQ_FLUSH | REQ_FUA */
+ atomic_t inflight_flush_point; /* Not served REQ_FLUSH | REQ_FUA */
#endif
};
@@ -687,7 +687,7 @@ unsigned int pblk_rb_sync_advance(struct pblk_rb *rb, unsigned int nr_entries);
struct pblk_rb_entry *pblk_rb_sync_scan_entry(struct pblk_rb *rb,
struct ppa_addr *ppa);
void pblk_rb_sync_end(struct pblk_rb *rb, unsigned long *flags);
-unsigned int pblk_rb_sync_point_count(struct pblk_rb *rb);
+unsigned int pblk_rb_flush_point_count(struct pblk_rb *rb);
unsigned int pblk_rb_read_count(struct pblk_rb *rb);
unsigned int pblk_rb_sync_count(struct pblk_rb *rb);
--
2.9.3
next prev parent reply other threads:[~2017-12-20 17:26 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-20 17:21 [PATCH 00/25] Updates to lightnvm and pblk Matias Bjørling
2017-12-20 17:21 ` [PATCH 01/25] null_blk: remove lightnvm support Matias Bjørling
2017-12-20 17:21 ` [PATCH 02/25] lightnvm: remove rrpc Matias Bjørling
2017-12-20 17:21 ` [PATCH 03/25] lightnvm: use internal pblk methods Matias Bjørling
2017-12-20 17:21 ` [PATCH 04/25] lightnvm: remove hybrid ocssd 1.2 support Matias Bjørling
2017-12-20 17:21 ` [PATCH 05/25] lightnvm: remove unnecessary field from nvm_rq Matias Bjørling
2017-12-20 17:21 ` [PATCH 06/25] lightnvm: remove lower page tables Matias Bjørling
2017-12-20 17:21 ` [PATCH 07/25] lightnvm: make geometry structures 2.0 ready Matias Bjørling
2017-12-20 17:21 ` [PATCH 08/25] lightnvm: refactor target type lookup Matias Bjørling
2017-12-20 17:21 ` [PATCH 09/25] lightnvm: guarantee target unique name across devs Matias Bjørling
2017-12-20 17:21 ` [PATCH 10/25] lightnvm: pblk: compress and reorder helper functions Matias Bjørling
2017-12-20 17:21 ` [PATCH 11/25] lightnvm: pblk: remove pblk_for_each_lun helper Matias Bjørling
2017-12-20 17:21 ` [PATCH 12/25] lightnvm: pblk: refactor emeta consistency check Matias Bjørling
2017-12-20 17:21 ` Matias Bjørling [this message]
2017-12-20 17:21 ` [PATCH 14/25] lightnvm: pblk: clear flush point on completed writes Matias Bjørling
2017-12-28 13:19 ` [PATCH v2] " Hans Holmberg
2017-12-20 17:21 ` [PATCH 15/25] lightnvm: pblk: prevent premature sync point resets Matias Bjørling
2017-12-20 17:21 ` [PATCH 16/25] lightnvm: pblk: remove pblk_gc_stop Matias Bjørling
2017-12-20 17:21 ` [PATCH 17/25] lightnvm: pblk: use exact free block counter in RL Matias Bjørling
2017-12-20 17:21 ` [PATCH 18/25] lightnvm: set target over-provision on create ioctl Matias Bjørling
2017-12-20 17:21 ` [PATCH 19/25] lightnvm: pblk: ignore high ecc errors on recovery Matias Bjørling
2017-12-20 17:22 ` [PATCH 20/25] lightnvm: pblk: do not log recovery read errors Matias Bjørling
2017-12-20 17:22 ` [PATCH 21/25] lightnvm: pblk: ensure kthread alloc. before kicking it Matias Bjørling
2017-12-20 17:22 ` [PATCH 22/25] lightnvm: pblk: free write buffer on init failure Matias Bjørling
2017-12-20 17:22 ` [PATCH 23/25] lightnvm: pblk: print instance name on instance info Matias Bjørling
2017-12-20 17:22 ` [PATCH 24/25] lightnvm: pblk: add iostat support Matias Bjørling
2017-12-20 17:22 ` [PATCH 25/25] lightnvm: pblk: refactor pblk_ppa_comp function Matias Bjørling
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171220172205.26464-14-m@bjorling.me \
--to=m@bjorling.me \
--cc=hans.holmberg@cnexlabs.com \
--cc=javier@cnexlabs.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®