* [tip: perf/core] perf map: Use bitmap for booleans
[not found] <tip-g5545pcq4ff0wr17tfb1piqt@git.kernel.org>
@ 2019-11-19 16:56 ` tip-bot2 for Arnaldo Carvalho de Melo
0 siblings, 0 replies; only message in thread
From: tip-bot2 for Arnaldo Carvalho de Melo @ 2019-11-19 16:56 UTC (permalink / raw)
To: linux-tip-commits
Cc: Adrian Hunter, Andi Kleen, Jiri Olsa, Namhyung Kim,
Arnaldo Carvalho de Melo, Ingo Molnar, Borislav Petkov,
linux-kernel
The following commit has been merged into the perf/core branch of tip:
Commit-ID: dbc984c961667b1ce48a0337b5bcd3b8c9cb2098
Gitweb: https://git.kernel.org/tip/dbc984c961667b1ce48a0337b5bcd3b8c9cb2098
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
AuthorDate: Mon, 18 Nov 2019 16:26:29 -03:00
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitterDate: Mon, 18 Nov 2019 16:29:01 -03:00
perf map: Use bitmap for booleans
The map->priv and map->erange_warned are seldom used, the first only in
tests/vmlinux-kallsyms.c, the later only when hist_entry__inc_addr_samples()
returns -ERANGE in 'perf top', which are really rare occasions, so make
them a bool bitfield.
This will open up space for other members on the first cacheline.
$ pahole -C map ~/bin/perf
struct map {
union {
struct rb_node rb_node __attribute__((__aligned__(8))); /* 0 24 */
struct list_head node; /* 0 16 */
} __attribute__((__aligned__(8))); /* 0 24 */
u64 start; /* 24 8 */
u64 end; /* 32 8 */
_Bool erange_warned:1; /* 40: 0 1 */
_Bool priv:1; /* 40: 1 1 */
/* XXX 6 bits hole, try to pack */
/* XXX 3 bytes hole, try to pack */
u32 prot; /* 44 4 */
u32 flags; /* 48 4 */
/* XXX 4 bytes hole, try to pack */
u64 pgoff; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
u64 reloc; /* 64 8 */
u32 maj; /* 72 4 */
u32 min; /* 76 4 */
u64 ino; /* 80 8 */
u64 ino_generation; /* 88 8 */
u64 (*map_ip)(struct map *, u64); /* 96 8 */
u64 (*unmap_ip)(struct map *, u64); /* 104 8 */
struct dso * dso; /* 112 8 */
refcount_t refcnt; /* 120 4 */
/* size: 128, cachelines: 2, members: 17 */
/* sum members: 116, holes: 2, sum holes: 7 */
/* sum bitfield members: 2 bits, bit holes: 1, sum bit holes: 6 bits */
/* padding: 4 */
/* forced alignments: 1 */
} __attribute__((__aligned__(8)));
$
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lkml.kernel.org/n/tip-g5545pcq4ff0wr17tfb1piqt@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/map.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/perf/util/map.h b/tools/perf/util/map.h
index a31e809..e2466aa 100644
--- a/tools/perf/util/map.h
+++ b/tools/perf/util/map.h
@@ -25,8 +25,8 @@ struct map {
};
u64 start;
u64 end;
- bool erange_warned;
- u32 priv;
+ bool erange_warned:1;
+ bool priv:1;
u32 prot;
u32 flags;
u64 pgoff;
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2019-11-19 16:57 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <tip-g5545pcq4ff0wr17tfb1piqt@git.kernel.org>
2019-11-19 16:56 ` [tip: perf/core] perf map: Use bitmap for booleans tip-bot2 for Arnaldo Carvalho de Melo
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.