forked from Minki/linux
RDMA/rxe: Make rxe_type_info static const
Make struct rxe_type_info static const and local to the only uses. Moves a bit of data to text. $ size drivers/infiniband/sw/rxe/rxe_pool.o* (defconfig w/ infiniband swe) text data bss dec hex filename 4456 12 0 4468 1174 drivers/infiniband/sw/rxe/rxe_pool.o.new 3817 652 0 4469 1175 drivers/infiniband/sw/rxe/rxe_pool.o.old Link: https://lore.kernel.org/r/166b715d71f98336e8ecab72b0dbdd266eee9193.camel@perches.com Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
parent
e30bb300a4
commit
000b8490ec
@ -7,9 +7,17 @@
|
||||
#include "rxe.h"
|
||||
#include "rxe_loc.h"
|
||||
|
||||
/* info about object pools
|
||||
*/
|
||||
struct rxe_type_info rxe_type_info[RXE_NUM_TYPES] = {
|
||||
static const struct rxe_type_info {
|
||||
const char *name;
|
||||
size_t size;
|
||||
size_t elem_offset;
|
||||
void (*cleanup)(struct rxe_pool_entry *obj);
|
||||
enum rxe_pool_flags flags;
|
||||
u32 min_index;
|
||||
u32 max_index;
|
||||
size_t key_offset;
|
||||
size_t key_size;
|
||||
} rxe_type_info[RXE_NUM_TYPES] = {
|
||||
[RXE_TYPE_UC] = {
|
||||
.name = "rxe-uc",
|
||||
.size = sizeof(struct rxe_ucontext),
|
||||
@ -60,8 +68,8 @@ struct rxe_type_info rxe_type_info[RXE_NUM_TYPES] = {
|
||||
.elem_offset = offsetof(struct rxe_mr, pelem),
|
||||
.cleanup = rxe_mr_cleanup,
|
||||
.flags = RXE_POOL_INDEX,
|
||||
.max_index = RXE_MAX_MR_INDEX,
|
||||
.min_index = RXE_MIN_MR_INDEX,
|
||||
.max_index = RXE_MAX_MR_INDEX,
|
||||
},
|
||||
[RXE_TYPE_MW] = {
|
||||
.name = "rxe-mw",
|
||||
@ -69,8 +77,8 @@ struct rxe_type_info rxe_type_info[RXE_NUM_TYPES] = {
|
||||
.elem_offset = offsetof(struct rxe_mw, pelem),
|
||||
.cleanup = rxe_mw_cleanup,
|
||||
.flags = RXE_POOL_INDEX | RXE_POOL_NO_ALLOC,
|
||||
.max_index = RXE_MAX_MW_INDEX,
|
||||
.min_index = RXE_MIN_MW_INDEX,
|
||||
.max_index = RXE_MAX_MW_INDEX,
|
||||
},
|
||||
[RXE_TYPE_MC_GRP] = {
|
||||
.name = "rxe-mc_grp",
|
||||
@ -324,7 +332,7 @@ void __rxe_drop_index(struct rxe_pool_entry *elem)
|
||||
|
||||
void *rxe_alloc_locked(struct rxe_pool *pool)
|
||||
{
|
||||
struct rxe_type_info *info = &rxe_type_info[pool->type];
|
||||
const struct rxe_type_info *info = &rxe_type_info[pool->type];
|
||||
struct rxe_pool_entry *elem;
|
||||
u8 *obj;
|
||||
|
||||
@ -349,7 +357,7 @@ out_cnt:
|
||||
|
||||
void *rxe_alloc(struct rxe_pool *pool)
|
||||
{
|
||||
struct rxe_type_info *info = &rxe_type_info[pool->type];
|
||||
const struct rxe_type_info *info = &rxe_type_info[pool->type];
|
||||
struct rxe_pool_entry *elem;
|
||||
u8 *obj;
|
||||
|
||||
@ -392,7 +400,7 @@ void rxe_elem_release(struct kref *kref)
|
||||
struct rxe_pool_entry *elem =
|
||||
container_of(kref, struct rxe_pool_entry, ref_cnt);
|
||||
struct rxe_pool *pool = elem->pool;
|
||||
struct rxe_type_info *info = &rxe_type_info[pool->type];
|
||||
const struct rxe_type_info *info = &rxe_type_info[pool->type];
|
||||
u8 *obj;
|
||||
|
||||
if (pool->cleanup)
|
||||
@ -408,7 +416,7 @@ void rxe_elem_release(struct kref *kref)
|
||||
|
||||
void *rxe_pool_get_index_locked(struct rxe_pool *pool, u32 index)
|
||||
{
|
||||
struct rxe_type_info *info = &rxe_type_info[pool->type];
|
||||
const struct rxe_type_info *info = &rxe_type_info[pool->type];
|
||||
struct rb_node *node;
|
||||
struct rxe_pool_entry *elem;
|
||||
u8 *obj;
|
||||
@ -450,7 +458,7 @@ void *rxe_pool_get_index(struct rxe_pool *pool, u32 index)
|
||||
|
||||
void *rxe_pool_get_key_locked(struct rxe_pool *pool, void *key)
|
||||
{
|
||||
struct rxe_type_info *info = &rxe_type_info[pool->type];
|
||||
const struct rxe_type_info *info = &rxe_type_info[pool->type];
|
||||
struct rb_node *node;
|
||||
struct rxe_pool_entry *elem;
|
||||
u8 *obj;
|
||||
|
@ -32,20 +32,6 @@ enum rxe_elem_type {
|
||||
|
||||
struct rxe_pool_entry;
|
||||
|
||||
struct rxe_type_info {
|
||||
const char *name;
|
||||
size_t size;
|
||||
size_t elem_offset;
|
||||
void (*cleanup)(struct rxe_pool_entry *obj);
|
||||
enum rxe_pool_flags flags;
|
||||
u32 max_index;
|
||||
u32 min_index;
|
||||
size_t key_offset;
|
||||
size_t key_size;
|
||||
};
|
||||
|
||||
extern struct rxe_type_info rxe_type_info[];
|
||||
|
||||
struct rxe_pool_entry {
|
||||
struct rxe_pool *pool;
|
||||
struct kref ref_cnt;
|
||||
|
Loading…
Reference in New Issue
Block a user