当前位置: 首页 > ds >正文

linux内核 - 获取内核日志时间戳的方法

一:概述

        在linux内核中,sched_clock 是Linux内核提供的高精度计时器,返回的是纳秒级别的时间戳。与内核日志时间戳对应,多用于内核调试,但是在某些架构中,seched_clock 在线程抢占时可能不安全。所以在使用 sched_clock获取时间戳时,要禁止线程被抢占。

二:代码

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/sched.h>
#include <linux/preempt.h>
#include <linux/ktime.h>
#include "img_types.h" // 定义 IMG_UINT64/* 内核安全获取时间戳函数 */
static inline IMG_UINT64 Clockns64(void)
{IMG_UINT64 timenow;preempt_disable();      // 禁止抢占timenow = sched_clock(); // 获取纳秒时间戳preempt_enable();       // 恢复抢占return timenow;
}/* 模块加载函数 */
static int __init mymodule_init(void)
{IMG_UINT64 ts;printk(KERN_INFO "MyModule: Loaded\n");ts = Clockns64();  // 获取时间戳printk(KERN_INFO "MyModule: Current time (ns) = %llu\n", ts);return 0;
}/* 模块卸载函数 */
static void __exit mymodule_exit(void)
{printk(KERN_INFO "MyModule: Unloaded\n");
}module_init(mymodule_init);
module_exit(mymodule_exit);MODULE_LICENSE("GPL");
MODULE_AUTHOR("Your Name");
MODULE_DESCRIPTION("Kernel module example using Clockns64()");

http://www.xdnf.cn/news/20594.html

相关文章:

  • 联邦学习常见模型
  • ChatGPT 协作排查:Node.js 内存泄漏的定位与修复
  • JavaScript 结构型模式详解
  • stl--保研机试极限复习
  • 网易UU远程,免费电脑远程控制软件
  • 计算机网络学习(七、网络安全)
  • leetcode 1304. 和为零的 N 个不同整数 简单
  • LeetCode 面试经典 150 题:合并两个有序数组(双指针解法详解)
  • 【如何导出qemu模拟的设备树文件】
  • SC3336 rgb sensor linux
  • 初探 Autogen:用多智能体实现协作对话
  • Photoshop - Photoshop 创建图层蒙版
  • 吴恩达机器学习(十)
  • 《云原生配置危机:从服务瘫痪到韧性重建的实战全解》
  • js逆向之JSEncrypt的加密
  • C++ 常见面试题汇总
  • 【基于YOLO和Web的交通工具识别系统】
  • Python基础入门常用198英语单词详解
  • 计算机网络--四层模型,IP地址和MAC地址
  • 七.克鲁斯卡尔(Kruskal)算法
  • React入门 | React 新手入门与常用库和工具
  • 云平台面试内容(一)
  • Java Stream流:从入门到精通
  • 2025算法八股——机器学习——SVM损失函数
  • lua中table键类型及lua中table的初始化有几种方式
  • Unity AssetBundle详解
  • 【设计模式】 原型模式
  • Linux初级篇
  • Unity 塔防自用可视化路点寻路编辑器
  • 运维服务方案,运维巡检方案,运维安全保障方案文件