diff --git a/meta-isar/recipes-kernel/linux-perf/debian/control.tmpl b/meta-isar/recipes-kernel/linux-perf/debian/control.tmpl
new file mode 100644
index 0000000..e204437
--- /dev/null
+++ b/meta-isar/recipes-kernel/linux-perf/debian/control.tmpl
@@ -0,0 +1,45 @@
+Source: linux-perf-${KERNEL_PERF_COMPAT}
+Maintainer: ${MAINTAINER}
+Priority: optional
+Build-Profiles: <!noperf>
+Section: devel
+Build-Depends:
+ asciidoctor <!stage1 !nodoc !pkg.linux.notools !nopython>,
+ gcc-multilib [amd64 mips64 mips64el mips64r6 mips64r6el ppc64 s390x sparc64],
+ libaudit-dev,
+ libbabeltrace-dev (>= 1.5.0),
+ libbabeltrace-dev (>= 1.5.3-2~) | libbabeltrace-ctf-dev (>= 1.5.0),
+ libdw-dev,
+ libiberty-dev,
+ libnewt-dev,
+ libnuma-dev,
+ libperl-dev,
+ libunwind-dev [amd64 arm64 armel armhf hppa i386 mips mips64 mips64el mipsel powerpc ppc64 ppc64el sh4],
+ libopencsd-dev,
+ python3-dev,
+ flex,
+ bison,
+
+Package: linux-perf-${KERNEL_PERF_COMPAT}
+Architecture: alpha amd64 arm64 armel armhf hppa i386 mips mips64 mips64el mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el powerpc ppc64 ppc64el riscv64 s390 s390x sh4 sparc sparc64
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, ${python3:Depends}
+Recommends: linux-base
+Provides: linux-tools-${KERNEL_PERF_COMPAT}
+Conflicts: linux-tools-${KERNEL_PERF_COMPAT}
+Replaces: linux-tools-${KERNEL_PERF_COMPAT}
+Suggests: linux-doc-${KERNEL_PERF_COMPAT}
+Description: Performance analysis tools for Linux ${KERNEL_PERF_COMPAT}
+ This package contains the 'perf' performance analysis tools for Linux
+ kernel version ${KERNEL_PERF_COMPAT}.
+ .
+ The linux-base package contains a 'perf' command which will invoke the
+ appropriate version for the running kernel.
+
+
+Package: linux-perf
+Build-Profiles: <!stage1 !pkg.linux.notools !nopython !pkg.linux.nometa>
+Architecture: alpha amd64 arm64 armel armhf hppa i386 mips mips64 mips64el mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el powerpc ppc64 ppc64el riscv64 s390 s390x sh4 sparc sparc64
+Depends: linux-perf-${KERNEL_PERF_COMPAT} (= ${binary:Version}), ${misc:Depends}
+Description: Performance analysis tools for Linux (meta-package)
+ This package depends on the package containing the 'perf' performance
+ analysis tools for the latest Linux kernel.
diff --git a/meta-isar/recipes-kernel/linux-perf/debian/rules b/meta-isar/recipes-kernel/linux-perf/debian/rules
new file mode 100644
index 0000000..b21876e
--- /dev/null
+++ b/meta-isar/recipes-kernel/linux-perf/debian/rules
@@ -0,0 +1,59 @@
+#!/usr/bin/make -f
+# Note: this ruleset is based on the Makefile
+# that is used for building the linux-perf-<KR>
+# package in debian
+
+VERSION ?= $(KERNEL_PERF_COMPAT)
+deb_top_dir := $(CURDIR)/debian
+DESTDIR := $(deb_top_dir)/binarypackage
+PARALLEL_BUILD=-j $(shell echo $$(($$(nproc) * 2)))
+
+CFLAGS := $(shell dpkg-buildflags --get CFLAGS) -Wall
+CXXFLAGS := $(shell dpkg-buildflags --get CXXFLAGS) -Wall
+LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS)
+
+MAKE_PERF := $(MAKE) O=$(CURDIR) prefix=/usr V=1 VF=1 WERROR=0 EXTRA_CFLAGS='$(CFLAGS) $(CPPFLAGS)' LDFLAGS='$(LDFLAGS)'
+MAKE_PERF += NO_GTK2=1
+MAKE_PERF += feature-jvmti=0
+MAKE_PERF += perfexecdir=lib/perf_$(VERSION)-core plugindir=/usr/lib/traceevent_$(VERSION)/plugins STRACE_GROUPS_DIR=share/perf_$(VERSION)-core/strace/groups tipdir=share/doc/linux-perf-$(VERSION) perf_include_dir=include/perf_$(VERSION) perf_examples_dir=share/doc/linux-perf-$(VERSION)/examples
+MAKE_PERF += feature-libbfd=0 feature-libbfd-liberty=0 feature-libbfd-liberty-z=0 HAVE_CPLUS_DEMANGLE_SUPPORT=1
+MAKE_PERF += NO_LIBCRYPTO=1
+MAKE_PERF += LIBBABELTRACE=1
+MAKE_PERF += USE_ASCIIDOCTOR=1
+MAKE_PERF += PYTHON=/usr/bin/python3
+VERS_PATTERN := $(subst .,[._],$(VERSION))
+
+
+override_dh_auto_build:
+	+${MAKE_PERF} ${PARALLEL_MAKE} -C tools/perf -f Makefile.perf all VERSION=$(VERSION) DESTDIR=dummy
+	# Check that perf didn't get linked against libbfd or libcrypto
+	! ldd $(CURDIR)/perf | grep -E '\blib(bfd|crypto)'
+	# Check that it includes cplus_demangle from libiberty
+	grep cplus_demangle $(CURDIR)/perf
+
+override_dh_auto_install:
+	+${MAKE_PERF} ${PARALLEL_MAKE} -C tools/perf -f Makefile.perf install VERSION=$(VERSION) DESTDIR=$(DESTDIR)
+	rm -f $(DESTDIR)/usr/bin/trace_$(VERSION)
+	mkdir -p $(DESTDIR)/usr/share/bash-completion/
+	mv $(DESTDIR)/etc/bash_completion.d \
+		$(DESTDIR)/usr/share/bash-completion/completions
+	rmdir --ignore-fail-on-non-empty $(DESTDIR)/etc
+
+	# do not ship python2 script
+	rm -f $(DESTDIR)/usr/lib/perf_$(VERSION)-core/scripts/python/call-graph-from-sql.py
+
+	# Check for unversioned files that are likely to result in file conflicts
+	cd $(DESTDIR) && ! find \! -type d \! -path '*[_-]$(VERS_PATTERN)*' | grep .
+
+override_dh_shlibdeps:
+	dh_shlibdeps -Xperf-read-vdso
+
+override_dh_auto_clean:
+	rm -rf ${deb_top_dir}/binarypackage
+
+override_dh_auto_test:
+	echo "Skip tests"
+
+%:
+	CFLAGS= LDFLAGS= dh $@ --parallel
+
diff --git a/meta-isar/recipes-kernel/linux-perf/files/4.19/tools-perf-install.patch b/meta-isar/recipes-kernel/linux-perf/files/4.19/tools-perf-install.patch
new file mode 100644
index 0000000..8cfd02a
--- /dev/null
+++ b/meta-isar/recipes-kernel/linux-perf/files/4.19/tools-perf-install.patch
@@ -0,0 +1,58 @@
+From: Bastian Blank <waldi@debian.org>
+Date: Fri, 07 Oct 2011 21:37:52 +0100
+Subject: Install perf scripts non-executable
+Forwarded: no
+
+[bwh: Forward-ported to 4.13]
+
+Index: linux/tools/perf/Makefile.perf
+===================================================================
+--- linux.orig/tools/perf/Makefile.perf
++++ linux/tools/perf/Makefile.perf
+@@ -796,8 +796,8 @@ endif
+ ifndef NO_LIBPERL
+ 	$(call QUIET_INSTALL, perl-scripts) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace'; \
+-		$(INSTALL) scripts/perl/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace'; \
+-		$(INSTALL) scripts/perl/*.pl -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl'; \
++		$(INSTALL) -m 644 scripts/perl/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace'; \
++		$(INSTALL) -m 644 scripts/perl/*.pl -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl'; \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/bin'; \
+ 		$(INSTALL) scripts/perl/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/bin'
+ endif
+@@ -805,27 +805,27 @@ ifndef NO_LIBPYTHON
+ 	$(call QUIET_INSTALL, python-scripts) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/Perf-Trace-Util/lib/Perf/Trace'; \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin'; \
+-		$(INSTALL) scripts/python/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/Perf-Trace-Util/lib/Perf/Trace'; \
+-		$(INSTALL) scripts/python/*.py -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python'; \
++		$(INSTALL) -m 644 scripts/python/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/Perf-Trace-Util/lib/Perf/Trace'; \
++		$(INSTALL) -m 644 scripts/python/*.py -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python'; \
+ 		$(INSTALL) scripts/python/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin'
+ endif
+ 	$(call QUIET_INSTALL, perf_completion-script) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d'; \
+-		$(INSTALL) perf-completion.sh '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf_$(VERSION)'
++		$(INSTALL) -m 644 perf-completion.sh '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf_$(VERSION)'
+ 	$(call QUIET_INSTALL, perf-tip) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(tip_instdir_SQ)'; \
+-		$(INSTALL) Documentation/tips.txt -t '$(DESTDIR_SQ)$(tip_instdir_SQ)'
++		$(INSTALL) -m 644 Documentation/tips.txt -t '$(DESTDIR_SQ)$(tip_instdir_SQ)'
+ 
+ install-tests: all install-gtk
+ 	$(call QUIET_INSTALL, tests) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'; \
+-		$(INSTALL) tests/attr.py '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'; \
++		$(INSTALL) -m 644 tests/attr.py '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'; \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'; \
+-		$(INSTALL) tests/attr/* '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'; \
++		$(INSTALL) -m 644 tests/attr/* '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'; \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
+-		$(INSTALL) tests/shell/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
++		$(INSTALL) -m 644 tests/shell/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
+-		$(INSTALL) tests/shell/lib/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
++		$(INSTALL) -m 644 tests/shell/lib/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
+ 
+ install-bin: install-tools install-tests install-traceevent-plugins
+ 
diff --git a/meta-isar/recipes-kernel/linux-perf/files/4.19/tools-perf-python.patch b/meta-isar/recipes-kernel/linux-perf/files/4.19/tools-perf-python.patch
new file mode 100644
index 0000000..5770d9f
--- /dev/null
+++ b/meta-isar/recipes-kernel/linux-perf/files/4.19/tools-perf-python.patch
@@ -0,0 +1,55 @@
+--- a/tools/perf/Makefile.perf
++++ b/tools/perf/Makefile.perf
+@@ -829,10 +829,10 @@
+ 
+ install-bin: install-tools install-tests install-traceevent-plugins
+ 
+-install: install-bin try-install-man
+-
+ install-python_ext:
+-	$(PYTHON_WORD) util/setup.py --quiet install --root='/$(DESTDIR_SQ)'
++	$(PYTHON_WORD) util/setup.py --quiet install --root='/$(DESTDIR_SQ)' --install-layout=deb;
++
++install: install-bin try-install-man install-python_ext
+ 
+ # 'make install-doc' should call 'make -C Documentation install'
+ $(INSTALL_DOC_TARGETS):
+--- a/tools/perf/util/setup.py
++++ b/tools/perf/util/setup.py
+@@ -51,14 +51,14 @@
+ # use full paths with source files
+ ext_sources = list(map(lambda x: '%s/%s' % (src_perf, x) , ext_sources))
+ 
+-perf = Extension('perf',
++perf = Extension('perf_4_19',
+ 		  sources = ext_sources,
+ 		  include_dirs = ['util/include'],
+ 		  extra_compile_args = cflags,
+ 		  extra_objects = [libtraceevent, libapikfs],
+                  )
+ 
+-setup(name='perf',
++setup(name='perf_4_19',
+       version='0.1',
+       description='Interface with the Linux profiling infrastructure',
+       author='Arnaldo Carvalho de Melo',
+--- a/tools/perf/util/python.c
++++ b/tools/perf/util/python.c
+@@ -77,7 +77,7 @@
+ #if PY_MAJOR_VERSION < 3
+ PyMODINIT_FUNC initperf(void);
+ #else
+-PyMODINIT_FUNC PyInit_perf(void);
++PyMODINIT_FUNC PyInit_perf_4_19(void);
+ #endif
+ 
+ #define member_def(type, member, ptype, help) \
+@@ -1270,7 +1270,7 @@
+ #if PY_MAJOR_VERSION < 3
+ PyMODINIT_FUNC initperf(void)
+ #else
+-PyMODINIT_FUNC PyInit_perf(void)
++PyMODINIT_FUNC PyInit_perf_4_19(void)
+ #endif
+ {
+ 	PyObject *obj;
diff --git a/meta-isar/recipes-kernel/linux-perf/files/4.19/tools-perf-version.patch b/meta-isar/recipes-kernel/linux-perf/files/4.19/tools-perf-version.patch
new file mode 100644
index 0000000..6833bb7
--- /dev/null
+++ b/meta-isar/recipes-kernel/linux-perf/files/4.19/tools-perf-version.patch
@@ -0,0 +1,119 @@
+From: Bastian Blank <waldi@debian.org>
+Date: Mon, 26 Sep 2011 13:53:12 +0100
+Subject: Create manpages and binaries including the version
+Forwarded: no
+
+[bwh: Fix version insertion in perf man page cross-references and perf
+man page title.  Install bash_completion script for perf with a
+version-dependent name.  And do the same for trace.]
+
+Index: linux/tools/perf/Makefile.perf
+===================================================================
+--- linux.orig/tools/perf/Makefile.perf
++++ linux/tools/perf/Makefile.perf
+@@ -759,23 +759,23 @@ endif
+ install-tools: all install-gtk
+ 	$(call QUIET_INSTALL, binaries) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(bindir_SQ)'; \
+-		$(INSTALL) $(OUTPUT)perf '$(DESTDIR_SQ)$(bindir_SQ)'; \
+-		$(LN) '$(DESTDIR_SQ)$(bindir_SQ)/perf' '$(DESTDIR_SQ)$(bindir_SQ)/trace'
++		$(INSTALL) $(OUTPUT)perf '$(DESTDIR_SQ)$(bindir_SQ)/perf_$(VERSION)'; \
++		$(LN) '$(DESTDIR_SQ)$(bindir_SQ)/perf_$(VERSION)' '$(DESTDIR_SQ)$(bindir_SQ)/trace_$(VERSION)'
++	$(call QUIET_INSTALL, libexec) \
++		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'
+ ifndef NO_PERF_READ_VDSO32
+ 	$(call QUIET_INSTALL, perf-read-vdso32) \
+-		$(INSTALL) $(OUTPUT)perf-read-vdso32 '$(DESTDIR_SQ)$(bindir_SQ)';
++		$(INSTALL) $(OUTPUT)perf-read-vdso32 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)';
+ endif
+ ifndef NO_PERF_READ_VDSOX32
+ 	$(call QUIET_INSTALL, perf-read-vdsox32) \
+-		$(INSTALL) $(OUTPUT)perf-read-vdsox32 '$(DESTDIR_SQ)$(bindir_SQ)';
++		$(INSTALL) $(OUTPUT)perf-read-vdsox32 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)';
+ endif
+ ifndef NO_JVMTI
+ 	$(call QUIET_INSTALL, $(LIBJVMTI)) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(libdir_SQ)'; \
+ 		$(INSTALL) $(OUTPUT)$(LIBJVMTI) '$(DESTDIR_SQ)$(libdir_SQ)';
+ endif
+-	$(call QUIET_INSTALL, libexec) \
+-		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'
+ ifndef NO_LIBBPF
+ 	$(call QUIET_INSTALL, bpf-headers) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perf_include_instdir_SQ)/bpf'; \
+@@ -811,7 +811,7 @@ ifndef NO_LIBPYTHON
+ endif
+ 	$(call QUIET_INSTALL, perf_completion-script) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d'; \
+-		$(INSTALL) perf-completion.sh '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf'
++		$(INSTALL) perf-completion.sh '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf_$(VERSION)'
+ 	$(call QUIET_INSTALL, perf-tip) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(tip_instdir_SQ)'; \
+ 		$(INSTALL) Documentation/tips.txt -t '$(DESTDIR_SQ)$(tip_instdir_SQ)'
+@@ -836,7 +836,7 @@ install-python_ext:
+ 
+ # 'make install-doc' should call 'make -C Documentation install'
+ $(INSTALL_DOC_TARGETS):
+-	$(QUIET_SUBDIR0)Documentation $(QUIET_SUBDIR1) $(@:-doc=)
++	$(QUIET_SUBDIR0)Documentation $(QUIET_SUBDIR1) $(@:-doc=) VERSION=$(VERSION)
+ 
+ ### Cleaning rules
+ 
+Index: linux/tools/perf/Documentation/Makefile
+===================================================================
+--- linux.orig/tools/perf/Documentation/Makefile
++++ linux/tools/perf/Documentation/Makefile
+@@ -194,14 +194,16 @@ ifdef missing_tools
+ 	$(error "You need to install $(missing_tools) for man pages")
+ endif
+ 
+-do-install-man: man
++do-install-man: $(addprefix install-man-,$(_DOC_MAN1))
++
++install-man-perf.1: $(OUTPUT)perf.1
++	$(INSTALL) -d -m 755 $(DESTDIR)$(man1dir)
++	sed -e 's/"PERF"/"PERF_$(VERSION)"/' -e 's/fBperf-/fBperf_$(VERSION)-/g' $^ > $(DESTDIR)$(man1dir)/perf_$(VERSION).1
++
++install-man-perf%.1: $(OUTPUT)perf%.1
+ 	$(call QUIET_INSTALL, Documentation-man) \
+ 		$(INSTALL) -d -m 755 $(DESTDIR)$(man1dir); \
+-#		$(INSTALL) -d -m 755 $(DESTDIR)$(man5dir); \
+-#		$(INSTALL) -d -m 755 $(DESTDIR)$(man7dir); \
+-		$(INSTALL) -m 644 $(DOC_MAN1) $(DESTDIR)$(man1dir); \
+-#		$(INSTALL) -m 644 $(DOC_MAN5) $(DESTDIR)$(man5dir); \
+-#		$(INSTALL) -m 644 $(DOC_MAN7) $(DESTDIR)$(man7dir)
++		sed -e 's/"PERF\\-/"PERF_$(VERSION)\\-/' -e 's/fBperf-/fBperf_$(VERSION)-/g' $^ > $(DESTDIR)$(man1dir)/perf_$(VERSION)$*.1
+ 
+ install-man: check-man-tools man do-install-man
+ 
+Index: linux/tools/perf/util/Build
+===================================================================
+--- linux.orig/tools/perf/util/Build
++++ linux/tools/perf/util/Build
+@@ -193,6 +193,7 @@ CFLAGS_libstring.o     += -Wno-unused-pa
+ CFLAGS_hweight.o       += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
+ CFLAGS_parse-events.o  += -Wno-redundant-decls
+ CFLAGS_header.o        += -include $(OUTPUT)PERF-VERSION-FILE
++CFLAGS_vdso.o		+= -DPERFEXECDIR='"$(perfexec_instdir_SQ)"'
+ 
+ $(OUTPUT)util/kallsyms.o: ../lib/symbol/kallsyms.c FORCE
+ 	$(call rule_mkdir)
+Index: linux/tools/perf/util/vdso.c
+===================================================================
+--- linux.orig/tools/perf/util/vdso.c
++++ linux/tools/perf/util/vdso.c
+@@ -52,12 +52,12 @@ static struct vdso_info *vdso_info__new(
+ 		.vdso32  = {
+ 			.temp_file_name = VDSO__TEMP_FILE_NAME,
+ 			.dso_name = DSO__NAME_VDSO32,
+-			.read_prog = "perf-read-vdso32",
++			.read_prog = PERFEXECDIR "/perf-read-vdso32",
+ 		},
+ 		.vdsox32  = {
+ 			.temp_file_name = VDSO__TEMP_FILE_NAME,
+ 			.dso_name = DSO__NAME_VDSOX32,
+-			.read_prog = "perf-read-vdsox32",
++			.read_prog = PERFEXECDIR "/perf-read-vdsox32",
+ 		},
+ #endif
+ 	};
diff --git a/meta-isar/recipes-kernel/linux-perf/files/5.10/tools-perf-install.patch b/meta-isar/recipes-kernel/linux-perf/files/5.10/tools-perf-install.patch
new file mode 100644
index 0000000..b25bd25
--- /dev/null
+++ b/meta-isar/recipes-kernel/linux-perf/files/5.10/tools-perf-install.patch
@@ -0,0 +1,52 @@
+From: Bastian Blank <waldi@debian.org>
+Date: Fri, 07 Oct 2011 21:37:52 +0100
+Subject: Install perf scripts non-executable
+Forwarded: no
+
+[bwh: Forward-ported to 4.13]
+---
+ tools/perf/Makefile.perf | 20 ++++++++++----------
+ 1 file changed, 10 insertions(+), 10 deletions(-)
+
+--- a/tools/perf/Makefile.perf
++++ b/tools/perf/Makefile.perf
+@@ -952,8 +952,8 @@ endif
+ ifndef NO_LIBPERL
+ 	$(call QUIET_INSTALL, perl-scripts) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace'; \
+-		$(INSTALL) scripts/perl/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace'; \
+-		$(INSTALL) scripts/perl/*.pl -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl'; \
++		$(INSTALL) -m 644 scripts/perl/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace'; \
++		$(INSTALL) -m 644 scripts/perl/*.pl -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl'; \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/bin'; \
+ 		$(INSTALL) scripts/perl/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/bin'
+ endif
+@@ -967,22 +967,22 @@ ifndef NO_LIBPYTHON
+ endif
+ 	$(call QUIET_INSTALL, perf_completion-script) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d'; \
+-		$(INSTALL) perf-completion.sh '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf_$(VERSION)'
++		$(INSTALL) -m 644 perf-completion.sh '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf_$(VERSION)'
+ 	$(call QUIET_INSTALL, perf-tip) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(tip_instdir_SQ)'; \
+-		$(INSTALL) Documentation/tips.txt -t '$(DESTDIR_SQ)$(tip_instdir_SQ)'
++		$(INSTALL) -m 644 Documentation/tips.txt -t '$(DESTDIR_SQ)$(tip_instdir_SQ)'
+ 
+ install-tests: all install-gtk
+ 	$(call QUIET_INSTALL, tests) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'; \
+-		$(INSTALL) tests/attr.py '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'; \
++		$(INSTALL) -m 644 tests/attr.py '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'; \
+ 		$(INSTALL) tests/pe-file.exe* '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'; \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'; \
+-		$(INSTALL) tests/attr/* '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'; \
++		$(INSTALL) -m 644 tests/attr/* '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'; \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
+-		$(INSTALL) tests/shell/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
++		$(INSTALL) -m 644 tests/shell/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
+-		$(INSTALL) tests/shell/lib/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
++		$(INSTALL) -m 644 tests/shell/lib/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
+ 
+ install-bin: install-tools install-tests install-traceevent-plugins
+ 
diff --git a/meta-isar/recipes-kernel/linux-perf/files/5.10/tools-perf-python.patch b/meta-isar/recipes-kernel/linux-perf/files/5.10/tools-perf-python.patch
new file mode 100644
index 0000000..205ec19
--- /dev/null
+++ b/meta-isar/recipes-kernel/linux-perf/files/5.10/tools-perf-python.patch
@@ -0,0 +1,56 @@
+--- a/tools/perf/Makefile.perf
++++ b/tools/perf/Makefile.perf
+@@ -982,10 +982,10 @@
+ 
+ install-bin: install-tools install-tests install-traceevent-plugins
+ 
+-install: install-bin try-install-man
+-
+ install-python_ext:
+-	$(PYTHON_WORD) util/setup.py --quiet install --root='/$(DESTDIR_SQ)'
++	$(PYTHON_WORD) util/setup.py --quiet install --root='/$(DESTDIR_SQ)' --install-layout=deb
++
++install: install-bin try-install-man install-python_ext
+ 
+ # 'make install-doc' should call 'make -C Documentation install'
+ $(INSTALL_DOC_TARGETS):
+--- a/tools/perf/util/python.c
++++ b/tools/perf/util/python.c
+@@ -110,7 +110,7 @@
+ #if PY_MAJOR_VERSION < 3
+ PyMODINIT_FUNC initperf(void);
+ #else
+-PyMODINIT_FUNC PyInit_perf(void);
++PyMODINIT_FUNC PyInit_perf_5_10(void);
+ #endif
+ 
+ #define member_def(type, member, ptype, help) \
+@@ -1303,7 +1303,7 @@
+ #if PY_MAJOR_VERSION < 3
+ PyMODINIT_FUNC initperf(void)
+ #else
+-PyMODINIT_FUNC PyInit_perf(void)
++PyMODINIT_FUNC PyInit_perf_5_10(void)
+ #endif
+ {
+ 	PyObject *obj;
+--- a/tools/perf/util/setup.py
++++ b/tools/perf/util/setup.py
+@@ -66,7 +66,7 @@
+ if '-DHAVE_LIBCAP_SUPPORT' in cflags:
+     extra_libraries += [ 'cap' ]
+ 
+-perf = Extension('perf',
++perf = Extension('perf_5_10',
+ 		  sources = ext_sources,
+ 		  include_dirs = ['util/include'],
+ 		  libraries = extra_libraries,
+@@ -74,7 +74,7 @@
+ 		  extra_objects = [libtraceevent, libapikfs, libperf],
+                  )
+ 
+-setup(name='perf',
++setup(name='perf_5_10',
+       version='0.1',
+       description='Interface with the Linux profiling infrastructure',
+       author='Arnaldo Carvalho de Melo',
diff --git a/meta-isar/recipes-kernel/linux-perf/files/5.10/tools-perf-version.patch b/meta-isar/recipes-kernel/linux-perf/files/5.10/tools-perf-version.patch
new file mode 100644
index 0000000..ccc2883
--- /dev/null
+++ b/meta-isar/recipes-kernel/linux-perf/files/5.10/tools-perf-version.patch
@@ -0,0 +1,128 @@
+From: Bastian Blank <waldi@debian.org>
+Date: Mon, 26 Sep 2011 13:53:12 +0100
+Subject: Create manpages and binaries including the version
+Forwarded: no
+
+[bwh: Fix version insertion in perf man page cross-references and perf
+man page title.  Install bash_completion script for perf with a
+version-dependent name.  And do the same for trace.]
+---
+ tools/perf/Documentation/Makefile | 14 ++++++++------
+ tools/perf/Makefile.perf          | 16 ++++++++--------
+ tools/perf/util/Build             |  1 +
+ tools/perf/util/vdso.c            |  4 ++--
+ 4 files changed, 19 insertions(+), 16 deletions(-)
+
+diff --git a/tools/perf/Documentation/Makefile b/tools/perf/Documentation/Makefile
+index 6e54979c2124..db2cb7669da1 100644
+--- a/tools/perf/Documentation/Makefile
++++ b/tools/perf/Documentation/Makefile
+@@ -195,14 +195,16 @@ ifdef missing_tools
+ 	$(error "You need to install $(missing_tools) for man pages")
+ endif
+ 
+-do-install-man: man
++do-install-man: $(addprefix install-man-,$(_DOC_MAN1))
++
++install-man-perf.1: $(OUTPUT)perf.1
++	$(INSTALL) -d -m 755 $(DESTDIR)$(man1dir)
++	sed -e 's/"PERF"/"PERF_$(VERSION)"/' -e 's/fBperf-/fBperf_$(VERSION)-/g' $^ > $(DESTDIR)$(man1dir)/perf_$(VERSION).1
++
++install-man-perf%.1: $(OUTPUT)perf%.1
+ 	$(call QUIET_INSTALL, Documentation-man) \
+ 		$(INSTALL) -d -m 755 $(DESTDIR)$(man1dir); \
+-#		$(INSTALL) -d -m 755 $(DESTDIR)$(man5dir); \
+-#		$(INSTALL) -d -m 755 $(DESTDIR)$(man7dir); \
+-		$(INSTALL) -m 644 $(DOC_MAN1) $(DESTDIR)$(man1dir); \
+-#		$(INSTALL) -m 644 $(DOC_MAN5) $(DESTDIR)$(man5dir); \
+-#		$(INSTALL) -m 644 $(DOC_MAN7) $(DESTDIR)$(man7dir)
++		sed -e 's/"PERF\\-/"PERF_$(VERSION)\\-/' -e 's/fBperf-/fBperf_$(VERSION)-/g' $^ > $(DESTDIR)$(man1dir)/perf_$(VERSION)$*.1
+ 
+ install-man: check-man-tools man do-install-man
+ 
+diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
+index 86dbb51bb272..ed69643c3249 100644
+--- a/tools/perf/Makefile.perf
++++ b/tools/perf/Makefile.perf
+@@ -888,23 +888,23 @@ endif
+ install-tools: all install-gtk
+ 	$(call QUIET_INSTALL, binaries) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(bindir_SQ)'; \
+-		$(INSTALL) $(OUTPUT)perf '$(DESTDIR_SQ)$(bindir_SQ)'; \
+-		$(LN) '$(DESTDIR_SQ)$(bindir_SQ)/perf' '$(DESTDIR_SQ)$(bindir_SQ)/trace'
++		$(INSTALL) $(OUTPUT)perf '$(DESTDIR_SQ)$(bindir_SQ)/perf_$(VERSION)'; \
++		$(LN) '$(DESTDIR_SQ)$(bindir_SQ)/perf_$(VERSION)' '$(DESTDIR_SQ)$(bindir_SQ)/trace_$(VERSION)'
++	$(call QUIET_INSTALL, libexec) \
++		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'
+ ifndef NO_PERF_READ_VDSO32
+ 	$(call QUIET_INSTALL, perf-read-vdso32) \
+-		$(INSTALL) $(OUTPUT)perf-read-vdso32 '$(DESTDIR_SQ)$(bindir_SQ)';
++		$(INSTALL) $(OUTPUT)perf-read-vdso32 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)';
+ endif
+ ifndef NO_PERF_READ_VDSOX32
+ 	$(call QUIET_INSTALL, perf-read-vdsox32) \
+-		$(INSTALL) $(OUTPUT)perf-read-vdsox32 '$(DESTDIR_SQ)$(bindir_SQ)';
++		$(INSTALL) $(OUTPUT)perf-read-vdsox32 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)';
+ endif
+ ifndef NO_JVMTI
+ 	$(call QUIET_INSTALL, $(LIBJVMTI)) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(libdir_SQ)'; \
+ 		$(INSTALL) $(OUTPUT)$(LIBJVMTI) '$(DESTDIR_SQ)$(libdir_SQ)';
+ endif
+-	$(call QUIET_INSTALL, libexec) \
+-		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'
+ ifndef NO_LIBBPF
+ 	$(call QUIET_INSTALL, bpf-headers) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perf_include_instdir_SQ)/bpf'; \
+@@ -942,7 +942,7 @@ ifndef NO_LIBPYTHON
+ endif
+ 	$(call QUIET_INSTALL, perf_completion-script) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d'; \
+-		$(INSTALL) perf-completion.sh '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf'
++		$(INSTALL) perf-completion.sh '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf_$(VERSION)'
+ 	$(call QUIET_INSTALL, perf-tip) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(tip_instdir_SQ)'; \
+ 		$(INSTALL) Documentation/tips.txt -t '$(DESTDIR_SQ)$(tip_instdir_SQ)'
+@@ -967,7 +967,7 @@ install-python_ext:
+ 
+ # 'make install-doc' should call 'make -C Documentation install'
+ $(INSTALL_DOC_TARGETS):
+-	$(Q)$(MAKE) -C $(DOC_DIR) O=$(OUTPUT) $(@:-doc=) ASCIIDOC_EXTRA=$(ASCIIDOC_EXTRA)
++	$(Q)$(MAKE) -C $(DOC_DIR) O=$(OUTPUT) $(@:-doc=) ASCIIDOC_EXTRA=$(ASCIIDOC_EXTRA) VERSION=$(VERSION)
+ 
+ ### Cleaning rules
+ 
+diff --git a/tools/perf/util/Build b/tools/perf/util/Build
+index 8d18380ecd10..5dd0f6c387b3 100644
+--- a/tools/perf/util/Build
++++ b/tools/perf/util/Build
+@@ -234,6 +234,7 @@ CFLAGS_hweight.o       += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ET
+ CFLAGS_parse-events.o  += -Wno-redundant-decls
+ CFLAGS_expr.o          += -Wno-redundant-decls
+ CFLAGS_header.o        += -include $(OUTPUT)PERF-VERSION-FILE
++CFLAGS_vdso.o		+= -DPERFEXECDIR='"$(perfexec_instdir_SQ)"'
+ 
+ $(OUTPUT)util/kallsyms.o: ../lib/symbol/kallsyms.c FORCE
+ 	$(call rule_mkdir)
+diff --git a/tools/perf/util/vdso.c b/tools/perf/util/vdso.c
+index 3cc91ad048ea..e7483388bb5d 100644
+--- a/tools/perf/util/vdso.c
++++ b/tools/perf/util/vdso.c
+@@ -55,12 +55,12 @@ static struct vdso_info *vdso_info__new(void)
+ 		.vdso32  = {
+ 			.temp_file_name = VDSO__TEMP_FILE_NAME,
+ 			.dso_name = DSO__NAME_VDSO32,
+-			.read_prog = "perf-read-vdso32",
++			.read_prog = PERFEXECDIR "/perf-read-vdso32",
+ 		},
+ 		.vdsox32  = {
+ 			.temp_file_name = VDSO__TEMP_FILE_NAME,
+ 			.dso_name = DSO__NAME_VDSOX32,
+-			.read_prog = "perf-read-vdsox32",
++			.read_prog = PERFEXECDIR "/perf-read-vdsox32",
+ 		},
+ #endif
+ 	};
+-- 
+2.27.0
+
diff --git a/meta-isar/recipes-kernel/linux-perf/files/rules b/meta-isar/recipes-kernel/linux-perf/files/rules
new file mode 100644
index 0000000..e23586c
--- /dev/null
+++ b/meta-isar/recipes-kernel/linux-perf/files/rules
@@ -0,0 +1,53 @@
+#!/usr/bin/make -f
+# Note: this ruleset is based on the Makefile
+# that is used for building the linux-perf-<KR>
+# package in debian
+
+VERSION := 4.19
+deb_top_dir := $(CURDIR)/debian
+DESTDIR := $(deb_top_dir)/binarypackage
+PARALLEL_BUILD=-j $(shell echo $$(($$(nproc) * 2)))
+
+CFLAGS := $(shell dpkg-buildflags --get CFLAGS) -Wall
+CXXFLAGS := $(shell dpkg-buildflags --get CXXFLAGS) -Wall
+LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS)
+
+MAKE_PERF := $(MAKE) O=$(CURDIR) prefix=/usr V=1 VF=1 WERROR=0 EXTRA_CFLAGS='$(CFLAGS) $(CPPFLAGS)' LDFLAGS='$(LDFLAGS)'
+MAKE_PERF += NO_GTK2=1
+MAKE_PERF += feature-jvmti=0
+MAKE_PERF += perfexecdir=lib/perf_$(VERSION)-core plugindir=/usr/lib/traceevent_$(VERSION)/plugins STRACE_GROUPS_DIR=share/perf_$(VERSION)-core/strace/groups tipdir=share/doc/linux-perf-$(VERSION) perf_include_dir=include/perf_$(VERSION) perf_examples_dir=share/doc/linux-perf-$(VERSION)/examples
+MAKE_PERF += feature-libbfd=0 feature-libbfd-liberty=0 feature-libbfd-liberty-z=0 HAVE_CPLUS_DEMANGLE_SUPPORT=1
+MAKE_PERF += NO_LIBCRYPTO=1
+MAKE_PERF += LIBBABELTRACE=1
+MAKE_PERF += USE_ASCIIDOCTOR=1
+MAKE_PERF += PYTHON=/usr/bin/python3
+VERS_PATTERN := $(subst .,[._],$(VERSION))
+
+
+override_dh_auto_build:
+	+${MAKE_PERF} ${PARALLEL_MAKE} -C tools/perf -f Makefile.perf all VERSION=$(VERSION) DESTDIR=dummy
+	# Check that perf didn't get linked against libbfd or libcrypto
+	! ldd $(CURDIR)/perf | grep -E '\blib(bfd|crypto)'
+	# Check that it includes cplus_demangle from libiberty
+	grep cplus_demangle $(CURDIR)/perf
+
+override_dh_auto_install:
+	+${MAKE_PERF} ${PARALLEL_MAKE} -C tools/perf -f Makefile.perf install VERSION=$(VERSION) DESTDIR=$(DESTDIR)
+	rm -f $(DESTDIR)/usr/bin/trace_$(VERSION)
+	mkdir -p $(DESTDIR)/usr/share/bash-completion/
+	mv $(DESTDIR)/etc/bash_completion.d \
+		$(DESTDIR)/usr/share/bash-completion/completions
+	rmdir --ignore-fail-on-non-empty $(DESTDIR)/etc
+
+	# Check for unversioned files that are likely to result in file conflicts
+	cd $(DESTDIR) && ! find \! -type d \! -path '*[_-]$(VERS_PATTERN)*' | grep .
+
+override_dh_auto_clean:
+	rm -rf ${deb_top_dir}/binarypackage
+
+override_dh_auto_test:
+	echo "Skip tests"
+
+%:
+	CFLAGS= LDFLAGS= dh $@ --parallel
+
diff --git a/meta-isar/recipes-kernel/linux-perf/files/tools-perf-install.patch b/meta-isar/recipes-kernel/linux-perf/files/tools-perf-install.patch
new file mode 100644
index 0000000..8cfd02a
--- /dev/null
+++ b/meta-isar/recipes-kernel/linux-perf/files/tools-perf-install.patch
@@ -0,0 +1,58 @@
+From: Bastian Blank <waldi@debian.org>
+Date: Fri, 07 Oct 2011 21:37:52 +0100
+Subject: Install perf scripts non-executable
+Forwarded: no
+
+[bwh: Forward-ported to 4.13]
+
+Index: linux/tools/perf/Makefile.perf
+===================================================================
+--- linux.orig/tools/perf/Makefile.perf
++++ linux/tools/perf/Makefile.perf
+@@ -796,8 +796,8 @@ endif
+ ifndef NO_LIBPERL
+ 	$(call QUIET_INSTALL, perl-scripts) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace'; \
+-		$(INSTALL) scripts/perl/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace'; \
+-		$(INSTALL) scripts/perl/*.pl -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl'; \
++		$(INSTALL) -m 644 scripts/perl/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace'; \
++		$(INSTALL) -m 644 scripts/perl/*.pl -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl'; \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/bin'; \
+ 		$(INSTALL) scripts/perl/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/bin'
+ endif
+@@ -805,27 +805,27 @@ ifndef NO_LIBPYTHON
+ 	$(call QUIET_INSTALL, python-scripts) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/Perf-Trace-Util/lib/Perf/Trace'; \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin'; \
+-		$(INSTALL) scripts/python/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/Perf-Trace-Util/lib/Perf/Trace'; \
+-		$(INSTALL) scripts/python/*.py -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python'; \
++		$(INSTALL) -m 644 scripts/python/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/Perf-Trace-Util/lib/Perf/Trace'; \
++		$(INSTALL) -m 644 scripts/python/*.py -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python'; \
+ 		$(INSTALL) scripts/python/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin'
+ endif
+ 	$(call QUIET_INSTALL, perf_completion-script) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d'; \
+-		$(INSTALL) perf-completion.sh '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf_$(VERSION)'
++		$(INSTALL) -m 644 perf-completion.sh '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf_$(VERSION)'
+ 	$(call QUIET_INSTALL, perf-tip) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(tip_instdir_SQ)'; \
+-		$(INSTALL) Documentation/tips.txt -t '$(DESTDIR_SQ)$(tip_instdir_SQ)'
++		$(INSTALL) -m 644 Documentation/tips.txt -t '$(DESTDIR_SQ)$(tip_instdir_SQ)'
+ 
+ install-tests: all install-gtk
+ 	$(call QUIET_INSTALL, tests) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'; \
+-		$(INSTALL) tests/attr.py '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'; \
++		$(INSTALL) -m 644 tests/attr.py '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'; \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'; \
+-		$(INSTALL) tests/attr/* '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'; \
++		$(INSTALL) -m 644 tests/attr/* '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'; \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
+-		$(INSTALL) tests/shell/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
++		$(INSTALL) -m 644 tests/shell/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
+-		$(INSTALL) tests/shell/lib/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
++		$(INSTALL) -m 644 tests/shell/lib/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
+ 
+ install-bin: install-tools install-tests install-traceevent-plugins
+ 
diff --git a/meta-isar/recipes-kernel/linux-perf/files/tools-perf-python.patch b/meta-isar/recipes-kernel/linux-perf/files/tools-perf-python.patch
new file mode 100644
index 0000000..5770d9f
--- /dev/null
+++ b/meta-isar/recipes-kernel/linux-perf/files/tools-perf-python.patch
@@ -0,0 +1,55 @@
+--- a/tools/perf/Makefile.perf
++++ b/tools/perf/Makefile.perf
+@@ -829,10 +829,10 @@
+ 
+ install-bin: install-tools install-tests install-traceevent-plugins
+ 
+-install: install-bin try-install-man
+-
+ install-python_ext:
+-	$(PYTHON_WORD) util/setup.py --quiet install --root='/$(DESTDIR_SQ)'
++	$(PYTHON_WORD) util/setup.py --quiet install --root='/$(DESTDIR_SQ)' --install-layout=deb;
++
++install: install-bin try-install-man install-python_ext
+ 
+ # 'make install-doc' should call 'make -C Documentation install'
+ $(INSTALL_DOC_TARGETS):
+--- a/tools/perf/util/setup.py
++++ b/tools/perf/util/setup.py
+@@ -51,14 +51,14 @@
+ # use full paths with source files
+ ext_sources = list(map(lambda x: '%s/%s' % (src_perf, x) , ext_sources))
+ 
+-perf = Extension('perf',
++perf = Extension('perf_4_19',
+ 		  sources = ext_sources,
+ 		  include_dirs = ['util/include'],
+ 		  extra_compile_args = cflags,
+ 		  extra_objects = [libtraceevent, libapikfs],
+                  )
+ 
+-setup(name='perf',
++setup(name='perf_4_19',
+       version='0.1',
+       description='Interface with the Linux profiling infrastructure',
+       author='Arnaldo Carvalho de Melo',
+--- a/tools/perf/util/python.c
++++ b/tools/perf/util/python.c
+@@ -77,7 +77,7 @@
+ #if PY_MAJOR_VERSION < 3
+ PyMODINIT_FUNC initperf(void);
+ #else
+-PyMODINIT_FUNC PyInit_perf(void);
++PyMODINIT_FUNC PyInit_perf_4_19(void);
+ #endif
+ 
+ #define member_def(type, member, ptype, help) \
+@@ -1270,7 +1270,7 @@
+ #if PY_MAJOR_VERSION < 3
+ PyMODINIT_FUNC initperf(void)
+ #else
+-PyMODINIT_FUNC PyInit_perf(void)
++PyMODINIT_FUNC PyInit_perf_4_19(void)
+ #endif
+ {
+ 	PyObject *obj;
diff --git a/meta-isar/recipes-kernel/linux-perf/files/tools-perf-version.patch b/meta-isar/recipes-kernel/linux-perf/files/tools-perf-version.patch
new file mode 100644
index 0000000..6833bb7
--- /dev/null
+++ b/meta-isar/recipes-kernel/linux-perf/files/tools-perf-version.patch
@@ -0,0 +1,119 @@
+From: Bastian Blank <waldi@debian.org>
+Date: Mon, 26 Sep 2011 13:53:12 +0100
+Subject: Create manpages and binaries including the version
+Forwarded: no
+
+[bwh: Fix version insertion in perf man page cross-references and perf
+man page title.  Install bash_completion script for perf with a
+version-dependent name.  And do the same for trace.]
+
+Index: linux/tools/perf/Makefile.perf
+===================================================================
+--- linux.orig/tools/perf/Makefile.perf
++++ linux/tools/perf/Makefile.perf
+@@ -759,23 +759,23 @@ endif
+ install-tools: all install-gtk
+ 	$(call QUIET_INSTALL, binaries) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(bindir_SQ)'; \
+-		$(INSTALL) $(OUTPUT)perf '$(DESTDIR_SQ)$(bindir_SQ)'; \
+-		$(LN) '$(DESTDIR_SQ)$(bindir_SQ)/perf' '$(DESTDIR_SQ)$(bindir_SQ)/trace'
++		$(INSTALL) $(OUTPUT)perf '$(DESTDIR_SQ)$(bindir_SQ)/perf_$(VERSION)'; \
++		$(LN) '$(DESTDIR_SQ)$(bindir_SQ)/perf_$(VERSION)' '$(DESTDIR_SQ)$(bindir_SQ)/trace_$(VERSION)'
++	$(call QUIET_INSTALL, libexec) \
++		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'
+ ifndef NO_PERF_READ_VDSO32
+ 	$(call QUIET_INSTALL, perf-read-vdso32) \
+-		$(INSTALL) $(OUTPUT)perf-read-vdso32 '$(DESTDIR_SQ)$(bindir_SQ)';
++		$(INSTALL) $(OUTPUT)perf-read-vdso32 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)';
+ endif
+ ifndef NO_PERF_READ_VDSOX32
+ 	$(call QUIET_INSTALL, perf-read-vdsox32) \
+-		$(INSTALL) $(OUTPUT)perf-read-vdsox32 '$(DESTDIR_SQ)$(bindir_SQ)';
++		$(INSTALL) $(OUTPUT)perf-read-vdsox32 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)';
+ endif
+ ifndef NO_JVMTI
+ 	$(call QUIET_INSTALL, $(LIBJVMTI)) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(libdir_SQ)'; \
+ 		$(INSTALL) $(OUTPUT)$(LIBJVMTI) '$(DESTDIR_SQ)$(libdir_SQ)';
+ endif
+-	$(call QUIET_INSTALL, libexec) \
+-		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'
+ ifndef NO_LIBBPF
+ 	$(call QUIET_INSTALL, bpf-headers) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perf_include_instdir_SQ)/bpf'; \
+@@ -811,7 +811,7 @@ ifndef NO_LIBPYTHON
+ endif
+ 	$(call QUIET_INSTALL, perf_completion-script) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d'; \
+-		$(INSTALL) perf-completion.sh '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf'
++		$(INSTALL) perf-completion.sh '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf_$(VERSION)'
+ 	$(call QUIET_INSTALL, perf-tip) \
+ 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(tip_instdir_SQ)'; \
+ 		$(INSTALL) Documentation/tips.txt -t '$(DESTDIR_SQ)$(tip_instdir_SQ)'
+@@ -836,7 +836,7 @@ install-python_ext:
+ 
+ # 'make install-doc' should call 'make -C Documentation install'
+ $(INSTALL_DOC_TARGETS):
+-	$(QUIET_SUBDIR0)Documentation $(QUIET_SUBDIR1) $(@:-doc=)
++	$(QUIET_SUBDIR0)Documentation $(QUIET_SUBDIR1) $(@:-doc=) VERSION=$(VERSION)
+ 
+ ### Cleaning rules
+ 
+Index: linux/tools/perf/Documentation/Makefile
+===================================================================
+--- linux.orig/tools/perf/Documentation/Makefile
++++ linux/tools/perf/Documentation/Makefile
+@@ -194,14 +194,16 @@ ifdef missing_tools
+ 	$(error "You need to install $(missing_tools) for man pages")
+ endif
+ 
+-do-install-man: man
++do-install-man: $(addprefix install-man-,$(_DOC_MAN1))
++
++install-man-perf.1: $(OUTPUT)perf.1
++	$(INSTALL) -d -m 755 $(DESTDIR)$(man1dir)
++	sed -e 's/"PERF"/"PERF_$(VERSION)"/' -e 's/fBperf-/fBperf_$(VERSION)-/g' $^ > $(DESTDIR)$(man1dir)/perf_$(VERSION).1
++
++install-man-perf%.1: $(OUTPUT)perf%.1
+ 	$(call QUIET_INSTALL, Documentation-man) \
+ 		$(INSTALL) -d -m 755 $(DESTDIR)$(man1dir); \
+-#		$(INSTALL) -d -m 755 $(DESTDIR)$(man5dir); \
+-#		$(INSTALL) -d -m 755 $(DESTDIR)$(man7dir); \
+-		$(INSTALL) -m 644 $(DOC_MAN1) $(DESTDIR)$(man1dir); \
+-#		$(INSTALL) -m 644 $(DOC_MAN5) $(DESTDIR)$(man5dir); \
+-#		$(INSTALL) -m 644 $(DOC_MAN7) $(DESTDIR)$(man7dir)
++		sed -e 's/"PERF\\-/"PERF_$(VERSION)\\-/' -e 's/fBperf-/fBperf_$(VERSION)-/g' $^ > $(DESTDIR)$(man1dir)/perf_$(VERSION)$*.1
+ 
+ install-man: check-man-tools man do-install-man
+ 
+Index: linux/tools/perf/util/Build
+===================================================================
+--- linux.orig/tools/perf/util/Build
++++ linux/tools/perf/util/Build
+@@ -193,6 +193,7 @@ CFLAGS_libstring.o     += -Wno-unused-pa
+ CFLAGS_hweight.o       += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
+ CFLAGS_parse-events.o  += -Wno-redundant-decls
+ CFLAGS_header.o        += -include $(OUTPUT)PERF-VERSION-FILE
++CFLAGS_vdso.o		+= -DPERFEXECDIR='"$(perfexec_instdir_SQ)"'
+ 
+ $(OUTPUT)util/kallsyms.o: ../lib/symbol/kallsyms.c FORCE
+ 	$(call rule_mkdir)
+Index: linux/tools/perf/util/vdso.c
+===================================================================
+--- linux.orig/tools/perf/util/vdso.c
++++ linux/tools/perf/util/vdso.c
+@@ -52,12 +52,12 @@ static struct vdso_info *vdso_info__new(
+ 		.vdso32  = {
+ 			.temp_file_name = VDSO__TEMP_FILE_NAME,
+ 			.dso_name = DSO__NAME_VDSO32,
+-			.read_prog = "perf-read-vdso32",
++			.read_prog = PERFEXECDIR "/perf-read-vdso32",
+ 		},
+ 		.vdsox32  = {
+ 			.temp_file_name = VDSO__TEMP_FILE_NAME,
+ 			.dso_name = DSO__NAME_VDSOX32,
+-			.read_prog = "perf-read-vdsox32",
++			.read_prog = PERFEXECDIR "/perf-read-vdsox32",
+ 		},
+ #endif
+ 	};
diff --git a/meta-isar/recipes-kernel/linux-perf/linux-perf-4.19_4.19.160.bb b/meta-isar/recipes-kernel/linux-perf/linux-perf-4.19_4.19.160.bb
new file mode 100644
index 0000000..638741c
--- /dev/null
+++ b/meta-isar/recipes-kernel/linux-perf/linux-perf-4.19_4.19.160.bb
@@ -0,0 +1,15 @@
+# This software is a part of ISAR.
+# Copyright (c) Siemens AG, 2021
+#
+# SPDX-License-Identifier: MIT
+KERNEL_PERF_COMPAT = "4.19"
+
+SRC_URI += " \
+	https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-${PV}.tar.xz \
+	file://4.19/tools-perf-version.patch; \
+	file://4.19/tools-perf-install.patch; \
+	file://4.19/tools-perf-python.patch; \
+"
+SRC_URI[sha256sum] = "18345206f9c61e8adafa5204d0ca0b8619f1d9aafd70cbd5cb0fbf1faf521585"
+
+require recipes-kernel/linux-perf/linux-perf.inc
diff --git a/meta-isar/recipes-kernel/linux-perf/linux-perf-5.10_5.10.26.bb b/meta-isar/recipes-kernel/linux-perf/linux-perf-5.10_5.10.26.bb
new file mode 100644
index 0000000..d49b5fd
--- /dev/null
+++ b/meta-isar/recipes-kernel/linux-perf/linux-perf-5.10_5.10.26.bb
@@ -0,0 +1,15 @@
+# This software is a part of ISAR.
+# Copyright (c) Siemens AG, 2021
+#
+# SPDX-License-Identifier: MIT
+KERNEL_PERF_COMPAT = "5.10"
+
+SRC_URI += " \
+	https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-${PV}.tar.xz \
+	file://5.10/tools-perf-version.patch; \
+	file://5.10/tools-perf-install.patch; \
+	file://5.10/tools-perf-python.patch; \
+"
+SRC_URI[sha256sum] = "fc532833f1ac167f363f1b9de85db39d2d635ab516f66dc381bdd70804601482"
+
+require recipes-kernel/linux-perf/linux-perf.inc
diff --git a/meta-isar/recipes-kernel/linux-perf/linux-perf.inc b/meta-isar/recipes-kernel/linux-perf/linux-perf.inc
new file mode 100644
index 0000000..8f426ad
--- /dev/null
+++ b/meta-isar/recipes-kernel/linux-perf/linux-perf.inc
@@ -0,0 +1,47 @@
+# Kernel specific linux-perf-<KR> package
+#
+# This software is a part of ISAR.
+# Copyright (c) Siemens AG, 2021
+#
+# SPDX-License-Identifier: MIT
+#
+# This recipe packages the perf tools independently
+# of the kernel build. By that, it is possible to
+# patch the perf package while still using an upstream kernel
+#
+# To build perf for a new (upstream) kernel, include this
+# recipe in a file "linux-perf-<KR>_<KR-Full>".
+# E.g. linux-perf-5.10_5.10.13
+# In this recipe, set SRC_URI to the kernel sources and add your patches
+#
+# Note: only major and minor versions of the kernel have to match,
+# the patch level should be irrelevant.
+
+inherit dpkg
+
+MAINTAINER ?= "Felix Moessbauer <felix.moessbauer@siemens.com>"
+CHANGELOG_V ?= "${PV}+rtcloud"
+
+SRC_URI += " \
+  file://debian \
+"
+S = "${WORKDIR}/linux-${PV}"
+
+TEMPLATE_FILES += "debian/control.tmpl"
+TEMPLATE_VARS += "KERNEL_PERF_COMPAT"
+
+do_prepare_build[cleandirs] += "${S}/debian"
+
+do_prepare_build() {
+  deb_debianize
+  cp ${WORKDIR}/debian/control ${S}/debian/
+  cp ${WORKDIR}/debian/rules ${S}/debian/
+  echo "native" > ${S}/debian/source
+  echo "debian/binarypackage/usr /" > ${S}/debian/linux-perf-${KERNEL_PERF_COMPAT}.install
+  deb_add_changelog
+}
+
+dpkg_runbuild_prepend() {
+  export DEB_BUILD_OPTIONS="nocheck"
+  export KERNEL_PERF_COMPAT="${KERNEL_PERF_COMPAT}"
+}
