Tidy instruction buffer size usage in preparation for copying the
instruction bytes onto samples.

The instruction buffer is presently used for debugging, so rename its size
macro from INTEL_PT_INSN_DBG_BUF_SZ to INTEL_PT_INSN_BUF_SZ, and use it
everywhere.

Note that the maximum instruction size is 15 which is a less efficient size
to copy than 16, which is why a separate buffer size is used.

Signed-off-by: Adrian Hunter <adrian.hun...@intel.com>
---
 tools/perf/util/intel-bts.c                              |  8 +++-----
 tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c | 13 ++++++-------
 tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.h |  6 ++----
 tools/perf/util/intel-pt-decoder/intel-pt-log.c          |  4 ++--
 tools/perf/util/intel-pt.c                               |  8 +++-----
 5 files changed, 16 insertions(+), 23 deletions(-)

diff --git a/tools/perf/util/intel-bts.c b/tools/perf/util/intel-bts.c
index f545ec1e758a..8bc7fec817d7 100644
--- a/tools/perf/util/intel-bts.c
+++ b/tools/perf/util/intel-bts.c
@@ -319,15 +319,12 @@ static int intel_bts_get_next_insn(struct intel_bts_queue 
*btsq, u64 ip)
        struct machine *machine = btsq->bts->machine;
        struct thread *thread;
        struct addr_location al;
-       unsigned char buf[1024];
-       size_t bufsz;
+       unsigned char buf[INTEL_PT_INSN_BUF_SZ];
        ssize_t len;
        int x86_64;
        uint8_t cpumode;
        int err = -1;
 
-       bufsz = intel_pt_insn_max_size();
-
        if (machine__kernel_ip(machine, ip))
                cpumode = PERF_RECORD_MISC_KERNEL;
        else
@@ -341,7 +338,8 @@ static int intel_bts_get_next_insn(struct intel_bts_queue 
*btsq, u64 ip)
        if (!al.map || !al.map->dso)
                goto out_put;
 
-       len = dso__data_read_addr(al.map->dso, al.map, machine, ip, buf, bufsz);
+       len = dso__data_read_addr(al.map->dso, al.map, machine, ip, buf,
+                                 INTEL_PT_INSN_BUF_SZ);
        if (len <= 0)
                goto out_put;
 
diff --git a/tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c 
b/tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
index d23138c06665..5f95cd442075 100644
--- a/tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
+++ b/tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
@@ -27,6 +27,10 @@
 
 #include "intel-pt-insn-decoder.h"
 
+#if INTEL_PT_INSN_BUF_SZ < MAX_INSN_SIZE
+#error Instruction buffer size too small
+#endif
+
 /* Based on branch_type() from perf_event_intel_lbr.c */
 static void intel_pt_insn_decoder(struct insn *insn,
                                  struct intel_pt_insn *intel_pt_insn)
@@ -166,10 +170,10 @@ int intel_pt_get_insn(const unsigned char *buf, size_t 
len, int x86_64,
        if (!insn_complete(&insn) || insn.length > len)
                return -1;
        intel_pt_insn_decoder(&insn, intel_pt_insn);
-       if (insn.length < INTEL_PT_INSN_DBG_BUF_SZ)
+       if (insn.length < INTEL_PT_INSN_BUF_SZ)
                memcpy(intel_pt_insn->buf, buf, insn.length);
        else
-               memcpy(intel_pt_insn->buf, buf, INTEL_PT_INSN_DBG_BUF_SZ);
+               memcpy(intel_pt_insn->buf, buf, INTEL_PT_INSN_BUF_SZ);
        return 0;
 }
 
@@ -211,11 +215,6 @@ int intel_pt_insn_desc(const struct intel_pt_insn 
*intel_pt_insn, char *buf,
        return 0;
 }
 
