chiark / gitweb /
journalctl: Add support for showing messages from a previous boot
authorJan Janssen <medhefgo@web.de>
Fri, 28 Jun 2013 15:26:30 +0000 (17:26 +0200)
committerLennart Poettering <lennart@poettering.net>
Tue, 16 Jul 2013 15:38:12 +0000 (17:38 +0200)
commita331b5e6d4724365bad9edeb9420c7e26e7f50da
treed2bbe6684dbbf91e3ac89a552b0b4c211aa5bbe4
parent18d4e7c26e7806ac363d19989df7144d5058ce41
journalctl: Add support for showing messages from a previous boot

Hi,

I redid the boot ID look up to use enumerate_unique.

This is quite fast if the cache is warm but painfully slow if
it isn't. It has a slight chance of returning the wrong order if
realtime clock jumps around.

This one has to do n searches for every boot ID there is plus
a sort, so it depends heavily on cache hotness. This is in contrast
to the other way of look-up through filtering by a MESSAGE_ID,
which only needs about 1 seek + whatever amount of relative IDs
you want to walk.

I also have a linked-list + (in-place) mergesort version of this
patch, which has pretty much the same runtime. But since this one
is using libc sorting and armortized allocation, I prefer this
one.

To summarize: The MESSAGE_ID way is a *lot* faster but can be
incomplete due to rotation, while the enumerate+sort will find
every boot ID out there but will be painfully slow for large
journals and cold caches.

You choose :P

Jan
TODO
man/journalctl.xml
shell-completion/bash/journalctl
src/journal/journalctl.c