我正在开发一个Linux内核模块,该模块为来自定制板的中断注册回调,并将接收到的数据放入字符设备接口(interface)后面的队列中,以供应用程序处理。即使没有来自板卡的中断,该模块也需要不断地监控和测量来自板卡的中断和数据,因此它有另一个根据时间触发的回调。当前的实现使用RTC中断作为常量定时器源。我禁用内核RTC驱动程序(CONFIG_RTC_DRV_CMOS)并请求IRQ8并将定时器回调挂接到RTC中断处理程序。RTC芯片每秒产生一次中断。问题是我们必须以这种方式失去一些Linux管理时间的能力,因为一次只能加载rtc-cmos或板模块之一(显然我们已经选择板模块)。目标架构是
我正在开发一个Linux内核模块,该模块为来自定制板的中断注册回调,并将接收到的数据放入字符设备接口(interface)后面的队列中,以供应用程序处理。即使没有来自板卡的中断,该模块也需要不断地监控和测量来自板卡的中断和数据,因此它有另一个根据时间触发的回调。当前的实现使用RTC中断作为常量定时器源。我禁用内核RTC驱动程序(CONFIG_RTC_DRV_CMOS)并请求IRQ8并将定时器回调挂接到RTC中断处理程序。RTC芯片每秒产生一次中断。问题是我们必须以这种方式失去一些Linux管理时间的能力,因为一次只能加载rtc-cmos或板模块之一(显然我们已经选择板模块)。目标架构是
是否可以在Linux主机上以微秒精度执行任务?即,我想在特定的时间执行任务。我知道,Linux不是实时系统,但我正在寻找Linux上的最佳解决方案。到目前为止,我已经创建了一个内核模块,设置了hrtimer并测量了输入回调函数时的抖动(我不太关心实际延迟,重要的是抖动)-大约20-50us。这并不比在用户空间中使用timerfd好多少(也尝试过对进程使用实时优先级,但这并没有真正改变任何东西)。我正在运行Linux3.5.0(只是一个例子,尝试了从2.6.35到3.7的不同内核),/proc/timer_list显示hrtimer_interrupt,我没有在禁用hrtimer功能的故
我正在构建一个使用hrtimer接口(interface)的内核模块。我的模块编译成功,它有MODULE_LICENSE("GPL")设置:make-C/lib/modules/3.0.0-23-server/buildSUBDIRS=/home/projects/net-modelermodulesmake[1]:Enteringdirectory`/usr/src/linux-headers-3.0.0-23-server'CC[M]/home/projects/net-modeler/nm_injector.oCC[M]/home/projects/net-modeler/nm_
回答:VM时间同步是一门艺术,我会计算我的祝福并使用对我有用的东西。这就是为什么:~qoute~我花了几年时间在主机和guestVM之间同步时间,有和没有NTP等等——这基本上是一种黑色艺术,并且严重依赖于管理程序、内核和大量设置。我们不打算在对SO的评论中解决它,但如果你有一个已知的良好配置,我会恢复到那个并一点一点地改变,直到你知道是什么破坏了它。–abligh编辑:Percona信息用于上下文,这是我正在做的。但是这个问题在Debian8内核中被实现为闰秒问题。关于hrtimer(高分辨率计时器)。Mozilla建议的修复方法是使用Linux中的“日期”功能重置时间,但尝试设置日