[RFC][PATCH v4 -next 0/4] Make pstore/kmsg_dump run after stopping other cpus in panic path
January 05th, 2012 - 12:40 pm ET by Seiji Aguchi | Report spam
Hi,
Discussion:
As Don mentioned in following thread, it would be nice for pstore/kmsg_dump to serialize
panic path because they can log messages reliably.
https://lkml.org/lkml/2011/10/13/427
This patchset is based on his proposal switching smp_send_stop() from REBOOT_VECTOR to NMI.
Change Log:
v3 -> v4
- Add comment for explaining the purpose of WARN_ON() based on Don's comment (patch 2/4)
https://lkml.org/lkml/2011/12/12/296
- Skip spin_lock of efi_pstore_write() in panic case based on discussion with Tony (patch 4/4)
https://lkml.org/lkml/2012/1/3/151
- Apply this patchset to -next tree instead of linus -tree so that "patch 4/4" makes simple
v2 -> v3
- Skip spin_locks in panic case in both kmsg_dump() and pstore_dump() instead of calling spin_lock_init()
to avoid potential issues due to spin_lock_init()
- Add WARN_ON() in "in_nmi() and !panic" case into kmsg_dump() so that we trap when someone adds
new kmsg_dump() in NMI path in the future
- Skip subsequent kmsg_dump() function calls to avoid deadlock.
v1 -> v2
- Add trylocks to kmsg_dump()/pstore_dump() so that they can work in NMI context.
- Divide a patch into two
First one is just moving kmsg_dump(KMSG_DUMP_PANIC) below smp_send_stop()
Second one is changing lock operations in kmsg_dump()/pstore_dump()
v1
- Move kmsg_dump(KMSG_DUMP_PANIC) below smp_send_stop
- Bust logbuf_lock of kmsg_dump() in panic path for avoiding deadlock
- Bust psinfo->buf_lock of pstore_dump() in panic path for avoiding deadlock
Patch Description:
[RFC][PATCH v4 -next 1/4] Move kmsg_dump(KMSG_DUMP_PANIC) below smp_send_stop()
- Just move kmsg_dump(KMSG_DUMP_PANIC) below smp_send_stop()
[RFC][PATCH v4 -next 2/4] Skip spin_locks in panic case and Add WARN_ON()
- Skip spin_locks in panic case in both kmsg_dump() and pstore_dump()
- Add WARN_ON() in "in_nmi() and !panic" case into kmsg_dump()
[RFC][PATCH v4 -next 3/4] Skip subsequent kmsg_dump()
- Skip subsequent kmsg_dump() function calls in panic path
[RFC][PATCH v4 -next 4/4] Skip spin_lock of efi_pstore_write() in panic case
- Skip spin_lock of efi_pstore_write() in panic case to avoid deadlock
Seiji
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Discussion:
As Don mentioned in following thread, it would be nice for pstore/kmsg_dump to serialize
panic path because they can log messages reliably.
https://lkml.org/lkml/2011/10/13/427
This patchset is based on his proposal switching smp_send_stop() from REBOOT_VECTOR to NMI.
Change Log:
v3 -> v4
- Add comment for explaining the purpose of WARN_ON() based on Don's comment (patch 2/4)
https://lkml.org/lkml/2011/12/12/296
- Skip spin_lock of efi_pstore_write() in panic case based on discussion with Tony (patch 4/4)
https://lkml.org/lkml/2012/1/3/151
- Apply this patchset to -next tree instead of linus -tree so that "patch 4/4" makes simple
v2 -> v3
- Skip spin_locks in panic case in both kmsg_dump() and pstore_dump() instead of calling spin_lock_init()
to avoid potential issues due to spin_lock_init()
- Add WARN_ON() in "in_nmi() and !panic" case into kmsg_dump() so that we trap when someone adds
new kmsg_dump() in NMI path in the future
- Skip subsequent kmsg_dump() function calls to avoid deadlock.
v1 -> v2
- Add trylocks to kmsg_dump()/pstore_dump() so that they can work in NMI context.
- Divide a patch into two
First one is just moving kmsg_dump(KMSG_DUMP_PANIC) below smp_send_stop()
Second one is changing lock operations in kmsg_dump()/pstore_dump()
v1
- Move kmsg_dump(KMSG_DUMP_PANIC) below smp_send_stop
- Bust logbuf_lock of kmsg_dump() in panic path for avoiding deadlock
- Bust psinfo->buf_lock of pstore_dump() in panic path for avoiding deadlock
Patch Description:
[RFC][PATCH v4 -next 1/4] Move kmsg_dump(KMSG_DUMP_PANIC) below smp_send_stop()
- Just move kmsg_dump(KMSG_DUMP_PANIC) below smp_send_stop()
[RFC][PATCH v4 -next 2/4] Skip spin_locks in panic case and Add WARN_ON()
- Skip spin_locks in panic case in both kmsg_dump() and pstore_dump()
- Add WARN_ON() in "in_nmi() and !panic" case into kmsg_dump()
[RFC][PATCH v4 -next 3/4] Skip subsequent kmsg_dump()
- Skip subsequent kmsg_dump() function calls in panic path
[RFC][PATCH v4 -next 4/4] Skip spin_lock of efi_pstore_write() in panic case
- Skip spin_lock of efi_pstore_write() in panic case to avoid deadlock
Seiji
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Similar topics
Make your own search :
Tags
Create a new topic
Follow the discussion
12 replies
Make a reply
May 25th, 2013 - 9:03 PM ET
Join now


Replies