linux内核 - 获取单调计时时间戳的方法
一:概述
在 linux 内核中,ktime_get 是系统单调时钟,返回当前系统时间,精度高,纳秒级别,可用于策略时间间隔。在使用ktime_get时不用显示禁用抢占,ktime_get内部保证一致性。
二:示例
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/ktime.h>static int __init mymodule_init(void)
{ktime_t ts;printk(KERN_INFO "KtimeExample: Module loaded\n");/* 获取系统单调时钟 */ts = ktime_get();#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0))printk(KERN_INFO "ktime_get time: %lld ns\n", (long long)ts);
#elseprintk(KERN_INFO "ktime_get time: %lld ns\n", (long long)ts.tv64);
#endifreturn 0;
}static void __exit mymodule_exit(void)
{printk(KERN_INFO "KtimeExample: Module unloaded\n");
}module_init(mymodule_init);
module_exit(mymodule_exit);MODULE_LICENSE("GPL");
MODULE_AUTHOR("Your Name");
MODULE_DESCRIPTION("Kernel module example using ktime_get()");