问题标签 [irq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
294 浏览

c++ - IRQ 8 不工作...硬件或软件?

首先,我为 Vintage 计算机组编程。我写的是专门为 MS-DOS 而不是 windows,因为那是人们正在运行的。我当前的程序是为后来的系统而不是 8086 线,所以计划是使用 IRQ 8。这允许我以二进制值设置中断率,从 2 / 秒到 8192 / 秒(2、4、8、16, ETC...)

只是,出于某种原因,在较新的旧系统上(好吧,这听起来很奇怪,)它似乎不起作用。在仿真中,以及我可以访问的 386 系统,它工作得很好,但在我拥有的 P3 系统(GA-6BXC MB w/P3 800 CPU)上它就不能工作。

编码

设置中断

在中断结束时

关闭程序时

我在代码中看不到任何可能导致问题的内容。但这似乎没有任何意义。虽然我不完全相信这些信息,但 MSD“确实”将 IRQ 8 报告为 RTC 计数器,并表示它存在并且工作正常。以后的系统有可能移动了向量吗?我发现的所有内容都表明 IRQ 8 是向量 0x70,但在我的 Pentium III 系统上从未触发中断。有什么方法可以查明向量是否已更改?

0 投票
1 回答
55 浏览

linux - 多处理器计算机中的 linux shell 如何读取键盘输入?

看完这篇文档,我知道键盘输入会激活irq 1指向某个中断。然后我们的处理器将对输入进行解码并执行其他操作。

My question如果其他处理器处理中断,shell 是如何知道键盘输入的?

例如:

处理器 A 正在运行 shell

处理器 B 处理中断。

0 投票
1 回答
400 浏览

c - 编译带有 disable_irq 和 enable_irq 错误的 c 程序找不到 lib linux/irq.h

我正在尝试创建一个 C 程序,其目标是 enable_irq 和 disable_irq。我已经包含了 linux/irq.h

当我编译时: gcc myProgram.c -o myExecutable

我有错误:致命错误:linux/irq.h 找不到文件或文件夹

我必须安装什么软件包?我在archLinux上。

0 投票
1 回答
2808 浏览

linux - 在 spin_lock_irqsave 中调用 printk 是否安全?

我写了一个类似这样的代码:

它在非中断上下文中:

我正在运行此代码并且“看起来”很安全,因为我没有看到任何崩溃。但是,我不确定这是否真的是一个安全的代码。因为这可能会以 1/100000 的概率触发系统崩溃。

此外,我想知道在 spin_lock_irqsave 中调用“sleep”函数是否安全(在非中断上下文中)。

0 投票
1 回答
135 浏览

dispatch - FwpmEngineOpen 在调度级别失败

我试图在持有 NDIS RW 锁的同时添加 WFP 过滤器,但 FwpmEngineOpen 或 FwpmTransactionBegin 函数失败。是否存在阻止这些功能在调度级别工作的限制?

谢谢!

0 投票
2 回答
5590 浏览

linux - linux中的smp亲和力设置

我想在我的虚拟机系统上对中断(irq 75)进行负载平衡。它有 64 位 redhat 5.8,内核 2.6.18。虚拟机中有 8 个 CPU。

当我运行时:

我看到 IRQ 75 仅用于 CPU0。然后我更改了 irq 75 的 smp_affinity。

但我再次看到 irq 75 的中断只使用 CPU0。

CPU 之间没有 irq 平衡。我想将所有中断(irq 75)分发到所有 CPU,我做错了吗?

0 投票
0 回答
55 浏览

performance - irq% 是否应该包含在进程的 cpu% 中?

我们想要计算多核服务器上的 Web 应用程序的服务需求。为此,我们对某些用户运行应用程序的负载测试,并在测试期间记录 cpu%。一旦完成负载测试,就可以获得吞吐量,并使用利用率法则来计算服务需求。进程的 cpu% 仅包括 usr% 和 sys%,而 irq% 包含在整个 cpu% 中,而不包含在每个进程的 cpu% 中。但如果 irq% 是由于应用程序被大量客户端访问,则应该包括在内。否则,瓶颈分析可能不准确。在某些情况下,irq% 占进程的 cpu% 的 8% 以上。

0 投票
1 回答
360 浏览

windows - 恶意软件如何导致 DRIVER_IRQL_NOT_LESS_OR_EQUAL 错误检查?

我认为此错误检查是由某些设备驱动程序代码中的指针/内存管理错误引起的,但普遍认为恶意软件活动也可以触发它,例如某些病毒导致网络驱动程序在蓝屏中出现错误。

恶意软件如何导致此错误检查,因为它只能进行系统调用,而不会干扰驱动程序在更高的 IRQL 中发生页面错误?

0 投票
1 回答
904 浏览

c - Linux内核中的奇怪死锁

我通常认为死锁可能是在两个不同的线程(CPU)上获取两个不同的锁而彼此持有另一个锁的冲突。

但是,linux内核中的lockdep告诉我:

这是第一个:

其中 lock_irq_serial 是一个自旋锁。这个锁也用在 irq_work 基础设施中。

另一部分是:

我在那里什么都不做。我认为 irq_work 中的自旋锁定可能存在问题,并将其锁定在其他地方(例如 sysfs 写入)。任何人都可以解释为什么这是一个死锁场景的更多细节吗?

0 投票
0 回答
265 浏览

linux - Linux request_threaded_irq 中断号

我正在尝试编写一个使用现有 I2C 模块的简单 Linux 内核模块。现有的 i2c 模块需要一个 irq 编号(通过i2c_board_info结构传递),然后 i2c 模块将其作为第一个参数传递给request_threaded_irq(...).

我希望我传入的 irq 被定期触发(例如,每 100 毫秒),并且我认为 tasklet 是正确的方法,但我没有看到任何将 tasklet 转换为 irq 编号的方法传递给request_threaded_irq(). 我会以错误的方式解决这个问题吗?有没有办法做我正在尝试的事情?