Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit faaf9567 authored by Ingo Molnar's avatar Ingo Molnar
Browse files

Merge branch 'perf/urgent' into perf/core, to pick up fixes



Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parents 1d2a7de8 2e364635
Loading
Loading
Loading
Loading
+44 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef _ASM_S390_PERF_REGS_H
#define _ASM_S390_PERF_REGS_H

enum perf_event_s390_regs {
	PERF_REG_S390_R0,
	PERF_REG_S390_R1,
	PERF_REG_S390_R2,
	PERF_REG_S390_R3,
	PERF_REG_S390_R4,
	PERF_REG_S390_R5,
	PERF_REG_S390_R6,
	PERF_REG_S390_R7,
	PERF_REG_S390_R8,
	PERF_REG_S390_R9,
	PERF_REG_S390_R10,
	PERF_REG_S390_R11,
	PERF_REG_S390_R12,
	PERF_REG_S390_R13,
	PERF_REG_S390_R14,
	PERF_REG_S390_R15,
	PERF_REG_S390_FP0,
	PERF_REG_S390_FP1,
	PERF_REG_S390_FP2,
	PERF_REG_S390_FP3,
	PERF_REG_S390_FP4,
	PERF_REG_S390_FP5,
	PERF_REG_S390_FP6,
	PERF_REG_S390_FP7,
	PERF_REG_S390_FP8,
	PERF_REG_S390_FP9,
	PERF_REG_S390_FP10,
	PERF_REG_S390_FP11,
	PERF_REG_S390_FP12,
	PERF_REG_S390_FP13,
	PERF_REG_S390_FP14,
	PERF_REG_S390_FP15,
	PERF_REG_S390_MASK,
	PERF_REG_S390_PC,

	PERF_REG_S390_MAX
};

#endif /* _ASM_S390_PERF_REGS_H */
+1 −1
Original line number Diff line number Diff line
@@ -3,7 +3,7 @@

#include <stdlib.h>
#include <linux/types.h>
#include <../../../../arch/s390/include/uapi/asm/perf_regs.h>
#include <asm/perf_regs.h>

void perf_regs_load(u64 *regs);

+1 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ arch/x86/include/asm/cpufeatures.h
arch/arm/include/uapi/asm/perf_regs.h
arch/arm64/include/uapi/asm/perf_regs.h
arch/powerpc/include/uapi/asm/perf_regs.h
arch/s390/include/uapi/asm/perf_regs.h
arch/x86/include/uapi/asm/perf_regs.h
arch/x86/include/uapi/asm/kvm.h
arch/x86/include/uapi/asm/kvm_perf.h
+9 −7
Original line number Diff line number Diff line
@@ -384,13 +384,13 @@ jvmti_write_code(void *agent, char const *sym,
}

int
jvmti_write_debug_info(void *agent, uint64_t code, const char *file,
		       jvmti_line_info_t *li, int nr_lines)
jvmti_write_debug_info(void *agent, uint64_t code,
    int nr_lines, jvmti_line_info_t *li,
    const char * const * file_names)
{
	struct jr_code_debug_info rec;
	size_t sret, len, size, flen;
	size_t sret, len, size, flen = 0;
	uint64_t addr;
	const char *fn = file;
	FILE *fp = agent;
	int i;

@@ -405,7 +405,9 @@ jvmti_write_debug_info(void *agent, uint64_t code, const char *file,
		return -1;
	}

	flen = strlen(file) + 1;
	for (i = 0; i < nr_lines; ++i) {
	    flen += strlen(file_names[i]) + 1;
	}

	rec.p.id        = JIT_CODE_DEBUG_INFO;
	size            = sizeof(rec);
@@ -421,7 +423,7 @@ jvmti_write_debug_info(void *agent, uint64_t code, const char *file,
	 * file[]   : source file name
	 */
	size += nr_lines * sizeof(struct debug_entry);
	size += flen * nr_lines;
	size += flen;
	rec.p.total_size = size;

	/*
@@ -452,7 +454,7 @@ jvmti_write_debug_info(void *agent, uint64_t code, const char *file,
		if (sret != 1)
			goto error;

		sret = fwrite_unlocked(fn, flen, 1, fp);
		sret = fwrite_unlocked(file_names[i], strlen(file_names[i]) + 1, 1, fp);
		if (sret != 1)
			goto error;
	}
+3 −4
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@ typedef struct {
	unsigned long	pc;
	int		line_number;
	int		discrim; /* discriminator -- 0 for now */
	jmethodID	methodID;
} jvmti_line_info_t;

void *jvmti_open(void);
@@ -22,11 +23,9 @@ int jvmti_write_code(void *agent, char const *symbol_name,
		       uint64_t vma, void const *code,
		       const unsigned int code_size);

int   jvmti_write_debug_info(void *agent,
		             uint64_t code,
			     const char *file,
int   jvmti_write_debug_info(void *agent, uint64_t code, int nr_lines,
			     jvmti_line_info_t *li,
			     int nr_lines);
			     const char * const * file_names);

#if defined(__cplusplus)
}
Loading