Messages in this thread | | | Date | Sun, 20 May 2018 19:29:24 -0700 | From | Stefan Schaeckeler <> | Subject | Re: [PATCH] mtd: mtdoops: optionally dump boottime |
| |
Hello Richard and others,
> I get the use-case, but why is this only for mtdoops?
Powerpc's nvram module also stores oops messages and does so by adding an additional timestamp, as well (search for kmsg_dump_get_buffer() in arch/powerpc/kernel/nvram_64.c).
This timestamp is the number of seconds since 1970 and stored as a 64 bit integer in the nvram header. Basically, the last kmesg timestamp is a few ms less than this additionally stored timestamp. Recording boottime would be more elegant, I guess.
> IMHO this needs to go into generic code such that all kmsg dumpers can > benefit from it.
This would be not that easy:
#1 kmsg_dump_get_buffer(...size...) returns the most recent <size> bytes. Consecutive calls return older chunks. It would be natural to return the boottime as the first line, e.g. in the last call, but some clients such as mtdoops call kmsg_dump_get_buffer() only once. The returned buffer may be complete including boottime, or not.
#2 consistency with other clients: nvram_64.c has the same requirement of storing a kind of wall-time but does it in a completely different way: no readable ascii text timestamp preprended to the kmsg buffer but a 64 bit timestamp in its header. Note, I don't think we should make mtdoops behave like nvram_64.c by storing the timestamp as a 64 bit integer (in its header) b/c most people do a cat or string of the mtd device /dev/mtdX and a 64 bit integer would just read as garbage.
I hope we can have separate implementations for recording additional timestamps. Later, I'll send a patch with stylistic changes unless we completely disagree on how to move forward.
Stefan
| |