ocf_cache alignment
Grouping static fields together, while often changing ones get their own cacheline, or some not used often/important fields. Signed-off-by: Kozlowski Mateusz <mateusz.kozlowski@intel.com>
This commit is contained in:
parent
33f29e43bc
commit
fd2fd335a0
@ -81,12 +81,14 @@ struct ocf_cache {
|
|||||||
struct ocf_lst lst_part;
|
struct ocf_lst lst_part;
|
||||||
struct ocf_user_part user_parts[OCF_IO_CLASS_MAX + 1];
|
struct ocf_user_part user_parts[OCF_IO_CLASS_MAX + 1];
|
||||||
|
|
||||||
struct ocf_metadata metadata;
|
|
||||||
|
|
||||||
ocf_freelist_t freelist;
|
ocf_freelist_t freelist;
|
||||||
|
|
||||||
ocf_eviction_t eviction_policy_init;
|
ocf_eviction_t eviction_policy_init;
|
||||||
|
|
||||||
|
uint32_t fallback_pt_error_threshold;
|
||||||
|
|
||||||
|
struct ocf_metadata metadata;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
/* cache get/put counter */
|
/* cache get/put counter */
|
||||||
struct ocf_refcnt cache;
|
struct ocf_refcnt cache;
|
||||||
@ -97,7 +99,10 @@ struct ocf_cache {
|
|||||||
struct ocf_refcnt metadata;
|
struct ocf_refcnt metadata;
|
||||||
} refcnt;
|
} refcnt;
|
||||||
|
|
||||||
uint32_t fallback_pt_error_threshold;
|
ocf_pipeline_t stop_pipeline;
|
||||||
|
|
||||||
|
struct ocf_core core[OCF_CORE_MAX];
|
||||||
|
|
||||||
env_atomic fallback_pt_error_counter;
|
env_atomic fallback_pt_error_counter;
|
||||||
|
|
||||||
env_atomic pending_read_misses_list_blocked;
|
env_atomic pending_read_misses_list_blocked;
|
||||||
@ -107,25 +112,17 @@ struct ocf_cache {
|
|||||||
|
|
||||||
env_atomic pending_eviction_clines;
|
env_atomic pending_eviction_clines;
|
||||||
|
|
||||||
|
env_atomic flush_in_progress;
|
||||||
|
|
||||||
struct list_head io_queues;
|
struct list_head io_queues;
|
||||||
ocf_queue_t mngt_queue;
|
ocf_queue_t mngt_queue;
|
||||||
|
|
||||||
uint16_t ocf_core_inactive_count;
|
|
||||||
struct ocf_core core[OCF_CORE_MAX];
|
|
||||||
|
|
||||||
env_atomic flush_in_progress;
|
|
||||||
|
|
||||||
struct ocf_cleaner cleaner;
|
struct ocf_cleaner cleaner;
|
||||||
struct ocf_metadata_updater metadata_updater;
|
struct ocf_metadata_updater metadata_updater;
|
||||||
ocf_promotion_policy_t promotion_policy;
|
ocf_promotion_policy_t promotion_policy;
|
||||||
|
|
||||||
struct ocf_async_lock lock;
|
struct ocf_async_lock lock;
|
||||||
|
|
||||||
/*
|
|
||||||
* Most of the time this variable is set to 0, unless user requested
|
|
||||||
* interruption of flushing process.
|
|
||||||
*/
|
|
||||||
int flushing_interrupted;
|
|
||||||
env_mutex flush_mutex;
|
env_mutex flush_mutex;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
@ -133,15 +130,21 @@ struct ocf_cache {
|
|||||||
uint32_t queue_unblock_size;
|
uint32_t queue_unblock_size;
|
||||||
} backfill;
|
} backfill;
|
||||||
|
|
||||||
|
struct ocf_trace trace;
|
||||||
|
|
||||||
|
void *priv;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Most of the time this variable is set to 0, unless user requested
|
||||||
|
* interruption of flushing process.
|
||||||
|
*/
|
||||||
|
int flushing_interrupted;
|
||||||
|
|
||||||
|
uint16_t ocf_core_inactive_count;
|
||||||
|
|
||||||
bool pt_unaligned_io;
|
bool pt_unaligned_io;
|
||||||
|
|
||||||
bool use_submit_io_fast;
|
bool use_submit_io_fast;
|
||||||
|
|
||||||
struct ocf_trace trace;
|
|
||||||
|
|
||||||
ocf_pipeline_t stop_pipeline;
|
|
||||||
|
|
||||||
void *priv;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline ocf_core_t ocf_cache_get_core(ocf_cache_t cache,
|
static inline ocf_core_t ocf_cache_get_core(ocf_cache_t cache,
|
||||||
|
Loading…
Reference in New Issue
Block a user