> -----Original Message----- > From: kernelnewbies-bounce@xxxxxxxxxxxx > [mailto:kernelnewbies-bounce@xxxxxxxxxxxx] On Behalf Of pradeep singh > Sent: Wednesday, April 25, 2007 3:31 PM > To: kernel newbies > Subject: net_rx_action() query in dev.c? > > Hi All, > > I was going through the implementation code for > net_rx_action, whcih is invoked everytime the NET_RX_SOFTIRQ > gets to run. > > The logic at line number 1916 in file net/core/dev.c is - > > while(!list_empty(&queue->poll_list)) { > /*something here*/ > if(budget <= 0 || jiffies - start_time > 1) <- line 1916 > goto softnet_break; > > /*something here*/ > } > > if budget <= 0 we must go to softnet_break is understandable > but why if budget is > 0 we must check for the time elapsed?? > And if the difference is > 1, why we should goto softnet_break? > The loop is getting only '1 jiffy' for processing the packets and the maximum number of packets it can process is netdev_budget (which is assigned value of 300). So if either of the condition is true it breaks the loop and queues the softirq again. > I didn't quite get it. > > Any help? > > Thanks > ~psr > > -- > play the game > > -- > To unsubscribe from this list: send an email with > "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please > read the FAQ at http://kernelnewbies.org/FAQ > -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