Rename logbuffer dskrsv/dskreqs -> dskpool

parent e97656e4
...@@ -421,9 +421,9 @@ assert_lbuf_dsk_resv(void) ...@@ -421,9 +421,9 @@ assert_lbuf_dsk_resv(void)
} }
// dsk request // dsk request
BUDDY_REQS(lbuf_dskrsv_s, LBUF_DSK_RSV_REQS); BUDDY_REQS(lbuf_dskpool_s, LBUF_DSK_RSV_REQS);
// this is the memory request for dskrsv // this is the memory request for dskpool
BUDDY_REQS(lbuf_dskrsv_mem_s, 1); BUDDY_REQS(lbuf_dskpool_mem_s, 1);
// memory for flush_finish // memory for flush_finish
BUDDY_REQS(lbuf_ff_mem_s, 1); BUDDY_REQS(lbuf_ff_mem_s, 1);
...@@ -466,8 +466,8 @@ struct fellow_logbuffer { ...@@ -466,8 +466,8 @@ struct fellow_logbuffer {
off_t tail_off; off_t tail_off;
struct fellow_logbuffer_ff *ff; struct fellow_logbuffer_ff *ff;
struct lbuf_ff_mem_s ff_mem; struct lbuf_ff_mem_s ff_mem;
struct lbuf_dskrsv_mem_s dskreqs_mem; struct lbuf_dskpool_mem_s dskpool_mem;
struct lbuf_dskrsv_s (*dskreqs)[2]; struct lbuf_dskpool_s (*dskpool)[2];
unsigned active_reqs; unsigned active_reqs;
}; };
...@@ -1999,33 +1999,33 @@ logbuffer_fini_ff_mem(struct fellow_logbuffer *lbuf) ...@@ -1999,33 +1999,33 @@ logbuffer_fini_ff_mem(struct fellow_logbuffer *lbuf)
} }
static inline void static inline void
logbuffer_fini_dskreqs_mem(struct fellow_logbuffer *lbuf) logbuffer_fini_dskpool_mem(struct fellow_logbuffer *lbuf)
{ {
if (lbuf->dskreqs_mem.reqs.magic == 0) if (lbuf->dskpool_mem.reqs.magic == 0)
return; return;
buddy_alloc_wait_done(&lbuf->dskreqs_mem.reqs); buddy_alloc_wait_done(&lbuf->dskpool_mem.reqs);
lbuf->dskreqs_mem.reqs.magic = 0; lbuf->dskpool_mem.reqs.magic = 0;
} }
static void static void
logbuffer_fini_dskreqs(struct fellow_logbuffer *lbuf) logbuffer_fini_dskpool(struct fellow_logbuffer *lbuf)
{ {
struct buddy_ptr_extent alloc; struct buddy_ptr_extent alloc;
size_t sz; size_t sz;
if (lbuf->dskreqs != NULL) { if (lbuf->dskpool != NULL) {
buddy_alloc_wait_done(&(*lbuf->dskreqs)[0].reqs); buddy_alloc_wait_done(&(*lbuf->dskpool)[0].reqs);
buddy_alloc_wait_done(&(*lbuf->dskreqs)[1].reqs); buddy_alloc_wait_done(&(*lbuf->dskpool)[1].reqs);
sz = buddy_rndup(lbuf->membuddy, sizeof *lbuf->dskreqs); sz = buddy_rndup(lbuf->membuddy, sizeof *lbuf->dskpool);
alloc = BUDDY_PTR_EXTENT(lbuf->dskreqs, sz); alloc = BUDDY_PTR_EXTENT(lbuf->dskpool, sz);
buddy_return1_ptr_extent(lbuf->membuddy, &alloc); buddy_return1_ptr_extent(lbuf->membuddy, &alloc);
lbuf->dskreqs = NULL; lbuf->dskpool = NULL;
} }
else if (lbuf->dskreqs_mem.reqs.magic == BUDDY_REQS_MAGIC) else if (lbuf->dskpool_mem.reqs.magic == BUDDY_REQS_MAGIC)
logbuffer_fini_dskreqs_mem(lbuf); logbuffer_fini_dskpool_mem(lbuf);
AZ(lbuf->dskreqs); AZ(lbuf->dskpool);
AZ(lbuf->dskreqs_mem.reqs.magic); AZ(lbuf->dskpool_mem.reqs.magic);
} }
static void static void
...@@ -2039,7 +2039,7 @@ logbuffer_fini(struct fellow_logbuffer *lbuf) ...@@ -2039,7 +2039,7 @@ logbuffer_fini(struct fellow_logbuffer *lbuf)
assert(lbuf->state == LBUF_FINI); assert(lbuf->state == LBUF_FINI);
AZ(lbuf->regions_to_free); AZ(lbuf->regions_to_free);
logbuffer_fini_dskreqs(lbuf); logbuffer_fini_dskpool(lbuf);
logbuffer_fini_ff_mem(lbuf); logbuffer_fini_ff_mem(lbuf);
if (lbuf->fdil.ioctx != NULL) { if (lbuf->fdil.ioctx != NULL) {
...@@ -2129,7 +2129,7 @@ logbuffer_recycle(struct fellow_fd *ffd, struct fellow_logbuffer *lbuf, ...@@ -2129,7 +2129,7 @@ logbuffer_recycle(struct fellow_fd *ffd, struct fellow_logbuffer *lbuf,
CHECK_OBJ_NOTNULL(ffd, FELLOW_FD_MAGIC); CHECK_OBJ_NOTNULL(ffd, FELLOW_FD_MAGIC);
AN(lbuf); AN(lbuf);
logbuffer_fini_dskreqs(lbuf); logbuffer_fini_dskpool(lbuf);
logbuffer_assert_empty(lbuf); logbuffer_assert_empty(lbuf);
logbuffer_wait_flush_fini(lbuf); logbuffer_wait_flush_fini(lbuf);
...@@ -2188,7 +2188,7 @@ logbuffer_init(struct fellow_fd *ffd, struct fellow_logbuffer *lbuf, ...@@ -2188,7 +2188,7 @@ logbuffer_init(struct fellow_fd *ffd, struct fellow_logbuffer *lbuf,
static inline void static inline void
logbuffer_take(struct fellow_logbuffer *to, struct fellow_logbuffer *from) logbuffer_take(struct fellow_logbuffer *to, struct fellow_logbuffer *from)
{ {
logbuffer_fini_dskreqs_mem(from); logbuffer_fini_dskpool_mem(from);
logbuffer_fini_ff_mem(from); logbuffer_fini_ff_mem(from);
logbuffer_wait_flush_fini(from); logbuffer_wait_flush_fini(from);
TAKE(*to, *from); TAKE(*to, *from);
...@@ -2315,18 +2315,18 @@ logbuffer_fill_dskreq(const struct fellow_logbuffer *lbuf, ...@@ -2315,18 +2315,18 @@ logbuffer_fill_dskreq(const struct fellow_logbuffer *lbuf,
} }
static struct buddy_reqs * static struct buddy_reqs *
logbuffer_get_dskreqs(struct fellow_logbuffer *lbuf) logbuffer_get_dskpool(struct fellow_logbuffer *lbuf)
{ {
struct buddy_reqs *reqs; struct buddy_reqs *reqs;
int i; int i;
AN(lbuf->dskreqs); AN(lbuf->dskpool);
/* i < 3: If both reqs are empty, at iteration 3 we /* i < 3: If both reqs are empty, at iteration 3 we
* must hit the first filled alloc * must hit the first filled alloc
*/ */
for (i = 0; i < 3; i++) { for (i = 0; i < 3; i++) {
AZ(lbuf->active_reqs & ~1); AZ(lbuf->active_reqs & ~1);
reqs = &(*lbuf->dskreqs)[lbuf->active_reqs].reqs; reqs = &(*lbuf->dskpool)[lbuf->active_reqs].reqs;
CHECK_OBJ_NOTNULL(reqs, BUDDY_REQS_MAGIC); CHECK_OBJ_NOTNULL(reqs, BUDDY_REQS_MAGIC);
if (buddy_reqs_next_ready(reqs)) if (buddy_reqs_next_ready(reqs))
return (reqs); return (reqs);
...@@ -2342,13 +2342,13 @@ logbuffer_get_dskreqs(struct fellow_logbuffer *lbuf) ...@@ -2342,13 +2342,13 @@ logbuffer_get_dskreqs(struct fellow_logbuffer *lbuf)
} }
static void static void
logbuffer_prep_dskreqs(struct fellow_logbuffer *lbuf, unsigned urgent) logbuffer_prep_dskpool(struct fellow_logbuffer *lbuf, unsigned urgent)
{ {
struct lbuf_dskrsv_s (*dskreqs)[2]; struct lbuf_dskpool_s (*dskpool)[2];
struct buddy_ptr_extent alloc; struct buddy_ptr_extent alloc;
unsigned i; unsigned i;
if (lbuf->dskreqs != NULL) if (lbuf->dskpool != NULL)
return; return;
assert(logbuffer_can(lbuf, LBUF_CAN_FLUSH)); assert(logbuffer_can(lbuf, LBUF_CAN_FLUSH));
...@@ -2362,35 +2362,35 @@ logbuffer_prep_dskreqs(struct fellow_logbuffer *lbuf, unsigned urgent) ...@@ -2362,35 +2362,35 @@ logbuffer_prep_dskreqs(struct fellow_logbuffer *lbuf, unsigned urgent)
* *
* XXX is 25% a good measure? * XXX is 25% a good measure?
*/ */
if (lbuf->dskreqs_mem.reqs.magic == 0 && if (lbuf->dskpool_mem.reqs.magic == 0 &&
(lbuf->logreg == NULL || (lbuf->logreg == NULL ||
lbuf->logreg->free_n * 4 < lbuf->logreg->space || lbuf->logreg->free_n * 4 < lbuf->logreg->space ||
lbuf->logreg->free_n < lbuf->n * 4)) { lbuf->logreg->free_n < lbuf->n * 4)) {
BUDDY_REQS_INIT(&lbuf->dskreqs_mem, lbuf->membuddy); BUDDY_REQS_INIT(&lbuf->dskpool_mem, lbuf->membuddy);
BUDDY_REQS_PRI(&lbuf->dskreqs_mem.reqs, FEP_MEM_LOG); BUDDY_REQS_PRI(&lbuf->dskpool_mem.reqs, FEP_MEM_LOG);
AN(buddy_req_extent(&lbuf->dskreqs_mem.reqs, AN(buddy_req_extent(&lbuf->dskpool_mem.reqs,
sizeof *lbuf->dskreqs, 0)); sizeof *lbuf->dskpool, 0));
(void) buddy_alloc_async(&lbuf->dskreqs_mem.reqs); (void) buddy_alloc_async(&lbuf->dskpool_mem.reqs);
} }
if (lbuf->dskreqs_mem.reqs.magic == BUDDY_REQS_MAGIC && if (lbuf->dskpool_mem.reqs.magic == BUDDY_REQS_MAGIC &&
urgent > 0) urgent > 0)
(void) buddy_alloc_async_wait(&lbuf->dskreqs_mem.reqs); (void) buddy_alloc_async_wait(&lbuf->dskpool_mem.reqs);
if (lbuf->dskreqs_mem.reqs.magic == BUDDY_REQS_MAGIC && if (lbuf->dskpool_mem.reqs.magic == BUDDY_REQS_MAGIC &&
buddy_alloc_async_ready(&lbuf->dskreqs_mem.reqs)) { buddy_alloc_async_ready(&lbuf->dskpool_mem.reqs)) {
alloc = buddy_get_ptr_extent(&lbuf->dskreqs_mem.reqs, 0); alloc = buddy_get_ptr_extent(&lbuf->dskpool_mem.reqs, 0);
buddy_alloc_wait_done(&lbuf->dskreqs_mem.reqs); buddy_alloc_wait_done(&lbuf->dskpool_mem.reqs);
lbuf->dskreqs_mem.reqs.magic = 0; lbuf->dskpool_mem.reqs.magic = 0;
AN(alloc.ptr); AN(alloc.ptr);
assert(alloc.size >= sizeof *lbuf->dskreqs); assert(alloc.size >= sizeof *lbuf->dskpool);
dskreqs = alloc.ptr; dskpool = alloc.ptr;
for (i = 0; i < 2; i++) { for (i = 0; i < 2; i++) {
BUDDY_REQS_INIT(&(*dskreqs)[i], lbuf->dskbuddy); BUDDY_REQS_INIT(&(*dskpool)[i], lbuf->dskbuddy);
logbuffer_fill_dskreq(lbuf, &(*dskreqs)[i].reqs); logbuffer_fill_dskreq(lbuf, &(*dskpool)[i].reqs);
} }
lbuf->dskreqs = dskreqs; lbuf->dskpool = dskpool;
} }
} }
...@@ -2423,16 +2423,16 @@ logbuffer_alloc_some(struct fellow_logbuffer *lbuf, ...@@ -2423,16 +2423,16 @@ logbuffer_alloc_some(struct fellow_logbuffer *lbuf,
n--; n--;
} }
logbuffer_prep_dskreqs(lbuf, n); logbuffer_prep_dskpool(lbuf, n);
if (n == 0) if (n == 0)
return; return;
AN(lbuf->dskreqs); AN(lbuf->dskpool);
while (n > 0) { while (n > 0) {
log_blocks_alloc_from_reqs( log_blocks_alloc_from_reqs(
logbuffer_get_dskreqs(lbuf), logbuffer_get_dskpool(lbuf),
&arr, &n); &arr, &n);
} }
...@@ -3187,11 +3187,11 @@ logbuffer_availblks(const struct fellow_logbuffer *lbuf) ...@@ -3187,11 +3187,11 @@ logbuffer_availblks(const struct fellow_logbuffer *lbuf)
if (lbuf->logreg != NULL) if (lbuf->logreg != NULL)
avail += lbuf->logreg->free_n; avail += lbuf->logreg->free_n;
if (lbuf->dskreqs != NULL) { if (lbuf->dskpool != NULL) {
avail += buddy_reqs_next_ready( avail += buddy_reqs_next_ready(
&(*lbuf->dskreqs)[0].reqs); &(*lbuf->dskpool)[0].reqs);
avail += buddy_reqs_next_ready( avail += buddy_reqs_next_ready(
&(*lbuf->dskreqs)[1].reqs); &(*lbuf->dskpool)[1].reqs);
} }
return (avail); return (avail);
} }
...@@ -3292,7 +3292,7 @@ logbuffer_addblks(struct fellow_fd *ffd, ...@@ -3292,7 +3292,7 @@ logbuffer_addblks(struct fellow_fd *ffd,
AZ(lbuf->active.block); AZ(lbuf->active.block);
} }
if(logbuffer_can(lbuf, LBUF_CAN_FLUSH)) if(logbuffer_can(lbuf, LBUF_CAN_FLUSH))
logbuffer_prep_dskreqs(lbuf, 0); logbuffer_prep_dskpool(lbuf, 0);
} }
enum getblk_e { enum getblk_e {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment