关于网卡驱动发送回调函数的理解
我现在对网卡驱动的工作分工有些不理解,问下。
在网卡发送函数回调函数(hard_start_xmit)中,必须要同步做发送数据处理么,还是可以保存数据后就返回,然后起个线程慢慢发?
还有watchdog_timeo这个超时的机制,是怎么触发的? 我只看到在发送时设置trans_start这个参数,那么内核决定是否启动我的超时回调函数tx_timeout的条件是什么? 是什么标志来刷新这个timeout的?或是说,是不是说xmit这个发送回调函数返回超时了才能启动timeout回调? 还是xmit执行到一半超时了,不等结束返回就被调度了,去执行timeout了?