-size_t intel_pt_insn_max_size(void)
-{
-       return MAX_INSN_SIZE;
-}
-
 int intel_pt_insn_type(enum intel_pt_insn_op op)
 {
        switch (op) {
diff --git a/tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.h 
b/tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.h
index b0adbf37323e..37ec5627ae9b 100644
--- a/tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.h
+++ b/tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.h
@@ -20,7 +20,7 @@
 #include <stdint.h>
 
 #define INTEL_PT_INSN_DESC_MAX         32
-#define INTEL_PT_INSN_DBG_BUF_SZ       16
+#define INTEL_PT_INSN_BUF_SZ           16
 
 enum intel_pt_insn_op {
        INTEL_PT_OP_OTHER,
@@ -47,7 +47,7 @@ struct intel_pt_insn {
        enum intel_pt_insn_branch       branch;
        int                             length;
        int32_t                         rel;
-       unsigned char                   buf[INTEL_PT_INSN_DBG_BUF_SZ];
+       unsigned char                   buf[INTEL_PT_INSN_BUF_SZ];
 };
 
 int intel_pt_get_insn(const unsigned char *buf, size_t len, int x86_64,
@@ -58,8 +58,6 @@ const char *intel_pt_insn_name(enum intel_pt_insn_op op);
 int intel_pt_insn_desc(const struct intel_pt_insn *intel_pt_insn, char *buf,
                       size_t buf_len);
 
-size_t intel_pt_insn_max_size(void);
-
 int intel_pt_insn_type(enum intel_pt_insn_op op);
 
 #endif
diff --git a/tools/perf/util/intel-pt-decoder/intel-pt-log.c 
b/tools/perf/util/intel-pt-decoder/intel-pt-log.c
index 319bef33a64b..e02bc7b166a0 100644
--- a/tools/perf/util/intel-pt-decoder/intel-pt-log.c
+++ b/tools/perf/util/intel-pt-decoder/intel-pt-log.c
@@ -119,8 +119,8 @@ void __intel_pt_log_insn(struct intel_pt_insn 
*intel_pt_insn, uint64_t ip)
        if (intel_pt_log_open())
                return;
 
-       if (len > INTEL_PT_INSN_DBG_BUF_SZ)
-               len = INTEL_PT_INSN_DBG_BUF_SZ;
+       if (len > INTEL_PT_INSN_BUF_SZ)
+               len = INTEL_PT_INSN_BUF_SZ;
        intel_pt_print_data(intel_pt_insn->buf, len, ip, 8);
        if (intel_pt_insn_desc(intel_pt_insn, desc, INTEL_PT_INSN_DESC_MAX) > 0)
                fprintf(f, "%s\n", desc);
diff --git a/tools/perf/util/intel-pt.c b/tools/perf/util/intel-pt.c
index dc041d4368c8..815a14d8904b 100644
--- a/tools/perf/util/intel-pt.c
+++ b/tools/perf/util/intel-pt.c
@@ -428,8 +428,7 @@ static int intel_pt_walk_next_insn(struct intel_pt_insn 
*intel_pt_insn,
        struct machine *machine = ptq->pt->machine;
        struct thread *thread;
        struct addr_location al;
-       unsigned char buf[1024];
-       size_t bufsz;
+       unsigned char buf[INTEL_PT_INSN_BUF_SZ];
        ssize_t len;
        int x86_64;
        u8 cpumode;
@@ -440,8 +439,6 @@ static int intel_pt_walk_next_insn(struct intel_pt_insn 
*intel_pt_insn,
        if (to_ip && *ip == to_ip)
                goto out_no_cache;
 
-       bufsz = intel_pt_insn_max_size();
-
        if (*ip >= ptq->pt->kernel_start)
                cpumode = PERF_RECORD_MISC_KERNEL;
        else
@@ -493,7 +490,8 @@ static int intel_pt_walk_next_insn(struct intel_pt_insn 
*intel_pt_insn,
 
                while (1) {
                        len = dso__data_read_offset(al.map->dso, machine,
-                                                   offset, buf, bufsz);
+                                                   offset, buf,
+                                                   INTEL_PT_INSN_BUF_SZ);
                        if (len <= 0)
                                return -EINVAL;
 
-- 
1.9.1

Reply via email to