cost 336 ms
如果softirq被硬件中断多次抢占,堆栈溢出 - Stack overflow if softirq preempt by hardware interrupt many times

最近我一直在研究一个由 NAPI 实现的 NIC 驱动程序,它使用 softirq 来处理 tx&rx 数据包,并且很多文档说当硬件中断返回时可以触发 softirq,那么我有两个问题: 运行softirq时,硬件中断存储的寄存器是否仍在内核堆栈上? 如果是 1,下面的序列会导致内 ...

在 Linux-5.11.4 中跟踪 softirq_raise 的跟踪点失败 - Failed to trace the trace point of softirq_raise in Linux-5.11.4

我正在编写一个 kernel 模块来挂钩到 softirq_raise 的跟踪点。 我发现它可以显示在 我的处理程序如下, 我得到的是如下, 令我惊讶的是,它只显示 vec_nr = 0,没有其他软中断被引发。 但是 /proc/softirqs 确实在 CPU5 上显示了许多不同的软中断。 我的处 ...

RISC-V - 软件中断 - RISC-V - Software Interrupts

我正在尝试为我的 RV32I 内核实现一个简单的中断控制器。 我相信我理解在 RISC-V 中应该如何处理中断,以及 CSR 寄存器在这个过程中的作用。 RISC-V 定义了三种中断源:外部、软件和定时器。 我了解定时器和外部中断是如何产生的。 但是,我不明白如何或什么会产生软件中断。 指令? ...

softirq - 它在网络堆栈中持续多远? - softirq -- how far in network stack does it last?

我一直在研究 Linux 中的interrupts ,特别是softirq (我对内核的网络子系统感兴趣)。 我理解上半部分和下半部分的概念,但我不清楚的是softirq上下文持续多远? 我们处理softirq到内核​​堆栈中的哪一点? 例如,当入口路径命中ip_rcv() ,我们是否仍处于软中断模 ...

rps过程使用带有local_irq_disable的自旋锁的原因 - The reasons why rps procedure use spinlock with local_irq_disable

这些天,我正在研究内核内部网络代码 ,尤其是RPS代码。 您知道,有很多功能。 但是我专注于一些有关SMP队列处理的功能,例如enqueue_to_backlog和process_backlog 。 我想知道通过使用两个函数enqueue_to_backlog和process_back ...

与内核 3.4 相比,为什么内核 4.1 上的软中断服务时间增加了? - Why is time servicing softirqs increased on kernel 4.1 in compare with kernel 3.4?

我们在从内核 3.4 到 4.1 版本进行 linux 升级时发现了一个性能下降问题。 看来,是新内核花更多的时间来服务软中断造成的。 我们使用流量生成器 (IXIA) 进行了测试,该生成器生成 GTP-C 数据包(通过 UDP)和一个简单的应用程序,它将接收到的数据包发回。 它只是交换源和目标 ...

SoftIRQ 能否抢占当前运行与 Linux 内核相同的 SoftIRQ? - Can the SoftIRQ prempt currently running the same SoftIRQ with Linux kernel?

我正在改进驱动程序的性能,应该考虑死锁的可能性。 在 SoftIRQ 上下文中,spin_lock 将被持有并保护一些变量。 在这种情况下,我应该使用 spin_lock 还是 spin_lock_bh? spin_lock_bh 听起来更安全,但我有一个关于 SoftIRQ 实现的一般问题。 ...

在具有自旋锁保护的存储桶的哈希表中是否有Linux标头? - Is there a linux header for hashtable with spinlock-protected buckets?

我编写的代码很少创建/删除对象(最多数千个),但经常在软IRQ上下文中对其进行修改。 这些对象也很少从任务上下文(通过procfs:每个对象文件)中读取(并且可能也很少修改)。 目前,我的代码包含每个CPU的全局数据块,每个数据块都有一个自旋锁保护。 这样的块包含用于对象存储的固定大小的哈 ...

有什么办法可以用我自己的softirq调用Linux内核 - Is there any way to make a call to linux kernel with my own softirq

与系统调用在int 0x80上的工作方式类似,是否可以在内核内部实现我自己的ISR,以便在softirq上假设int 0x120或与任何其他softirq程序计数器可以从用户空间跳转到内核空间 ? 是在特权模式下进入内核仅与int 0x80关联,还是与任何softirq实现相关联,我可以自 ...

为什么同一任务不能同时在两个内核上执行? - why same TASKLET can't execute on two core simultaneously?

在用于ARM平台的Linux内核实现中,将tasklet中的延迟工作添加到percpu vec | vec_hi列表中。 现在,从ISR执行返回时,它可以解决softirq和tasklet中的延迟工作。 现在,可以在启用了IRQ的中断上下文中处理延迟的工作,或者有ksoftir ...

当softirq处理程序运行时内核如何在本地处理器中禁用softirq - How kernel disable the softirq in the local processor when softirq handler runs

最近,我研究了Robert Love的Linux-Kernel-Development。 有一段描述了softirq的机制。 softirq处理程序在启用中断的情况下运行,无法休眠。 在处理程序运行时,当前处理器上的softirq被禁用。 但是,另一个处理器可以执行其他softi ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM