cost 90 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 上顯示了許多不同的軟中斷。 我的處 ...

有沒有辦法調試softirq?

[英]Is there a way to debug softirq?

我的目的: 在特定情況下記錄軟中斷生成的調試信息(比率、地址、其他) 。 任何信息都會有所幫助。 我想一些可疑的設備驅動程序,但不知道產生了沉重的負載。 我會感謝任何推薦,例如“閱讀本手冊”。 ...

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 ...

在Linux中暫停kthread

[英]Pausing a kthread in Linux

此處https://blog.packagecloud.io/eng/2017/02/06/monitoring-tuning-linux-networking-stack-sending-data/#queuing-disciplines編寫為: 從上一篇文章中您將看到,NET_TX ...

與內核 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)和一個簡單的應用程序,它將接收到的數據包發回。 它只是交換源和目標 ...

高網絡流量的ksoftirqd行為

[英]ksoftirqd behaviour on high network traffic

我在基於MIPS(octeon)的硬件上運行Windriver Linux。 Linux運行在16個核心上,我們運行koftirqd / 0到ksoftirq / 15。 我在高傳入流量(如ping泛洪)上觀察到以下負載平衡行為: 首先,kostfirqd / 0占用所有負載,直到達到 ...

linux softirq cpu的用法看起來很奇怪

[英]The linux softirq cpu usage looks strange

我在客戶端運行一個簡單的程序,它繼續發送udp數據包到服務器。 服務器的接口是一個多隊列網卡,但我將其udp4的rx-flow-hash設置為sd。 所以所有數據包都將在一個CPU中生成。 當我收到40Wpackets / s時,服務器的CPU在softirq中的成本為1%。 當我收 ...

irq上下文中的PID

[英]PID in case of irq context

在以下2種情況下,“ current-> pid”顯示什么 1)硬IRQ上下文 2)軟IRQ上下文 我知道IRQ上下文和進程上下文是不同的,並且在IRQ上下文的情況下PID必須無效。 但是,當嘗試在IRQ上下文中打印“ current-> pid”時,它正在打印一 ...

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 ...

運行多個進程無法擴展

[英]Running multiple processes doesn't scale

有兩個C ++進程,每個進程一個線程。 該線程處理來自32個傳入TCP連接的網絡流量(直徑),進行解析並通過32個傳出TCP連接轉發拆分消息。 我們將此C ++進程稱為DiameterFE。 如果僅運行一個DiameterFE進程,則它可以每秒處理7萬條消息。 如果兩個Diamete ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM