On Tuesday 16 May 2017 07:35 AM, Atsushi Kumagai wrote:
Hi Atsushi,

Thanks for the testing.

On Wednesday 10 May 2017 01:37 PM, Atsushi Kumagai wrote:
Hi Atsushi,

On Friday 28 April 2017 12:22 PM, Atsushi Kumagai wrote:
Hello Pratyush,

Thanks for your report, I have received this.
I'm on vacation until Mar 8, I'll review it when I return from vacation.

Any further comment on it?
Otherwise, I will send a v2 after accommodating concern from Xunlei.

Unfortunately, it doesn't seem like I can make time anymore for review this 
week,
but at least this patch doesn't seem to work in my environment (linux 4.8 
without kaslr).
Do you have any ideas ?

I see, why it would have caused. I have not tested this case, but I hope my v2
should not have this issue.

Umm, v2 still doesn't work in my environment...
It seems that I have to investigate this deeper.

Hummm, I thought we would see file_vmcoreinfo as NULL in get_kaslr_offset_x86_64() in your case. However, it's not true.

I think, it will have to be initialized with NULL in main().

Can you please try following fixup on top of this series:


diff --git a/makedumpfile.c b/makedumpfile.c
index 57235690569e..0fd485ccd45d 100644
--- a/makedumpfile.c
+++ b/makedumpfile.c
@@ -11076,6 +11076,7 @@ main(int argc, char *argv[])
                    strerror(errno));
                goto out;
        }
+       info->file_vmcoreinfo = NULL;
        info->fd_vmlinux = -1;
        info->fd_xen_syms = -1;
        info->fd_memory = -1;


Thanks for testing it thoroughly.

~Pratyush


  $ cat scrub.conf
  [vmlinux]
  erase modules size 50
  $

  (gdb) r -cd31 -x vmlinux --config scrub.conf vmcore dumpfile.cd31
  Starting program: /work/kdump_utils/makedumpfile/makedumpfile -cd31 -x 
vmlinux --config scrub.conf vmcore dumpfile.cd31
  warning: no loadable sections found in added symbol-file system-supplied DSO 
at 0x7ffff7ffd000
  [Thread debugging using libthread_db enabled]

  Program received signal SIGSEGV, Segmentation fault.
  0x000000308366ee0d in fseek () from /lib64/libc.so.6
  Missing separate debuginfos, use: debuginfo-install 
bzip2-libs-1.0.5-7.el6_0.x86_64 elfutils-libelf-0.152-1.el6.x86_64 
elfutils-libs-0.152-1.el6.x86_64 glibc-2.12-1.132.el6.x86_64 
libgcc-4.4.7-4.el6.x86_64 libstdc++-4.4.7-4.el6.x86_64 
snappy-1.1.0-1.el6.x86_64 xz-libs-4.999.9-0.3.beta.20091007git.el6.x86_64 
zlib-1.2.3-29.el6.x86_64
  (gdb) bt
  #0  0x000000308366ee0d in fseek () from /lib64/libc.so.6
  #1  0x0000000000420937 in get_kaslr_offset_x86_64 
(vaddr=18446744071589596288) at arch/x86_64.c:43
  #2  0x0000000000414310 in resolve_config_entry (ce=0x701370, base_vaddr=<value 
optimized out>, base_struct_name=0x0) at erase_info.c:1091
  #3  0x0000000000415a89 in get_config_symbol_addr (filter_symbol=0x701370, 
size_symbol=0x701430) at erase_info.c:1264
  #4  update_filter_info (filter_symbol=0x701370, size_symbol=0x701430) at 
erase_info.c:1579
  #5  0x0000000000416543 in process_config (name_config=<value optimized out>) 
at erase_info.c:1789
  #6  process_config_file (name_config=<value optimized out>) at 
erase_info.c:1862
  #7  0x0000000000417c57 in gather_filter_info () at erase_info.c:2356
  #8  0x0000000000443e5b in create_dumpfile () at makedumpfile.c:9870
  #9  0x00000000004457ae in main (argc=<value optimized out>, argv=<value 
optimized out>) at makedumpfile.c:11349
  (gdb)

Thanks,
Atsushi Kuamgai

~Pratyush


Program received signal SIGSEGV, Segmentation fault.
0x00007ffff6be49f5 in fseek () from /lib64/libc.so.6
Missing separate debuginfos, use: debuginfo-install 
bzip2-libs-1.0.6-13.el7.x86_64 elfutils-libelf-0.163-3.el7.x86_64
elfutils-libs-0.163-3.el7.x86_64 glibc-2.17-105.el7.x86_64 
libgcc-4.8.5-4.el7.x86_64 libstdc++-4.8.5-4.el7.x86_64
snappy-1.1.0-3.el7.x86_64 xz-libs-5.1.2-12alpha.el7.x86_64 
zlib-1.2.7-15.el7.x86_64
(gdb) bt
#0  0x00007ffff6be49f5 in fseek () from /lib64/libc.so.6
#1  0x0000000000429d38 in read_vmcoreinfo_symbol (str_symbol=0x44cb0c 
"SYMBOL(_stext)=") at makedumpfile.c:2384
#2  0x000000000042097a in get_kaslr_offset_x86_64 (vaddr=18446744071589596288) 
at arch/x86_64.c:45
#3  0x0000000000414310 in resolve_config_entry (ce=0x701370, base_vaddr=<optimized 
out>, base_struct_name=0x0)
    at erase_info.c:1091
#4  0x0000000000415a89 in get_config_symbol_addr (base_struct_name=0x0, 
base_vaddr=0, ce=0x701370) at erase_info.c:1264
#5  update_filter_info (filter_symbol=0x701370, size_symbol=0x701430) at 
erase_info.c:1579
#6  0x0000000000416543 in process_config (config=<optimized out>) at 
erase_info.c:1789
#7  process_config_file (name_config=<optimized out>) at erase_info.c:1862
#8  0x0000000000417c57 in gather_filter_info () at erase_info.c:2356
#9  0x0000000000443ccb in create_dumpfile () at makedumpfile.c:9863
#10 0x000000000044561e in main (argc=<optimized out>, argv=<optimized out>) at 
makedumpfile.c:11342
(gdb)


Thanks,
Atsushi Kumagai

~Pratyush



Thanks,
Atsushi Kumagai

Hi All,

We came across another failure in makedumpfile when kaslr is enabled. This
failure occurs when we try re-filtering. We try to erase some symbol from a
dumpfile which was copied/compressed from /proc/vmcore using makedumpfile.

We have very limited symbol information in vmcoreinfo. So symbols to be
erased may not be available in vmcoreinfo and we look for it in vmlinux.
However,  symbol address from vmlinux is a static address which differs
>from run time address with KASLR_OFFSET. Therefore, reading any "virtual
address of vmlinux" from vmcore is not possible.

These patches finds runtime  KASLR offset and then calculates run time
address of symbols read from vmlinux.

Since, I am not an expert of x86, and these patches touch x86 part of
makedumpfile, therefore I have CCed x86 experts. Please, provide your
review comment and let me know if you think there could have been a better
way to resolve this issue.

thanks

~Pratyush

Pratyush Anand (2):
 makedumpfile: add runtime kaslr offset if it exists
 x86_64: calculate page_offset in case of re-filtering

arch/x86_64.c  | 45 +++++++++++++++++++++++++++++++++++++++++++--
erase_info.c   |  1 +
makedumpfile.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
makedumpfile.h | 15 +++++++++++++++
4 files changed, 103 insertions(+), 2 deletions(-)

--
2.9.3




_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec




_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec


_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to