Commit c554aa9c authored by Christophe JAILLET's avatar Christophe JAILLET Committed by Peter Zijlstra
Browse files

uprobes: Re-order struct uprobe_task to save some space



On x86_64, with allmodconfig, struct uprobe_task is 72 bytes long, with a
hole and some padding.

	/* size: 72, cachelines: 2, members: 7 */
	/* sum members: 64, holes: 1, sum holes: 4 */
	/* padding: 4 */
	/* forced alignments: 1, forced holes: 1, sum forced holes: 4 */
	/* last cacheline: 8 bytes */

Reorder the structure to fill the hole and avoid the padding.

This way, the whole structure fits in a single cacheline and some memory is
saved when it is allocated.

	/* size: 64, cachelines: 1, members: 7 */
	/* forced alignments: 1 */

Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: default avatar"Masami Hiramatsu (Google)" <mhiramat@kernel.org>
Link: https://lore.kernel.org/r/a9f541d0cedf421f765c77a1fb93d6a979778a88.1730495562.git.christophe.jaillet@wanadoo.fr
parent 2e71e8bc
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -121,6 +121,9 @@ struct hprobe {
struct uprobe_task {
	enum uprobe_task_state		state;

	unsigned int			depth;
	struct return_instance		*return_instances;

	union {
		struct {
			struct arch_uprobe_task	autask;
@@ -138,9 +141,6 @@ struct uprobe_task {
	unsigned long			xol_vaddr;

	struct arch_uprobe              *auprobe;

	struct return_instance		*return_instances;
	unsigned int			depth;
};

struct return_consumer {