kdump from x86_64 using i386 capture kernel
Subsystems (2)
Hi.
I would like to do generic capture system which could be used for x86_64 and i386 first kernels. This system should be minimal, only capable to copy vmcore image over network for futher analysis. First kernel version is 2.6.23.9, I choose 2.6.16.y for capture.
I have some problems with vmcore when origin is x86_64. With 32 bit kexec crash utility do not recognize it, when I use 64 bit kexec /proc/vmcore file has size == 0. Reading form oldmem is fine, I can for example get old dmesg from it.
Now questions:
It is possible to achieve valid vmcore when first is x86_64 and capture is i386 ?
If no, is there some way to convert oldmem to valid vmcore in this scenario? Or maybe is possible to use crash with copy of oldmem (I try but without any success) ?
Regards
Stanislaw Gruszka
_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec
Quoted 7 lines · Stanislaw Gruszka
Hi.
I would like to do generic capture system which could be used for
x86_64and i386 first kernels. This system should be minimal, only capable to copy vmcore image over network for futher analysis. First kernel version is 2.6.23.9, I choose 2.6.16.y for capture.
Quoted 8 lines
I have some problems with vmcore when origin is
x86_64. With 32 bit kexec crash utility do not recognize it, when I use 64 bit kexec/proc/vmcorefile has size == 0. Reading form oldmem is fine, I can for example get old dmesg from it.Now questions:
It is possible to achieve valid vmcore when first isx86_64and capture is i386 ?
Possible I think, but not reliable. If oldmem has regions to capture above the 4GB range, a 386 kernel won't be able to access those addresses, and as such, you won't get a complete vmcore.
Quoted 4 lines
If no, is there some way to convert oldmem to valid vmcore in this scenario? Or maybe is possible to use crash with copy of oldmem (I try but without any success) ?
Doubtful, given that you may not be able to access all the needed data in the first place.
I'm also confused about what exactly you are trying to accomplish. Why are you trying to use an x86 kernel to capture a x86_64 vmcore? The available kexec-tools package in Fedora and RHEL provides a arch independent utility to build a minimal initrd to capute vmcores via a number of targets, including via nfs and ssh already (mkdumprd), have you looked at the Fedora package? It may well provide most/all of what you are trying to do.
Regards
Neil
Quoted 7 lines
Regards
Stanislaw Gruszka_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec
Signature · 13 lines
/*************************************************** *Neil Horman *Software Engineer *Red Hat, Inc. *[email protected] *gpg keyid: 1024D / 0x92A74FA1 *http://pgp.mit.edu ***************************************************/ _______________________________________________ kexec mailing list [email protected] http://lists.infradead.org/mailman/listinfo/kexec
Quoted 5 lines · Neil Horman
Quoted 2 lines
It is possible to achieve valid vmcore when first is
x86_64and capture is i386 ?Possible I think, but not reliable. If oldmem has regions to capture above the 4GB range, a 386 kernel won't be able to access those addresses, and as such, you won't get a complete vmcore.
Uffff, I missed this fact.
Quoted 2 lines
I'm also confused about what exactly you are trying to accomplish. Why are you trying to use an x86 kernel to capture a
x86_64vmcore? The available
System load from flash and there is limited space. I tried to do one capture kernel, but see this was bad idea. I will scarify another 2MB and make separate image for x86_64.
Quoted 4 lines
kexec-tools package in Fedora and RHEL provides a arch independent utility to build a minimal initrd to capute vmcores via a number of targets, including via nfs and ssh already (mkdumprd), have you looked at the Fedora package? It may well provide most/all of what you are trying to do.
I will see, thanks.
Stanislaw Gruszka
_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec
Quoted 6 lines · Stanislaw Gruszka
Quoted 5 lines · Neil Horman
Quoted 2 lines
It is possible to achieve valid vmcore when first is
x86_64and capture is i386 ?Possible I think, but not reliable. If oldmem has regions to capture above the 4GB range, a 386 kernel won't be able to access those addresses, and as such, you won't get a complete vmcore.
Quoted 8 lines
Uffff, I missed this fact.
Quoted 2 lines
I'm also confused about what exactly you are trying to accomplish. Why are you trying to use an x86 kernel to capture a
x86_64vmcore? The availableSystem load from flash and there is limited space. I tried to do one capture kernel, but see this was bad idea. I will scarify another 2MB and make separate image for
x86_64.
I'm still not quite understanding, the kernel image that you used to initally boot the box should be suitable for loading as the kdump image. Even if you're using i386 instead of x86_64 as your kdump kernel, you still need to maintain two images.
Quoted 6 lines
Quoted 4 lines
kexec-tools package in Fedora and RHEL provides a arch independent utility to build a minimal initrd to capute vmcores via a number of targets, including via nfs and ssh already (mkdumprd), have you looked at the Fedora package? It may well provide most/all of what you are trying to do.
I will see, thanks.
Let me know if you have questions.
Neil
Quoted 1 line
Stanislaw Gruszka
Signature · 13 lines
/*************************************************** *Neil Horman *Software Engineer *Red Hat, Inc. *[email protected] *gpg keyid: 1024D / 0x92A74FA1 *http://pgp.mit.edu ***************************************************/ _______________________________________________ kexec mailing list [email protected] http://lists.infradead.org/mailman/listinfo/kexec
Quoted 16 lines · Neil Horman
Quoted 6 lines · Stanislaw Gruszka
Quoted 5 lines · Neil Horman
Quoted 2 lines
It is possible to achieve valid vmcore when first is
x86_64and capture is i386 ?Possible I think, but not reliable. If oldmem has regions to capture above the 4GB range, a 386 kernel won't be able to access those addresses, and as such, you won't get a complete vmcore.
Quoted 8 lines
Uffff, I missed this fact.
Quoted 2 lines
I'm also confused about what exactly you are trying to accomplish. Why are you trying to use an x86 kernel to capture a
x86_64vmcore? The availableSystem load from flash and there is limited space. I tried to do one capture kernel, but see this was bad idea. I will scarify another 2MB and make separate image for
x86_64.
Quoted 4 lines
I'm still not quite understanding, the kernel image that you used to initally boot the box should be suitable for loading as the kdump image. Even if you're using i386 instead of
x86_64as your kdump kernel, you still need to maintain two images.
Turn on CONFIG_RELOCATABLE and using same kernel for work and capture is the best for size requirement. However size is not only one requirement, I need to capture kernel work reliably. RELOCATABLE is masked as experimental, so I like to avoid it. Additionally, if I use same kernel for capture, it could have same bugs and crash too during start up. So I decided to use separate 2.6.16.y kernel for capture. This version, maintained by Adrian Bunk, have many bug fixes and I think is very stable. Kernel config is different too, I do not only remove device drivers and modules, but also hardcoded things from Process Type and Features, Power Management and so on ... , just enough to boot and setup network with minimal probability of crash.
Stanislaw Gruszka
_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec
Quoted 21 lines · Stanislaw Gruszka
Quoted 16 lines · Neil Horman
Quoted 6 lines · Stanislaw Gruszka
Quoted 5 lines · Neil Horman
Quoted 2 lines
It is possible to achieve valid vmcore when first is
x86_64and capture is i386 ?Possible I think, but not reliable. If oldmem has regions to capture above the 4GB range, a 386 kernel won't be able to access those addresses, and as such, you won't get a complete vmcore.
Quoted 8 lines
Uffff, I missed this fact.
Quoted 2 lines
I'm also confused about what exactly you are trying to accomplish. Why are you trying to use an x86 kernel to capture a
x86_64vmcore? The availableSystem load from flash and there is limited space. I tried to do one capture kernel, but see this was bad idea. I will scarify another 2MB and make separate image for
x86_64.Quoted 4 lines
I'm still not quite understanding, the kernel image that you used to initally boot the box should be suitable for loading as the kdump image. Even if you're using i386 instead of
x86_64as your kdump kernel, you still need to maintain two images.
Quoted 11 lines
Turn on
CONFIG_RELOCATABLEand using same kernel for work and capture is the best for size requirement. However size is not only one requirement, I need to capture kernel work reliably. RELOCATABLE is masked as experimental, so I like to avoid it. Additionally, if I use same kernel for capture, it could have same bugs and crash too during start up. So I decided to use separate 2.6.16.y kernel for capture. This version, maintained by Adrian Bunk, have many bug fixes and I think is very stable. Kernel config is different too, I do not only remove device drivers and modules, but also hardcoded things from Process Type and Features, Power Management and so on ... , just enough to boot and setup network with minimal probability of crash.
I understand your concerns, but Just so that you know, we've been using CONFIG_RELOCATABLE in RHEL5 for some time now, without issue (at least not as it relates to the relocatable feature). While its true that, if a kernel crashes during boot up, it is like to crash again during kdump boot up, the inverse is also true. Once you have a reasonably stable system that boots reliably, you can expect the kdump kernel to boot reliably as well. Turning off relocatability won't help with that (unless the problem specifically relates to the relocatable code) (i.e. if you have an issue with in insmodding of a network driver), it will crash on normal boot and kdump kernel boot, regadless of weather its relocatable or not).
Neil
Quoted 1 line
Stanislaw Gruszka
Signature · 13 lines
/*************************************************** *Neil Horman *Software Engineer *Red Hat, Inc. *[email protected] *gpg keyid: 1024D / 0x92A74FA1 *http://pgp.mit.edu ***************************************************/ _______________________________________________ kexec mailing list [email protected] http://lists.infradead.org/mailman/listinfo/kexec