kernel

    0热度

    1回答

    我使用下面的API来杀死一个tasklet: tasklet_kill(); 虽然杀微进程,我一直在使用spin_lock_irqsave禁用本地中断。为什么内核引发以下消息(警告): Attempt to kill taskletlet from interrupt 这难道不是最好使用tasklet_kill()一边拿着用spin_lock?

    3热度

    1回答

    我正在阅读this本书,并且在“过程结构”一章中,在讨论过程的上下文时,它将上下文分割2部分。静态和动态部分。它说每个进程都有一个用户堆栈和一个内核堆栈,内核堆栈放在上下文的动态部分。 进程的系统级上下文的动态部分由一组集合层组成,可视化为后进先出堆栈。 和在定义的图, 该图的右侧示出的背景下的动态部分。它由多个堆栈帧组成,其中每个帧包含上一层保存的寄存器上下文,以及内核堆栈作为内核在该层中执行。

    1热度

    1回答

    我正在写一些内核驱动程序,我需要检查哪个线程在另一个核心上的某个点上运行。我的驱动程序在每个内核上运行一个内核线程,我需要不时同步一些线程来完成某些任务。我可以从调试日志中观察到有时一个线程太多地等待其他线程。我做了一些补丁,我将__preempt_count存储在其他内核上,以检查是否有softirq/hardirq或抢占失效延迟我的线程。 我还使用FTRACE检查irqsoff和preempt

    4热度

    1回答

    我无法在内核中找到很多SIMD指令(如SSE/AVX)的使用(除了用于加速RAID6的奇偶校验计算的地方)。 Q1)任何具体原因或只是缺少用例? Q2)如果我想使用SIMD指令,比如设备驱动程序,那么今天需要做什么? Q3)将ISPC这样的框架纳入内核(仅用于实验)有多难?

    1热度

    1回答

    我试图通过以下命令使用事件功率/能量核心/使用perf工具读取内核空间中的系统功率: perf stat -a -e power/energy-cores/:k -I 1000 sleep 10 的:k是想在这个文档https://perf.wiki.kernel.org/index.php/Tutorial描述colects的事件只是在内核空间的修饰,但是当我使用这个:き得到的错误如下: [

    0热度

    1回答

    我试图追踪3thParty应用程序的问题。当前正在调查的路径是查看每个进程中创建的Section对象:rpsPdf10.mutex。 如果对象的名称是它的预期用法的任何指示,我不知道他们为什么选择一个Section对象并将其用作Mutex,但这很可能无关紧要。 使用LiveKd我发出以下命令的试图让节对象 0: kd>!process 0 0 3thParty.exe ... PROCESS

    1热度

    1回答

    有很多页面解释它,但我找不到它。我发现的许多文章只适用于El Capitan和旧系统。 我现在无法使用fwkpfv,因为我没有正确的加密狗。我的客户正在为我购买一台支持Firewire的旧MacBook。 我的内核扩展让我的盒子惊慌失措。很奇怪,如果我的同事建立我的扩展,它的工作就好了。我仍然fl。不乐。

    2热度

    2回答

    从3thParty供应商的部分对象命名为rpsPdf10.mutex的内容和它的用途是通过编写一个布尔标志,它模仿一个信号。 使用LiveKd以及来自SO的大量帮助,我发布了以下命令,试图获取此Section对象的详细信息。 0: kd>!process 0 0 3thParty.exe ... PROCESS fffffa800ea80060 SessionId: 0 Cid: 0

    0热度

    1回答

    我希望在系统调用之前检查使用系统或执行``来确保调用是由特定模块完成的。 我不想用它来清理或验证命令,但只是确保只有一个模块可以进行这些调用。 谢谢。

    1热度

    1回答

    可以使用IoCallDriver()与IoBuildAsynchronousFsdRequest()创建的IRP IoGetDeviceObjectPointer()返回的设备对象?我目前失败的蓝屏(蓝屏)0x7E(未处理的异常),当捕获显示访问冲突(0xc0000005)。设备堆叠时使用相同的代码(使用由IoAttachDeviceToDeviceStack()返回的设备对象)。 所以我有什么是