Introduce new priorities

parent 4a0a6ece
...@@ -50,7 +50,7 @@ VTAILQ_HEAD(buddy_reqs_head, buddy_reqs); ...@@ -50,7 +50,7 @@ VTAILQ_HEAD(buddy_reqs_head, buddy_reqs);
#define WHEN_VAR #define WHEN_VAR
#endif #endif
#define BUDDY_WAIT_MAXPRI 4 #define BUDDY_WAIT_MAXPRI 8
struct BUDDY { struct BUDDY {
unsigned magic; unsigned magic;
......
...@@ -1626,7 +1626,7 @@ fellow_cache_obj_new(const struct fellow_cache *fc, ...@@ -1626,7 +1626,7 @@ fellow_cache_obj_new(const struct fellow_cache *fc,
assert(u <= UINT8_MAX); assert(u <= UINT8_MAX);
bits = (uint8_t)u; bits = (uint8_t)u;
fco_mem = buddy_alloc1_ptr_page_wait(fc->membuddy, fco_mem = buddy_alloc1_ptr_page_wait(fc->membuddy,
FEP_NORMAL, bits, 0); FEP_GET, bits, 0);
if (FC_INJ || fco_mem.ptr == NULL) { if (FC_INJ || fco_mem.ptr == NULL) {
fcr = FCR_ALLOCFAIL("fco_mem alloc failed"); fcr = FCR_ALLOCFAIL("fco_mem alloc failed");
goto err; goto err;
...@@ -1636,7 +1636,7 @@ fellow_cache_obj_new(const struct fellow_cache *fc, ...@@ -1636,7 +1636,7 @@ fellow_cache_obj_new(const struct fellow_cache *fc,
} }
fdo_mem = buddy_alloc1_ptr_extent_wait(fc->membuddy, fdo_mem = buddy_alloc1_ptr_extent_wait(fc->membuddy,
FEP_NORMAL, asz, 0); FEP_GET, asz, 0);
if (FC_INJ || fdo_mem.ptr == NULL) { if (FC_INJ || fdo_mem.ptr == NULL) {
fcr = FCR_ALLOCFAIL("fdo_mem alloc failed"); fcr = FCR_ALLOCFAIL("fdo_mem alloc failed");
...@@ -1705,7 +1705,7 @@ fellow_busy_obj_alloc(struct fellow_cache *fc, ...@@ -1705,7 +1705,7 @@ fellow_busy_obj_alloc(struct fellow_cache *fc,
size_t sz, asz, dsk_sz; size_t sz, asz, dsk_sz;
uint16_t ldsegs; uint16_t ldsegs;
fbo_mem = buddy_alloc1_ptr_extent_wait(fc->membuddy, FEP_NORMAL, fbo_mem = buddy_alloc1_ptr_extent_wait(fc->membuddy, FEP_GET,
sizeof *fbo, 0); sizeof *fbo, 0);
fbo = fbo_mem.ptr; fbo = fbo_mem.ptr;
if (fbo == NULL) { if (fbo == NULL) {
...@@ -1742,7 +1742,7 @@ fellow_busy_obj_alloc(struct fellow_cache *fc, ...@@ -1742,7 +1742,7 @@ fellow_busy_obj_alloc(struct fellow_cache *fc,
// XXX delay to allow new objects during FP_INIT ? // XXX delay to allow new objects during FP_INIT ?
fds_seg = FC_INJ ? buddy_off_extent_nil : fds_seg = FC_INJ ? buddy_off_extent_nil :
fellow_region_alloc(fc->ffd, FEP_NORMAL, dsk_sz, 0); fellow_region_alloc(fc->ffd, FEP_GET, dsk_sz, 0);
if (fds_seg.off < 0) { if (fds_seg.off < 0) {
fcr = FCR_ALLOCFAIL("fds region"); fcr = FCR_ALLOCFAIL("fds region");
fellow_cache_res_check(fc, fcr); fellow_cache_res_check(fc, fcr);
...@@ -1850,7 +1850,7 @@ fellow_busy_region_alloc(struct fellow_busy *fbo, size_t size, int8_t cram) ...@@ -1850,7 +1850,7 @@ fellow_busy_region_alloc(struct fellow_busy *fbo, size_t size, int8_t cram)
fdr = &fbo->region[fbo->nregion]; fdr = &fbo->region[fbo->nregion];
*fdr = FC_INJ ? buddy_off_extent_nil : *fdr = FC_INJ ? buddy_off_extent_nil :
fellow_region_alloc(fc->ffd, FEP_NORMAL, size, cram); fellow_region_alloc(fc->ffd, FEP_GET, size, cram);
if (fdr->off < 0) { if (fdr->off < 0) {
return (NULL); return (NULL);
...@@ -3076,7 +3076,7 @@ fellow_cache_seg_ref_in(struct fellow_cache *fc, enum fellow_cache_io_e type, ...@@ -3076,7 +3076,7 @@ fellow_cache_seg_ref_in(struct fellow_cache *fc, enum fellow_cache_io_e type,
assert(n <= BUDDY_REQS_MAX); assert(n <= BUDDY_REQS_MAX);
reqs = BUDDY_REQS_STK(fc->membuddy, BUDDY_REQS_MAX); reqs = BUDDY_REQS_STK(fc->membuddy, BUDDY_REQS_MAX);
BUDDY_REQS_PRI(reqs, FEP_NORMAL); BUDDY_REQS_PRI(reqs, FEP_GET);
rets = BUDDY_RETURNS_STK(fc->membuddy, BUDDY_RETURNS_MAX); rets = BUDDY_RETURNS_STK(fc->membuddy, BUDDY_RETURNS_MAX);
memset(iosegs, 0, sizeof iosegs); memset(iosegs, 0, sizeof iosegs);
...@@ -3447,7 +3447,7 @@ static size_t fellow_busy_seg_memalloc(buddy_t *membuddy, ...@@ -3447,7 +3447,7 @@ static size_t fellow_busy_seg_memalloc(buddy_t *membuddy,
AZ(fcs->alloc.ptr); AZ(fcs->alloc.ptr);
AZ(fcs->alloc.size); AZ(fcs->alloc.size);
fcs->alloc = buddy_alloc1_ptr_extent_wait(membuddy, FEP_NORMAL, fcs->alloc = buddy_alloc1_ptr_extent_wait(membuddy, FEP_GET,
fds->seg.size, 0); fds->seg.size, 0);
if (fcs->alloc.ptr == NULL) if (fcs->alloc.ptr == NULL)
......
...@@ -19,9 +19,12 @@ ...@@ -19,9 +19,12 @@
* 02110-1301 USA Also add information on how to contact you by * 02110-1301 USA Also add information on how to contact you by
* electronic and paper mail. * electronic and paper mail.
*/ */
// mem dsk
#define FEP_RESERVE 0 // reservation #define FEP_RESERVE 0 // reservation reservation
#define FEP_NORMAL 1 // object, body #define FEP_GET 1 // obj_get object, body
#define FEP_NEW 2 // busy_obj_alloc
#define FEP_SPC 3 // sfemem_getspace
#define FEP_ITER 4 // sfemem_iterator
#define FEP_META 2 // segments etc. #define FEP_META 2 // segments etc.
#define FEP_LOG 3 // log #define FEP_LOG 3 // log
#define FEP_FREE 4 // regionlist #define FEP_FREE 4 // regionlist
...@@ -2829,7 +2829,7 @@ sfe_allocbuf(struct worker *wrk, const struct stevedore *stv, size_t size, ...@@ -2829,7 +2829,7 @@ sfe_allocbuf(struct worker *wrk, const struct stevedore *stv, size_t size,
CAST_OBJ_NOTNULL(stvfe, stv->priv, STVFE_MAGIC); CAST_OBJ_NOTNULL(stvfe, stv->priv, STVFE_MAGIC);
AN(ppriv); AN(ppriv);
p = buddy_malloc_wait(stvfe->membuddy, size, FEP_NORMAL); p = buddy_malloc_wait(stvfe->membuddy, size, FEP_GET);
if (p == NULL) if (p == NULL)
return (NULL); return (NULL);
*ppriv = (uintptr_t)p; *ppriv = (uintptr_t)p;
......
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