* [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 an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.