mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-14 01:49:20 -04:00
soundwire: optimize sdw_stream_runtime memory layout
pahole suggestion: swap position of 'm_rt_count'
before: pahole -C sdw_stream_runtime drivers/soundwire/soundwire-bus.ko
struct sdw_stream_runtime {
const char * name; /* 0 8 */
struct sdw_stream_params params; /* 8 12 */
enum sdw_stream_state state; /* 20 4 */
enum sdw_stream_type type; /* 24 4 */
/* XXX 4 bytes hole, try to pack */
struct list_head master_list; /* 32 16 */
int m_rt_count; /* 48 4 */
/* size: 56, cachelines: 1, members: 6 */
/* sum members: 48, holes: 1, sum holes: 4 */
/* padding: 4 */
/* last cacheline: 56 bytes */
};
after: pahole --reorganize -C sdw_stream_runtime drivers/soundwire/soundwire-bus.ko
struct sdw_stream_runtime {
const char * name; /* 0 8 */
struct sdw_stream_params params; /* 8 12 */
enum sdw_stream_state state; /* 20 4 */
enum sdw_stream_type type; /* 24 4 */
int m_rt_count; /* 28 4 */
struct list_head master_list; /* 32 16 */
/* size: 48, cachelines: 1, members: 6 */
/* last cacheline: 48 bytes */
}; /* saved 8 bytes! */
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20241003070650.62787-3-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
committed by
Vinod Koul
parent
093227bc53
commit
444d6824a4
@@ -820,15 +820,15 @@ struct sdw_master_port_ops {
|
||||
struct sdw_msg;
|
||||
|
||||
/**
|
||||
* struct sdw_defer - SDW deffered message
|
||||
* @length: message length
|
||||
* struct sdw_defer - SDW deferred message
|
||||
* @complete: message completion
|
||||
* @msg: SDW message
|
||||
* @length: message length
|
||||
*/
|
||||
struct sdw_defer {
|
||||
struct sdw_msg *msg;
|
||||
int length;
|
||||
struct completion complete;
|
||||
struct sdw_msg *msg;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1010,18 +1010,18 @@ struct sdw_stream_params {
|
||||
* @params: Stream parameters
|
||||
* @state: Current state of the stream
|
||||
* @type: Stream type PCM or PDM
|
||||
* @m_rt_count: Count of Master runtime(s) in this stream
|
||||
* @master_list: List of Master runtime(s) in this stream.
|
||||
* master_list can contain only one m_rt per Master instance
|
||||
* for a stream
|
||||
* @m_rt_count: Count of Master runtime(s) in this stream
|
||||
*/
|
||||
struct sdw_stream_runtime {
|
||||
const char *name;
|
||||
struct sdw_stream_params params;
|
||||
enum sdw_stream_state state;
|
||||
enum sdw_stream_type type;
|
||||
struct list_head master_list;
|
||||
int m_rt_count;
|
||||
struct list_head master_list;
|
||||
};
|
||||
|
||||
struct sdw_stream_runtime *sdw_alloc_stream(const char *stream_name);
|
||||
|
||||
Reference in New Issue
Block a user