Hi Alex, -----Original Message----- > HAGIO KAZUHITO(萩尾 一仁) <k-hagio-ab@xxxxxxx> writes: > > > > > Thank you for catching this and the patch. > > > > but do you know the kernel patch corresponding to this patch, i.e. adds > > the OFFSET(init_uts_ns.name) (strictly, OFFSET(uts_namespace.name) probably) > > entry to vmcoreinfo? The makedumpfile usually just read it from vmcore, > > so cannot calculate without debug info in vmlinux. > > > > If it has not been posted yet, we need to do. The best situation is > > that the patch is merged into linux-next first and then merged into > > mainline together with the commit 9a56493f6942. > > > > Is it possible for you? otherwise, anyone or I might try. > > > > Hi Kazu, > > my patch doesn't really work :( The offset from 'init_uts_ns' to 'name' > has changed from 4 to 0 but how do you handle that in makedumpfile w/o > first knowing what kernel version that is. It is a chicken-and-egg > problem. Not sure how to solve it. The Linux kernel doesn't provide > the symbol 'init_ns_ns.name' as i initially thought and ,therefore, > i based my patch on a wrong assumption. It would be nice if kernel just > provided a symbol for 'init_uts_ns.name' instead of 'init_uts_ns' which > might change anytime. Yes, I think there are two options to solve it: (1) Replace VMCOREINFO_SYMBOL(init_uts_ns) with VMCOREINFO_SYMBOL(init_uts_ns.name) in vmcoreinfo (kernel/crash_core.c, which you checked) and makedumpfile side: if (SYMBOL(init_uts_ns.name) != NOT_FOUND_SYMBOL) utsname = SYMBOL(init_uts_ns.name) else if (SYMBOL(init_uts_ns) != NOT_FOUND_SYMBOL) utsname = SYMBOL(init_uts_ns) + sizeof(int) ... According to the definition of the VMCOREINFO_SYMBO() macro, this will work file, but I've not seen such a usage (specifies a member of struct) and it would be better to avoid. And we will have to have a bit tricky part in makedumpfile source for "-x vmlinux" option support. Also I'm not sure whether there are other users than makedumpfile depending on the current SYMBOL(init_uts_ns) and whether we can change it. (probably no other user, though..) (2) Append VMCOREINFO_OFFSET(uts_namespace, name) to vmcoreinfo. and makedumpfile side: if (SYMBOL(init_uts_ns) != NOT_FOUND_SYMBOL) { if (OFFSET(uts_namespace.name) != NOT_FOUND_STRUCTURE) utsname = SYMBOL(init_uts_ns) + OFFSET(uts_namespace.name) else utsname = SYMBOL(init_uts_ns) + sizeof(int) ... The VMCOREINFO_OFFSET() macro takes a struct name and its member name. This option doesn't change the current SYMBOL(init_uts_ns). So personally I would prefer (2) rather than (1). If you can post a kernel patch, please cc this kexec list. Thanks, Kazu _______________________________________________ kexec mailing list kexec@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/kexec