kasan: increase the number of bits to shift when recording extra timestamps
In5d4c6ac946
("kasan: record and report more information") I thought that printk only displays a maximum of 99999 seconds, but actually printk can display a larger number of seconds. So increase the number of bits to shift when recording the extra timestamp (44 bits), without affecting the precision, shift it right by 9 bits, discarding all bits that do not affect the microsecond part (nanoseconds will not be shown). Currently the maximum time that can be displayed is 9007199.254740s, because 11111111111111111111111111111111111111111111 (44 bits) << 9 = 11111111111111111111111111111111111111111111000000000 = 9007199.254740 Link: https://lkml.kernel.org/r/AM6PR03MB58481629F2F28CE007412139994D2@AM6PR03MB5848.eurprd03.prod.outlook.com Fixes:5d4c6ac946
("kasan: record and report more information") Signed-off-by: Juntong Deng <juntong.deng@outlook.com> Acked-by: Andrey Konovalov <andreyknvl@gmail.com> Cc: Alexander Potapenko <glider@google.com> Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com> Cc: Dmitry Vyukov <dvyukov@google.com> Cc: Vincenzo Frascino <vincenzo.frascino@arm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
059ab7be09
commit
952237b5a9
@ -55,7 +55,7 @@ void kasan_set_track(struct kasan_track *track, depot_stack_handle_t stack)
|
||||
u64 ts_nsec = local_clock();
|
||||
|
||||
track->cpu = cpu;
|
||||
track->timestamp = ts_nsec >> 3;
|
||||
track->timestamp = ts_nsec >> 9;
|
||||
#endif /* CONFIG_KASAN_EXTRA_INFO */
|
||||
track->pid = current->pid;
|
||||
track->stack = stack;
|
||||
|
@ -267,7 +267,7 @@ static void print_track(struct kasan_track *track, const char *prefix)
|
||||
u64 ts_nsec = track->timestamp;
|
||||
unsigned long rem_usec;
|
||||
|
||||
ts_nsec <<= 3;
|
||||
ts_nsec <<= 9;
|
||||
rem_usec = do_div(ts_nsec, NSEC_PER_SEC) / 1000;
|
||||
|
||||
pr_err("%s by task %u on cpu %d at %lu.%06lus:\n",
|
||||
|
Loading…
Reference in New Issue
Block a user