IO memory read from /proc/vmcore leads to hang.
Subsystems (2)
Hi,
I found found that on my Powerpc machine there is some IO memory which will cause the box to hang if I read it. It's a custom device that was added to the board for a special purpose.
I was looking for a way to exclude this memory from the dump, and while doing that I found that kexec makes a list of memory segments that go into the core file. I was wondering why most of the kexec architecture don't appear to exclude device memory like what's listed in /proc/iomem.
Is there a good reason why that's not the case?
Daniel
_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec
Quoted 7 lines · Daniel Walker
Hi,
I found found that on my Powerpc machine there is some IO memory which will cause the box to hang if I read it. It's a custom device that was added to the board for a special purpose.
Quoted 6 lines
I was looking for a way to exclude this memory from the dump, and while doing that I found that kexec makes a list of memory segments that go into the core file. I was wondering why most of the kexec architecture don't appear to exclude device memory like what's listed in
/proc/iomem.Is there a good reason why that's not the case?
Kexec/Kdump is designed to capture entire old kernel's memory that will be available in /proc/vmcore. There is a different userspace tool called 'makedumpfile' (https://sourceforge.net/projects/makedumpfile/), which can be used to exclude certain memory pages from the dump while reading from /proc/vmcore. See if that helps you.
Thanks,
-Mahesh.
Quoted 8 lines
Daniel
_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec
_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec
Mahesh, I didn't get your email for some reason . I saw it in the Archives.
makedumpfile doesn't appear to have a way to drop free form memory areas. So I need to drop 00800000 to 00807fff , but I don't see a way to do that. Any other suggestions on how to prevent this hang ?
Quoted 10 lines · Daniel Walker
Hi,
I found found that on my Powerpc machine there is some IO memory which will cause the box to hang if I read it. It's a custom device that was added to the board for a special purpose.
I was looking for a way to exclude this memory from the dump, and while doing that I found that kexec makes a list of memory segments that go into the core file. I was wondering why most of the kexec architecture don't appear to exclude device memory like what's listed in
/proc/iomem.Is there a good reason why that's not the case?
Daniel
_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec
Second kernel should already know that it's not system ram of the first kernel and in that case makedumpfile will not dump that memory. Simple way is to pass additional kernel argument to kexec is when you load the kernel. If it works than you can think how it's better to pass this parameter. Variants might be request_resource() in first kernel or add some logic to kexec tools.
Best regards,
Maxim.
2016-07-20 22:18 GMT+03:00 Daniel Walker <[email protected]>:
Quoted 33 lines
Mahesh, I didn't get your email for some reason . I saw it in the Archives.
makedumpfile doesn't appear to have a way to drop free form memory areas. So I need to drop 00800000 to
00807fff, but I don't see a way to do that. Any other suggestions on how to prevent this hang ?Quoted 8 lines · Daniel Walker
Hi,
I found found that on my Powerpc machine there is some IO memory which will cause the box to hang if I read it. It's a custom device that was added to the board for a special purpose.
Quoted 8 lines
I was looking for a way to exclude this memory from the dump, and while doing that I found that kexec makes a list of memory segments that go into the core file. I was wondering why most of the kexec architecture don't appear to exclude device memory like what's listed in
/proc/iomem.Is there a good reason why that's not the case?
Daniel
_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec
Signature · 7 lines
Best regards, Maxim Uvarov _______________________________________________ kexec mailing list [email protected] http://lists.infradead.org/mailman/listinfo/kexec
There appears to be no code which checks what is or is not System ram,
there is nothing that checks the device tree to see what is IO memory, and nothing reads /proc/iomem .. So AFAIK nothing cares if it's IO memory, or system ram, and there's no method to config things to skip any memory in the system, except in makedumpfile which can skip symbols not IO memory.
Quoted 7 lines · Maxim Uvarov
Second kernel should already know that it's not system ram of the first kernel and in that case makedumpfile will not dump that memory. Simple way is to pass additional kernel argument to kexec is when you load the kernel. If it works than you can think how it's better to pass this parameter. Variants might be
request_resource()in first kernel or add some logic to kexec tools.
Quoted 36 lines
Best regards,
Maxim.2016-07-20 22:18 GMT+03:00 Daniel Walker <[email protected]>:
Quoted 30 lines
Mahesh, I didn't get your email for some reason . I saw it in the Archives.
makedumpfile doesn't appear to have a way to drop free form memory areas. So I need to drop 00800000 to
00807fff, but I don't see a way to do that. Any other suggestions on how to prevent this hang ?Quoted 7 lines · Daniel Walker
Hi,
I found found that on my Powerpc machine there is some IO memory which will cause the box to hang if I read it. It's a custom device that was added to the board for a special purpose.
Quoted 8 lines
I was looking for a way to exclude this memory from the dump, and while doing that I found that kexec makes a list of memory segments that go into the core file. I was wondering why most of the kexec architecture don't appear to exclude device memory like what's listed in
/proc/iomem.Is there a good reason why that's not the case?
Daniel
_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec
_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec
2016-07-21 18:19 GMT+03:00 Daniel Walker <[email protected]>:
Quoted 8 lines
There appears to be no code which checks what is or is not System ram,
there is nothing that checks the device tree to see what is IO memory, and nothing reads/proc/iomem.. So AFAIK nothing cares if it's IO memory, or system ram, and there's no method to config things to skip any memory in the system, except in makedumpfile which can skip symbols not IO memory.
Daniel, unfortunately it's long time for me when I looked to powerpc code. But I just
checked that here:
kexec-tools-2.0.6/kexec/arch/ppc64/kexec-ppc64.c
is probably what you need.
Maxim.
Quoted 56 lines · Maxim Uvarov
Quoted 53 lines
Second kernel should already know that it's not system ram of the first kernel and in that case makedumpfile will not dump that memory. Simple way is to pass additional kernel argument to kexec is when you load the kernel. If it works than you can think how it's better to pass this parameter. Variants might be
request_resource()in first kernel or add some logic to kexec tools.Best regards,
Maxim.2016-07-20 22:18 GMT+03:00 Daniel Walker <[email protected]>:
Quoted 38 lines
Mahesh, I didn't get your email for some reason . I saw it in the Archives.
makedumpfile doesn't appear to have a way to drop free form memory areas. So
I need to drop 00800000 to00807fff, but I don't see a way to do that. Any
other suggestions on how to prevent this hang ?Quoted 15 lines · Daniel Walker
Hi,
I found found that on my Powerpc machine there is some IO memory which will cause the box to hang if I read it. It's a custom device that was added
to the board for a special purpose.I was looking for a way to exclude this memory from the dump, and while doing that I found that kexec makes a list of memory segments that go into
the core file. I was wondering why most of the kexec architecture don't appear to exclude device memory like what's listed in/proc/iomem.Quoted 3 lines
Is there a good reason why that's not the case?
Daniel
_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec
Signature · 7 lines
Best regards, Maxim Uvarov _______________________________________________ kexec mailing list [email protected] http://lists.infradead.org/mailman/listinfo/kexec
Quoted 8 lines · Maxim Uvarov
2016-07-21 18:19 GMT+03:00 Daniel Walker <[email protected]>:
Quoted 7 lines
There appears to be no code which checks what is or is not System ram,
there is nothing that checks the device tree to see what is IO memory, and nothing reads/proc/iomem.. So AFAIK nothing cares if it's IO memory, or system ram, and there's no method to config things to skip any memory in the system, except in makedumpfile which can skip symbols not IO memory.
Quoted 7 lines
Daniel, unfortunately it's long time for me when I looked to powerpc code. But I just
checked that here:
kexec-tools-2.0.6/kexec/arch/ppc64/kexec-ppc64.cis probably what you need.
I have a powerpc32 .. In the powerpc64 file I only see something called "reserved-ranges" which may do what I want, however, that doesn't exist in the 32bit version. It appers the reserved-ranges is used by OPAL firmware , which I don't have. There doesn't appear to be anything generic in ppc64 to exclude device IO memory.
Daniel
_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec
I might be wrong but as I remember powerpc32 is deprecated in kexec-tools and all code use ppc64 directory even for 32 bit code...
2016-07-21 23:04 GMT+03:00 Daniel Walker <[email protected]>:
Quoted 29 lines · Maxim Uvarov
Quoted 12 lines
2016-07-21 18:19 GMT+03:00 Daniel Walker <[email protected]>:
Quoted 10 lines
There appears to be no code which checks what is or is not System ram,
there is nothing that checks the device tree to see what is IO memory, and
nothing reads/proc/iomem.. So AFAIK nothing cares if it's IO memory, or system ram, and there's no method to config things to skip any memory in the
system, except in makedumpfile which can skip symbols not IO memory.Quoted 7 lines
Daniel, unfortunately it's long time for me when I looked to powerpc code. But I just
checked that here:
kexec-tools-2.0.6/kexec/arch/ppc64/kexec-ppc64.cis probably what you need.
I have a powerpc32 .. In the powerpc64 file I only see something called "reserved-ranges" which may do what I want, however, that doesn't exist in the 32bit version. It appers the reserved-ranges is used by OPAL firmware , which I don't have. There doesn't appear to be anything generic in ppc64 to exclude device IO memory.
Daniel
Signature · 7 lines
Best regards, Maxim Uvarov _______________________________________________ kexec mailing list [email protected] http://lists.infradead.org/mailman/listinfo/kexec
This doesn't appear to be the case. As of 2.0.6 ppc32 is still used. I don't see any changesets in the git tree that would change that for later versions.
Quoted 32 lines · Maxim Uvarov
I might be wrong but as I remember powerpc32 is deprecated in kexec-tools and all code use ppc64 directory even for 32 bit code...
2016-07-21 23:04 GMT+03:00 Daniel Walker <[email protected]>:
Quoted 26 lines · Maxim Uvarov
Quoted 10 lines
2016-07-21 18:19 GMT+03:00 Daniel Walker <[email protected]>:
Quoted 9 lines
There appears to be no code which checks what is or is not System ram,
there is nothing that checks the device tree to see what is IO memory, and
nothing reads/proc/iomem.. So AFAIK nothing cares if it's IO memory, or system ram, and there's no method to config things to skip any memory in the
system, except in makedumpfile which can skip symbols not IO memory.Quoted 7 lines
Daniel, unfortunately it's long time for me when I looked to powerpc code. But I just
checked that here:
kexec-tools-2.0.6/kexec/arch/ppc64/kexec-ppc64.cis probably what you need.
I have a powerpc32 .. In the powerpc64 file I only see something called "reserved-ranges" which may do what I want, however, that doesn't exist in the 32bit version. It appers the reserved-ranges is used by OPAL firmware , which I don't have. There doesn't appear to be anything generic in ppc64 to exclude device IO memory.
Daniel
_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec