Разрешение метки времени печати в ядре 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().

Другие вопросы по тегам