1

ASoC: SOF: sof-priv.h: optimize snd_sof_ipc_msg

Move waitq to make sure it's entirely in the same cache line, and move
ipc_complete to reduce padding.

struct snd_sof_ipc_msg {
	void *                     msg_data;             /*     0     8 */
	void *                     reply_data;           /*     8     8 */
	size_t                     msg_size;             /*    16     8 */
	size_t                     reply_size;           /*    24     8 */
	int                        reply_error;          /*    32     4 */
	bool                       ipc_complete;         /*    36     1 */

	/* XXX 3 bytes hole, try to pack */

	wait_queue_head_t          waitq;                /*    40    88 */
	/* --- cacheline 2 boundary (128 bytes) --- */
	void *                     rx_data;              /*   128     8 */

	/* size: 136, cachelines: 3, members: 8 */
	/* sum members: 133, holes: 1, sum holes: 3 */
	/* last cacheline: 8 bytes */
};

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://patch.msgid.link/20240802124609.188954-4-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Pierre-Louis Bossart 2024-08-02 14:46:08 +02:00 committed by Mark Brown
parent e9e7eeaf19
commit 5a4413d0fa
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0

View File

@ -425,11 +425,12 @@ struct snd_sof_ipc_msg {
size_t reply_size;
int reply_error;
/* notification, firmware initiated messages */
void *rx_data;
bool ipc_complete;
wait_queue_head_t waitq;
bool ipc_complete;
/* notification, firmware initiated messages */
void *rx_data;
};
/**