]> git.karo-electronics.de Git - linux-beck.git/commitdiff
perf jit: Remove unecessary padding in jitdump file
authorStephane Eranian <eranian@google.com>
Thu, 13 Oct 2016 10:59:37 +0000 (03:59 -0700)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 24 Oct 2016 14:07:38 +0000 (11:07 -0300)
This patch removes all the string padding generated in the jitdump file.
They are not necessary and were adding unnecessary complexity. Modern
processors can handle unaligned accesses quite well. The perf.data/
jitdump file are always post-processed, no need to add extra complexity
for no real gain.

Signed-off-by: Stephane Eranian <eranian@google.com>
Cc: Anton Blanchard <anton@ozlabs.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1476356383-30100-4-git-send-email-eranian@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/jvmti/jvmti_agent.c

index 55daefff0d54daae31f6b1134a6a499792a310d7..e9651a9d670e90a2b46f5083aaa02e981494baff 100644 (file)
 static char jit_path[PATH_MAX];
 static void *marker_addr;
 
-/*
- * padding buffer
- */
-static const char pad_bytes[7];
-
 static inline pid_t gettid(void)
 {
        return (pid_t)syscall(__NR_gettid);
@@ -230,7 +225,6 @@ init_arch_timestamp(void)
 
 void *jvmti_open(void)
 {
-       int pad_cnt;
        char dump_path[PATH_MAX];
        struct jitheader header;
        int fd;
@@ -288,10 +282,6 @@ void *jvmti_open(void)
        header.total_size = sizeof(header);
        header.pid        = getpid();
 
-       /* calculate amount of padding '\0' */
-       pad_cnt = PADDING_8ALIGNED(header.total_size);
-       header.total_size += pad_cnt;
-
        header.timestamp = perf_get_timestamp();
 
        if (use_arch_timestamp)
@@ -301,13 +291,6 @@ void *jvmti_open(void)
                warn("jvmti: cannot write dumpfile header");
                goto error;
        }
-
-       /* write padding '\0' if necessary */
-       if (pad_cnt && !fwrite(pad_bytes, pad_cnt, 1, fp)) {
-               warn("jvmti: cannot write dumpfile header padding");
-               goto error;
-       }
-
        return fp;
 error:
        fclose(fp);
@@ -349,7 +332,6 @@ jvmti_write_code(void *agent, char const *sym,
        static int code_generation = 1;
        struct jr_code_load rec;
        size_t sym_len;
-       size_t padding_count;
        FILE *fp = agent;
        int ret = -1;
 
@@ -366,8 +348,6 @@ jvmti_write_code(void *agent, char const *sym,
 
        rec.p.id           = JIT_CODE_LOAD;
        rec.p.total_size   = sizeof(rec) + sym_len;
-       padding_count      = PADDING_8ALIGNED(rec.p.total_size);
-       rec.p. total_size += padding_count;
        rec.p.timestamp    = perf_get_timestamp();
 
        rec.code_size  = size;
@@ -393,9 +373,6 @@ jvmti_write_code(void *agent, char const *sym,
        ret = fwrite_unlocked(&rec, sizeof(rec), 1, fp);
        fwrite_unlocked(sym, sym_len, 1, fp);
 
-       if (padding_count)
-               fwrite_unlocked(pad_bytes, padding_count, 1, fp);
-
        if (code)
                fwrite_unlocked(code, size, 1, fp);
 
@@ -412,7 +389,6 @@ jvmti_write_debug_info(void *agent, uint64_t code, const char *file,
 {
        struct jr_code_debug_info rec;
        size_t sret, len, size, flen;
-       size_t padding_count;
        uint64_t addr;
        const char *fn = file;
        FILE *fp = agent;
@@ -443,16 +419,10 @@ jvmti_write_debug_info(void *agent, uint64_t code, const char *file,
         * int      : line number
         * int      : column discriminator
         * file[]   : source file name
-        * padding  : pad to multiple of 8 bytes
         */
        size += nr_lines * sizeof(struct debug_entry);
        size += flen * nr_lines;
-       /*
-        * pad to 8 bytes
-        */
-       padding_count = PADDING_8ALIGNED(size);
-
-       rec.p.total_size = size + padding_count;
+       rec.p.total_size = size;
 
        /*
         * If JVM is multi-threaded, nultiple concurrent calls to agent
@@ -486,12 +456,6 @@ jvmti_write_debug_info(void *agent, uint64_t code, const char *file,
                if (sret != 1)
                        goto error;
        }
-       if (padding_count) {
-               sret = fwrite_unlocked(pad_bytes, padding_count, 1, fp);
-               if (sret != 1)
-                       goto error;
-       }
-
        funlockfile(fp);
        return 0;
 error: