[dpdk-dev] [PATCH 0/2] eal: clean up interrupt handle

Qi Zhang qi.z.zhang at intel.com
Wed Feb 22 23:17:00 CET 2017


In an interrupt callback function, the paramter intr_handle which 
is registered at rte_intr_callback_register call is passed back.
It is supposed to feed rte_intr_enable, but it is not gareenteed 
to contain paramters as required, since it is a copy of 
rte_ethdev->intr_handle, if some field need to be updated (like max_intr)
driver need to unregister and register the callback function again.
So is it necessary to pass back a copy of intr_handle? why don't 
use rte_ethdev->intr_handle directly to feed rte_intr_enable?
if look at the prototpye of rte_intr_callback_fn, void* cb_arg 
can be used to pass anything by the driver and the typical way 
is to pass a rte_ethdev(or any embedded bus dev) instance 
(actually, almost all driver implemented this already), and use 
this instance to get the right intr_handle.

One of the patch clean up this and the other update the test code to
sync with the interface change.

Qi Zhang (2):
  eal: improve interrupt handle
  test: update test code for interrupt callback change

 app/test/test_interrupts.c                     | 23 +++++++--------
 drivers/net/bnxt/bnxt_irq.c                    |  3 +-
 drivers/net/e1000/em_ethdev.c                  |  8 ++----
 drivers/net/e1000/igb_ethdev.c                 | 15 ++++------
 drivers/net/enic/enic_main.c                   |  3 +-
 drivers/net/fm10k/fm10k_ethdev.c               | 12 +++-----
 drivers/net/i40e/i40e_ethdev.c                 |  8 ++----
 drivers/net/i40e/i40e_ethdev_vf.c              |  5 ++--
 drivers/net/ixgbe/ixgbe_ethdev.c               | 14 ++++-----
 drivers/net/nfp/nfp_net.c                      |  6 ++--
 drivers/net/qede/qede_ethdev.c                 |  4 +--
 drivers/net/sfc/sfc_intr.c                     | 10 ++++---
 drivers/net/virtio/virtio_ethdev.c             |  5 ++--
 lib/librte_eal/common/include/rte_interrupts.h |  3 +-
 lib/librte_eal/linuxapp/eal/eal_alarm.c        |  5 ++--
 lib/librte_eal/linuxapp/eal/eal_interrupts.c   | 39 ++++----------------------
 16 files changed, 57 insertions(+), 106 deletions(-)

-- 
2.7.4



More information about the dev mailing list