motive for sending Ethernet packets in soft-irq context

Parav Pandit
2008-05-02T09:22:57Z

Hi,

What is the motive to send the ethernet packets to the NIC driver by invoking hard_xmit() in the soft-irq context?

What I understand is,
It is not done into the process context of send() system call beacause,
1. Calling it in soft-irq context eliminates any delays incurred by the process switching, lower task priorities etc.

Can't it be done by raising the process priority to highest until the NIC driver hand over the packet to the hardware?
This will avoid time incurred in process to soft-irq switching time.

Are there any other performance, security reasons?