mirror of
https://github.com/schoebel/mars
synced 2025-05-08 19:18:22 +00:00
generic: round up object allocations to possible cache lines
This commit is contained in:
parent
b05dddc640
commit
b4778909a2
@ -367,7 +367,7 @@ struct generic_object *generic_alloc(struct generic_brick *brick, struct generic
|
|||||||
void *data;
|
void *data;
|
||||||
int object_size;
|
int object_size;
|
||||||
int aspect_nr_max;
|
int aspect_nr_max;
|
||||||
int total_size;
|
unsigned total_size;
|
||||||
int hint_size;
|
int hint_size;
|
||||||
|
|
||||||
CHECK_PTR_NULL(object_type, err);
|
CHECK_PTR_NULL(object_type, err);
|
||||||
@ -382,6 +382,7 @@ struct generic_object *generic_alloc(struct generic_brick *brick, struct generic
|
|||||||
} else { // usually happens only at the first time
|
} else { // usually happens only at the first time
|
||||||
object_layout->size_hint = total_size;
|
object_layout->size_hint = total_size;
|
||||||
}
|
}
|
||||||
|
total_size = BRICK_ALIGN(total_size);
|
||||||
|
|
||||||
data = brick_zmem_alloc(total_size);
|
data = brick_zmem_alloc(total_size);
|
||||||
if (!data)
|
if (!data)
|
||||||
|
@ -48,6 +48,15 @@
|
|||||||
|
|
||||||
#define MAX_BRICK_TYPES 64
|
#define MAX_BRICK_TYPES 64
|
||||||
|
|
||||||
|
#define BRICK_ALIGN(object_size) \
|
||||||
|
((object_size) < 32 * 2 ? \
|
||||||
|
(DIV_ROUND_UP((object_size), 32) * 32) : \
|
||||||
|
((object_size) < 128 * 2 ? \
|
||||||
|
(DIV_ROUND_UP((object_size), 128) * 128) : \
|
||||||
|
((object_size) < 512 * 2 ? \
|
||||||
|
(DIV_ROUND_UP((object_size), 512) * 512) : \
|
||||||
|
(DIV_ROUND_UP((object_size), 4096) * 4096))))
|
||||||
|
|
||||||
#define SAFE_STR(str) ((str) ? (str) : "NULL")
|
#define SAFE_STR(str) ((str) ? (str) : "NULL")
|
||||||
|
|
||||||
#define brick_msleep(msecs) _brick_msleep(msecs, false)
|
#define brick_msleep(msecs) _brick_msleep(msecs, false)
|
||||||
|
Loading…
Reference in New Issue
Block a user