* [PATCH 0/2] perf tools: Urgent fixes
@ 2015-09-24 10:05 Adrian Hunter
2015-09-24 10:05 ` [PATCH 1/2] perf intel-pt: Remove no_force_psb from documentation Adrian Hunter
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Adrian Hunter @ 2015-09-24 10:05 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo; +Cc: Jiri Olsa, linux-kernel
Hi
Here are a couple of urgent fixes for v4.3.
The "Fix copying of /proc/kcore" problem goes back to v3.13
if you think it is important enough for stable.
Adrian Hunter (2):
perf intel-pt: Remove no_force_psb from documentation
perf tools: Fix copying of /proc/kcore
tools/perf/Documentation/intel-pt.txt | 15 ---------------
tools/perf/util/symbol-elf.c | 35 +++++++++++++----------------------
2 files changed, 13 insertions(+), 37 deletions(-)
Regards
Adrian
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH 1/2] perf intel-pt: Remove no_force_psb from documentation 2015-09-24 10:05 [PATCH 0/2] perf tools: Urgent fixes Adrian Hunter @ 2015-09-24 10:05 ` Adrian Hunter 2015-09-26 6:21 ` [tip:perf/urgent] " tip-bot for Adrian Hunter 2015-09-24 10:05 ` [PATCH 2/2] perf tools: Fix copying of /proc/kcore Adrian Hunter 2015-09-25 13:49 ` [PATCH 0/2] perf tools: Urgent fixes Arnaldo Carvalho de Melo 2 siblings, 1 reply; 6+ messages in thread From: Adrian Hunter @ 2015-09-24 10:05 UTC (permalink / raw) To: Arnaldo Carvalho de Melo; +Cc: Jiri Olsa, linux-kernel no_force_psb was dropped as a late change to the kernel driver. Consequently, remove it from the documentation. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> --- tools/perf/Documentation/intel-pt.txt | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/tools/perf/Documentation/intel-pt.txt b/tools/perf/Documentation/intel-pt.txt index 4a0501d7a3b4..c94c9de3173e 100644 --- a/tools/perf/Documentation/intel-pt.txt +++ b/tools/perf/Documentation/intel-pt.txt @@ -364,21 +364,6 @@ cyc_thresh Specifies how frequently CYC packets are produced - see cyc CYC packets are not requested by default. -no_force_psb This is a driver option and is not in the IA32_RTIT_CTL MSR. - - It stops the driver resetting the byte count to zero whenever - enabling the trace (for example on context switches) which in - turn results in no PSB being forced. However some processors - will produce a PSB anyway. - - In any case, there is still a PSB when the trace is enabled for - the first time. - - no_force_psb can be used to slightly decrease the trace size but - may make it harder for the decoder to recover from errors. - - no_force_psb is not selected by default. - new snapshot option ------------------- -- 1.9.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [tip:perf/urgent] perf intel-pt: Remove no_force_psb from documentation 2015-09-24 10:05 ` [PATCH 1/2] perf intel-pt: Remove no_force_psb from documentation Adrian Hunter @ 2015-09-26 6:21 ` tip-bot for Adrian Hunter 0 siblings, 0 replies; 6+ messages in thread From: tip-bot for Adrian Hunter @ 2015-09-26 6:21 UTC (permalink / raw) To: linux-tip-commits Cc: adrian.hunter, acme, mingo, hpa, jolsa, linux-kernel, tglx Commit-ID: 597ee40722bf05195f91a41e88e15b79bdab152c Gitweb: http://git.kernel.org/tip/597ee40722bf05195f91a41e88e15b79bdab152c Author: Adrian Hunter <adrian.hunter@intel.com> AuthorDate: Thu, 24 Sep 2015 13:05:21 +0300 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Fri, 25 Sep 2015 10:42:38 -0300 perf intel-pt: Remove no_force_psb from documentation no_force_psb was dropped as a late change to the kernel driver. Consequently, remove it from the documentation. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Cc: Jiri Olsa <jolsa@redhat.com> Link: http://lkml.kernel.org/r/1443089122-19082-2-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/Documentation/intel-pt.txt | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/tools/perf/Documentation/intel-pt.txt b/tools/perf/Documentation/intel-pt.txt index 4a0501d..c94c9de 100644 --- a/tools/perf/Documentation/intel-pt.txt +++ b/tools/perf/Documentation/intel-pt.txt @@ -364,21 +364,6 @@ cyc_thresh Specifies how frequently CYC packets are produced - see cyc CYC packets are not requested by default. -no_force_psb This is a driver option and is not in the IA32_RTIT_CTL MSR. - - It stops the driver resetting the byte count to zero whenever - enabling the trace (for example on context switches) which in - turn results in no PSB being forced. However some processors - will produce a PSB anyway. - - In any case, there is still a PSB when the trace is enabled for - the first time. - - no_force_psb can be used to slightly decrease the trace size but - may make it harder for the decoder to recover from errors. - - no_force_psb is not selected by default. - new snapshot option ------------------- ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] perf tools: Fix copying of /proc/kcore 2015-09-24 10:05 [PATCH 0/2] perf tools: Urgent fixes Adrian Hunter 2015-09-24 10:05 ` [PATCH 1/2] perf intel-pt: Remove no_force_psb from documentation Adrian Hunter @ 2015-09-24 10:05 ` Adrian Hunter 2015-09-26 6:22 ` [tip:perf/urgent] " tip-bot for Adrian Hunter 2015-09-25 13:49 ` [PATCH 0/2] perf tools: Urgent fixes Arnaldo Carvalho de Melo 2 siblings, 1 reply; 6+ messages in thread From: Adrian Hunter @ 2015-09-24 10:05 UTC (permalink / raw) To: Arnaldo Carvalho de Melo; +Cc: Jiri Olsa, linux-kernel A copy of /proc/kcore containing the kernel text can be made to the buildid cache. e.g. perf buildid-cache -v -k /proc/kcore To workaround objdump limitations, a copy is also made when annotating against /proc/kcore. The copying process stops working from libelf about v1.62 onwards (the problem was found with v1.63). The cause is that a call to gelf_getphdr() in kcore__add_phdr() fails because additional validation has been added to gelf_getphdr(). The use of gelf_getphdr() is a misguided attempt to get default initialization of the Gelf_Phdr structure. That should not be necessary because every member of the Gelf_Phdr structure is subsequently assigned. So just remove the call to gelf_getphdr(). Similarly, a call to gelf_getehdr() in gelf_kcore__init() can be removed also. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> --- tools/perf/util/symbol-elf.c | 35 +++++++++++++---------------------- 1 file changed, 13 insertions(+), 22 deletions(-) diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c index f78ea3dc4c08..475d88d0a1c9 100644 --- a/tools/perf/util/symbol-elf.c +++ b/tools/perf/util/symbol-elf.c @@ -1271,8 +1271,6 @@ out_close: static int kcore__init(struct kcore *kcore, char *filename, int elfclass, bool temp) { - GElf_Ehdr *ehdr; - kcore->elfclass = elfclass; if (temp) @@ -1289,9 +1287,7 @@ static int kcore__init(struct kcore *kcore, char *filename, int elfclass, if (!gelf_newehdr(kcore->elf, elfclass)) goto out_end; - ehdr = gelf_getehdr(kcore->elf, &kcore->ehdr); - if (!ehdr) - goto out_end; + memset(&kcore->ehdr, 0, sizeof(GElf_Ehdr)); return 0; @@ -1348,23 +1344,18 @@ static int kcore__copy_hdr(struct kcore *from, struct kcore *to, size_t count) static int kcore__add_phdr(struct kcore *kcore, int idx, off_t offset, u64 addr, u64 len) { - GElf_Phdr gphdr; - GElf_Phdr *phdr; - - phdr = gelf_getphdr(kcore->elf, idx, &gphdr); - if (!phdr) - return -1; - - phdr->p_type = PT_LOAD; - phdr->p_flags = PF_R | PF_W | PF_X; - phdr->p_offset = offset; - phdr->p_vaddr = addr; - phdr->p_paddr = 0; - phdr->p_filesz = len; - phdr->p_memsz = len; - phdr->p_align = page_size; - - if (!gelf_update_phdr(kcore->elf, idx, phdr)) + GElf_Phdr phdr = { + .p_type = PT_LOAD, + .p_flags = PF_R | PF_W | PF_X, + .p_offset = offset, + .p_vaddr = addr, + .p_paddr = 0, + .p_filesz = len, + .p_memsz = len, + .p_align = page_size, + }; + + if (!gelf_update_phdr(kcore->elf, idx, &phdr)) return -1; return 0; -- 1.9.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [tip:perf/urgent] perf tools: Fix copying of /proc/kcore 2015-09-24 10:05 ` [PATCH 2/2] perf tools: Fix copying of /proc/kcore Adrian Hunter @ 2015-09-26 6:22 ` tip-bot for Adrian Hunter 0 siblings, 0 replies; 6+ messages in thread From: tip-bot for Adrian Hunter @ 2015-09-26 6:22 UTC (permalink / raw) To: linux-tip-commits Cc: acme, hpa, jolsa, tglx, linux-kernel, mingo, adrian.hunter Commit-ID: b5cabbcbd157a4bf5a92dfc85134999a3b55342d Gitweb: http://git.kernel.org/tip/b5cabbcbd157a4bf5a92dfc85134999a3b55342d Author: Adrian Hunter <adrian.hunter@intel.com> AuthorDate: Thu, 24 Sep 2015 13:05:22 +0300 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Fri, 25 Sep 2015 10:45:50 -0300 perf tools: Fix copying of /proc/kcore A copy of /proc/kcore containing the kernel text can be made to the buildid cache. e.g. perf buildid-cache -v -k /proc/kcore To workaround objdump limitations, a copy is also made when annotating against /proc/kcore. The copying process stops working from libelf about v1.62 onwards (the problem was found with v1.63). The cause is that a call to gelf_getphdr() in kcore__add_phdr() fails because additional validation has been added to gelf_getphdr(). The use of gelf_getphdr() is a misguided attempt to get default initialization of the Gelf_Phdr structure. That should not be necessary because every member of the Gelf_Phdr structure is subsequently assigned. So just remove the call to gelf_getphdr(). Similarly, a call to gelf_getehdr() in gelf_kcore__init() can be removed also. Committer notes: Note to stable@kernel.org, from Adrian in the cover letter for this patchkit: The "Fix copying of /proc/kcore" problem goes back to v3.13 if you think it is important enough for stable. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: stable@kernel.org Link: http://lkml.kernel.org/r/1443089122-19082-3-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/util/symbol-elf.c | 35 +++++++++++++---------------------- 1 file changed, 13 insertions(+), 22 deletions(-) diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c index f78ea3d..475d88d 100644 --- a/tools/perf/util/symbol-elf.c +++ b/tools/perf/util/symbol-elf.c @@ -1271,8 +1271,6 @@ out_close: static int kcore__init(struct kcore *kcore, char *filename, int elfclass, bool temp) { - GElf_Ehdr *ehdr; - kcore->elfclass = elfclass; if (temp) @@ -1289,9 +1287,7 @@ static int kcore__init(struct kcore *kcore, char *filename, int elfclass, if (!gelf_newehdr(kcore->elf, elfclass)) goto out_end; - ehdr = gelf_getehdr(kcore->elf, &kcore->ehdr); - if (!ehdr) - goto out_end; + memset(&kcore->ehdr, 0, sizeof(GElf_Ehdr)); return 0; @@ -1348,23 +1344,18 @@ static int kcore__copy_hdr(struct kcore *from, struct kcore *to, size_t count) static int kcore__add_phdr(struct kcore *kcore, int idx, off_t offset, u64 addr, u64 len) { - GElf_Phdr gphdr; - GElf_Phdr *phdr; - - phdr = gelf_getphdr(kcore->elf, idx, &gphdr); - if (!phdr) - return -1; - - phdr->p_type = PT_LOAD; - phdr->p_flags = PF_R | PF_W | PF_X; - phdr->p_offset = offset; - phdr->p_vaddr = addr; - phdr->p_paddr = 0; - phdr->p_filesz = len; - phdr->p_memsz = len; - phdr->p_align = page_size; - - if (!gelf_update_phdr(kcore->elf, idx, phdr)) + GElf_Phdr phdr = { + .p_type = PT_LOAD, + .p_flags = PF_R | PF_W | PF_X, + .p_offset = offset, + .p_vaddr = addr, + .p_paddr = 0, + .p_filesz = len, + .p_memsz = len, + .p_align = page_size, + }; + + if (!gelf_update_phdr(kcore->elf, idx, &phdr)) return -1; return 0; ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 0/2] perf tools: Urgent fixes 2015-09-24 10:05 [PATCH 0/2] perf tools: Urgent fixes Adrian Hunter 2015-09-24 10:05 ` [PATCH 1/2] perf intel-pt: Remove no_force_psb from documentation Adrian Hunter 2015-09-24 10:05 ` [PATCH 2/2] perf tools: Fix copying of /proc/kcore Adrian Hunter @ 2015-09-25 13:49 ` Arnaldo Carvalho de Melo 2 siblings, 0 replies; 6+ messages in thread From: Arnaldo Carvalho de Melo @ 2015-09-25 13:49 UTC (permalink / raw) To: Adrian Hunter; +Cc: Jiri Olsa, linux-kernel Em Thu, Sep 24, 2015 at 01:05:20PM +0300, Adrian Hunter escreveu: > Hi > > Here are a couple of urgent fixes for v4.3. > > The "Fix copying of /proc/kcore" problem goes back to v3.13 > if you think it is important enough for stable. I added a Cc: stable@kernel.org and your notes to the commit log. Thanks, applied. - Arnaldo ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2015-09-26 6:22 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-09-24 10:05 [PATCH 0/2] perf tools: Urgent fixes Adrian Hunter 2015-09-24 10:05 ` [PATCH 1/2] perf intel-pt: Remove no_force_psb from documentation Adrian Hunter 2015-09-26 6:21 ` [tip:perf/urgent] " tip-bot for Adrian Hunter 2015-09-24 10:05 ` [PATCH 2/2] perf tools: Fix copying of /proc/kcore Adrian Hunter 2015-09-26 6:22 ` [tip:perf/urgent] " tip-bot for Adrian Hunter 2015-09-25 13:49 ` [PATCH 0/2] perf tools: Urgent fixes Arnaldo Carvalho de Melo
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox