Разрешение метки времени печати в ядре Linux
Как включить отметку времени с разрешением наносекунд в ядре Linux. В настоящее время он показывает разрешение в миллисекундах, как показано ниже.
Есть ли конфиг или макрос, который мне нужно включить???....
[ 0.220000] omap_mux_init: Add partition: #1: core, flags: 4
[ 0.220000] ti81xx_register_mcasp: platform not supported
[ 0.230000] Debugfs: Only enabling/disabling deep sleep and wakeup timer is supported now
[ 0.230000] bio: create slab <bio-0> at 0
[ 0.230000] SCSI subsystem initialized
[ 0.230000] usbcore: registered new interface driver usbfs
[ 0.230000] usbcore: registered new interface driver hub
[ 0.230000] usbcore: registered new device driver usb
[ 0.230000] omap_i2c omap_i2c.1: bus 1 rev4.0 at 100 kHz
[ 0.260000] omap_i2c omap_i2c.2: bus 2 rev4.0 at 100 kHz
[ 0.280000] omap_i2c omap_i2c.3: bus 3 rev4.0 at 100 kHz
[ 0.300000] omap_i2c omap_i2c.4: bus 4 rev4.0 at 100 kHz
[ 0.300000] Switching to clocksource gp timer
[ 0.310000] musb-hdrc: version 6.0, otg (peripheral+host), debug=0
[ 0.310000] NET: Registered protocol family 2
[ 0.310000] IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.310000] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
[ 0.310000] TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.310000] TCP: Hash tables configured (established 16384 bind 16384)
[ 0.310000] TCP reno registered
[ 0.310000] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.310000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.310000] NET: Registered protocol family 1
[ 0.310000] RPC: Registered udp transport module.
[ 0.310000] RPC: Registered tcp transport module.
[ 0.310000] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.310000] Trying to unpack rootfs image as initramfs...
[ 0.310000] rootfs image is not initramfs (no cpio magic); looks like an initrd
[ 0.330000] Freeing initrd memory: 3660K
[ 0.330000] NetWinder Floating Point Emulator V0.97 (double precision)
....
1 ответ
Из этой статьи Printk Times в разделе устранения неполадок;
- Разрешение таймингов очень плохое.
- Printk-time использует подпрограмму sched_clock() в ядре. На некоторых платформах sched_clock() имеет разрешение всего в 1 секунду (что может быть 10 миллисекунд или дольше). Это означает, что вы увидите только приращение времени в этом разрешении, что дает неточные результаты для printk-times. Чтобы исправить эту проблему, лучшим решением является реализация хорошей подпрограммы sched_clock() для вашей платформы. Sched_clock() возвращает 64-битное значение, которое составляет наносекунды с момента какого-либо события (обычно либо после включения питания компьютера, либо с момента вызова time_init().) Многие встроенные процессоры имеют часы или таймер на System-On-Chip, которые могут обеспечить хороший источник разрешения часов для sched_clock(). Лучше всего, если часы могут обеспечить разрешение лучше 1 мкс. Обратите внимание, что для достижения этого разрешения требуются только часы с частотой 1 МГц.
Похоже, ваша платформа использует jiffies с разрешением 1 мс для sched_clock().