First I thought it is possible by the prioritization of the irq/XX-ethX thread which is used by the network card and the NET_RX_SOFTIRQ, NET_TX_SOFTIRQ threads. Till I read that the split from software interrupts to threads are gone in the RT patch. Now I'm a bit confused and unsure about the softirq handling.
I used ftrace to determine the path of an incoming packet and it looks to me that the softirq is prozessed inside the irq/18-eth1 thread. So if I give the irq/18-eth1 a higher priority than the others, can I be sure that it gets not interrupted?
here a part from my ftrace:irq/18-eth1-1738  1366.914708: function: e1000_intr <-- irq_forced_thread_fn irq/18-eth1-1738  1366.914711: function: __napi_schedule <-- e1000_intr
[...]irq/18-eth1-1738  1366.914718: function: __do_softirq <-- local_bh_enable irq/18-eth1-1738  1366.914719: function: __do_softirq_common <-- __do_softirq irq/18-eth1-1738  1366.914719: function: net_rx_action <-- __do_softirq_common irq/18-eth1-1738  1366.914720: function: e1000_clean <-- net_rx_action irq/18-eth1-1738  1366.914721: function: e1000_clean_rx_irq <-- e1000_clean irq/18-eth1-1738  1366.914722: function: __netdev_alloc_skb <-- e1000_clean_rx_irq irq/18-eth1-1738  1366.914722: function: __alloc_skb <-- __netdev_alloc_skb
[...]irq/18-eth1-1738  1366.914744: function: e1000_receive_skb <-- e1000_clean_rx_irq irq/18-eth1-1738  1366.914744: function: eth_type_trans <-- e1000_receive_skb irq/18-eth1-1738  1366.914744: function: napi_gro_receive <-- e1000_receive_skb
I hope someone can explain it to me. The reason I want to prioritize the incoming network traffic is cause I'm writing a module for the TTEthernet protocol which is Time-triggered and and based on the standard Ethernet. I need the packets without or very less jitter. And I would like to use it by changing the napi_gro_receive() funtion in the network card driver to my module function to use it with any card by almost no modification in the code.
I'm quite new to kernel development and the module I'm writing is part of my bachelor thesis. If there is a paper or a book who explains this behavior I'm happy to know about it!
Best regards Frieder -- To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html