Skip to content
Permalink
Branch: interrupt_fixes
Commits on Jul 22, 2019
  1. drivers/net: use ack API in interrupt handlers

    Nithin Dabilpuram authored and david-marchand committed Jul 18, 2019
    Replace rte_intr_enable() with rte_intr_ack() API
    for acking an interrupt in interrupt handlers and
    rx_queue_intr_enable() callbacks of PMD's.
    
    This is inline with original intent of this change in PMDs
    to ack interrupts after handling is completed if
    device is backed by UIO, IGB_UIO or VFIO(with INTx).
    
    Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
    Signed-off-by: Jerin Jacob <jerinj@marvell.com>
    Acked-by: Shahed Shaikh <shshaikh@marvell.com>
    Tested-by: Shahed Shaikh <shshaikh@marvell.com>
    Signed-off-by: David Marchand <david.marchand@redhat.com>
  2. eal: add ack interrupt API

    Nithin Dabilpuram authored and david-marchand committed Jul 18, 2019
    Add new ack interrupt API to avoid using
    VFIO_IRQ_SET_ACTION_TRIGGER(rte_intr_enable()) for
    acking interrupt purpose for VFIO based interrupt handlers.
    This implementation is specific to Linux.
    
    Using rte_intr_enable() for acking interrupt has below issues
    
     * Time consuming to do for every interrupt received as it will
       free_irq() followed by request_irq() and all other initializations
     * A race condition because of a window between free_irq() and
       request_irq() with packet reception still on and device still
       enabled and would throw warning messages like below.
       [158764.159833] do_IRQ: 9.34 No irq handler for vector
    
    In this patch, rte_intr_ack() is a no-op for VFIO_MSIX/VFIO_MSI interrupts
    as they are edge triggered and kernel would not mask the interrupt before
    delivering the event to userspace and we don't need to ack.
    
    Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
    Signed-off-by: Jerin Jacob <jerinj@marvell.com>
    Tested-by: Shahed Shaikh <shshaikh@marvell.com>
    Signed-off-by: David Marchand <david.marchand@redhat.com>
  3. vfio: revert change that does intr eventfd setup at probe

    Nithin Dabilpuram authored and david-marchand committed Jul 18, 2019
    This reverts commit 89aac60.
    "vfio: fix interrupts race condition"
    
    The above mentioned commit moves the interrupt's eventfd setup
    to probe time but only enables one interrupt for all types of
    interrupt handles i.e VFIO_MSI, VFIO_LEGACY, VFIO_MSIX, UIO.
    It works fine with default case but breaks below cases specifically
    for MSIX based interrupt handles.
    
    * Applications like l3fwd-power that request rxq interrupts
      while ethdev setup.
    * Drivers that need > 1 MSIx interrupts to be configured for
      functionality to work.
    
    VFIO PCI for MSIx expects all the possible vectors to be setup up
    when using VFIO_IRQ_SET_ACTION_TRIGGER so that they can be
    allocated from kernel pci subsystem. Only way to increase the number
    of vectors later is first free all by using VFIO_IRQ_SET_DATA_NONE
    with action trigger and then enable new vector count.
    
    Above commit changes the behavior of rte_intr_[enable|disable] to
    only mask and unmask unlike earlier behavior and thereby
    breaking above two scenarios.
    
    Fixes: 89aac60 ("vfio: fix interrupts race condition")
    Cc: david.marchand@redhat.com
    
    Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
    Signed-off-by: Jerin Jacob <jerinj@marvell.com>
    Tested-by: Stephen Hemminger <stephen@networkplumber.org>
    Tested-by: Shahed Shaikh <shshaikh@marvell.com>
    Tested-by: Lei Yao <lei.a.yao@Intel.com>
  4. examples/ip_frag: fix stale content of ethdev info

    Marcin Zapolski authored and tmonjalo committed Jul 22, 2019
    The eth_dev_info was used with content that was obsolete. Added update
    of struct content prior to use.
    
    Fixes: 6b7780b ("examples/ip_frag: fix use of ethdev internal device array")
    Cc: stable@dpdk.org
    
    Signed-off-by: Marcin Zapolski <marcinx.a.zapolski@intel.com>
    Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
  5. eal: fix parsing option --telemetry

    Sean Morrissey authored and tmonjalo committed Jul 15, 2019
    Added telemetry to EAL long options so that when
    --telemetry is passed as an EAL arg that there is
    no unrecognized argument error message printed.
    
    Fixes: 8877ac6 ("telemetry: introduce infrastructure")
    Cc: stable@dpdk.org
    
    Signed-off-by: Sean Morrissey <sean.morrissey@intel.com>
    Tested-by: John OLoughlin <john.oloughlin@intel.com>
    Acked-by: Kevin Laatz <kevin.laatz@intel.com>
  6. eal/linux: select IOVA as VA mode for default case

    Jerin Jacob authored and tmonjalo committed Jul 22, 2019
    When bus layer reports the preferred mode as RTE_IOVA_DC then
    select the RTE_IOVA_VA mode:
    
    - All drivers work in RTE_IOVA_VA mode, irrespective of physical
    address availability.
    
    - By default, a mempool asks for IOVA-contiguous memory using
    RTE_MEMZONE_IOVA_CONTIG. This is slow in RTE_IOVA_PA mode and it
    may affect the application boot time.
    
    Signed-off-by: Jerin Jacob <jerinj@marvell.com>
    Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
    Signed-off-by: David Marchand <david.marchand@redhat.com>
  7. bus/pci: change IOVA as VA flag name

    Jerin Jacob authored and tmonjalo committed Jul 22, 2019
    In order to align name with other PCI driver flag such as
    RTE_PCI_DRV_NEED_MAPPING and to reflect its purpose, change
    RTE_PCI_DRV_IOVA_AS_VA flag name as RTE_PCI_DRV_NEED_IOVA_AS_VA.
    
    Signed-off-by: Jerin Jacob <jerinj@marvell.com>
    Signed-off-by: David Marchand <david.marchand@redhat.com>
  8. eal: fix IOVA mode selection as VA for PCI drivers

    david-marchand authored and tmonjalo committed Jul 22, 2019
    The incriminated commit broke the use of RTE_PCI_DRV_IOVA_AS_VA which
    was intended to mean "driver only supports VA" but had been understood
    as "driver supports both PA and VA" by most net drivers and used to let
    dpdk processes to run as non root (which do not have access to physical
    addresses on recent kernels).
    
    The check on physical addresses actually closed the gap for those
    drivers. We don't need to mark them with RTE_PCI_DRV_IOVA_AS_VA and this
    flag can retain its intended meaning.
    Document explicitly its meaning.
    
    We can check that a driver requirement wrt to IOVA mode is fulfilled
    before trying to probe a device.
    
    Finally, document the heuristic used to select the IOVA mode and hope
    that we won't break it again.
    
    Fixes: 703458e ("bus/pci: consider only usable devices for IOVA mode")
    
    Signed-off-by: David Marchand <david.marchand@redhat.com>
    Reviewed-by: Jerin Jacob <jerinj@marvell.com>
    Tested-by: Jerin Jacob <jerinj@marvell.com>
    Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
  9. bus/pci: remove Mellanox kernel driver type

    david-marchand authored and tmonjalo committed Jul 22, 2019
    This reverts commit 0cb8651.
    
    The PCI bus now reports DC when faced with a device bound to an unknown
    driver and, in such a case, the IOVA mode is selected against physical
    address availability.
    
    As a consequence, there is no reason for this special case for Mellanox
    drivers.
    
    Fixes: 703458e ("bus/pci: consider only usable devices for IOVA mode")
    
    Signed-off-by: David Marchand <david.marchand@redhat.com>
    Reviewed-by: Jerin Jacob <jerinj@marvell.com>
  10. bus/fslmc: fix ppc build

    hemantagr authored and tmonjalo committed Jul 22, 2019
    fslmc_vfio.c:387:36: note: format string is defined here
    DPAA2_BUS_DEBUG("VFIO dmamap 0x%llx:0x%llx, size 0x%llx\n",
    
    format ‘%llx’ expects argument of type ‘long long unsigned int’
    argument 6 has type ‘__u64 {aka long unsigned int}’
    
    Fixes: 2b5fa25 ("mempool/dpaa2: map external memory with VFIO")
    
    Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
  11. bus/fslmc: decrease log level in parsing

    hemantagr authored and tmonjalo committed Jul 22, 2019
    This patch removes the unnecessary err prints when using
    non-dpaa2 devices.
    
    Fixes: e67a616 ("bus/fslmc: support device iteration")
    
    Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
  12. bus/dpaa: decrease log level in parsing

    hemantagr authored and tmonjalo committed Jul 22, 2019
    This patch removes the unnecessary err prints when using
    non-dpaa devices.
    
    Fixes: e79df83 ("bus/dpaa: support hotplug ops")
    
    Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
  13. sched: remove redundant macros

    JasvinderD authored and tmonjalo committed Jul 22, 2019
    Remove unused macros from the library, and update release
    notes.
    
    Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
    Signed-off-by: Abraham Tovar <abrahamx.tovar@intel.com>
    Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
  14. examples/qos_sched: add TC and queue config flexibility

    JasvinderD authored and tmonjalo committed Jul 22, 2019
    Update qos sched sample app for configuration flexibility of
    pipe traffic classes and queues.
    
    Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
    Signed-off-by: Abraham Tovar <abrahamx.tovar@intel.com>
    Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
  15. examples/ip_pipeline: add config flexibility to TM

    JasvinderD authored and tmonjalo committed Jul 22, 2019
    Update ip pipeline sample app for configuration flexiblity of
    pipe traffic classes and queues.
    
    Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
    Signed-off-by: Abraham Tovar <abrahamx.tovar@intel.com>
    Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
  16. test/sched: modify for config flexibility

    JasvinderD authored and tmonjalo committed Jul 22, 2019
    update unit tests for configuration flexibility of pipe traffic
    classes and queues size.
    
    Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
    Signed-off-by: Abraham Tovar <abrahamx.tovar@intel.com>
    Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
  17. net/softnic: add config flexibility to TM

    JasvinderD authored and tmonjalo committed Jul 22, 2019
    Update softnic tm function for configuration flexiblity of pipe
    traffic classes and queues size.
    
    Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
    Signed-off-by: Abraham Tovar <abrahamx.tovar@intel.com>
    Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
  18. sched: improve doxygen comments

    JasvinderD authored and tmonjalo committed Jul 22, 2019
    Improve doxygen comments.
    
    Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
    Signed-off-by: Abraham Tovar <abrahamx.tovar@intel.com>
    Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
  19. sched: improve error log messages

    JasvinderD authored and tmonjalo committed Jul 22, 2019
    Replace hard-coded numbers for reporting errors with
    error messages.
    
    Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
    Signed-off-by: Abraham Tovar <abrahamx.tovar@intel.com>
    Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
  20. sched: rename TC3 params to best-effort TC

    JasvinderD authored and tmonjalo committed Jul 22, 2019
    Change the traffic class 3 related params name to best-effort(be)
    traffic class.
    
    Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
    Signed-off-by: Abraham Tovar <abrahamx.tovar@intel.com>
    Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
  21. sched: add max pipe profiles config in run-time

    JasvinderD authored and tmonjalo committed Jul 22, 2019
    Allow setting the maximum number of pipe profiles in run time.
    
    Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
    Signed-off-by: Abraham Tovar <abrahamx.tovar@intel.com>
    Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
  22. sched: add config flexibility to TC queue sizes

    JasvinderD authored and tmonjalo committed Jul 22, 2019
    Add support for zero queue sizes of the traffic classes. The queues
    which are not used can be set to zero size. This helps in reducing
    memory footprint of the hierarchical scheduler.
    
    Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
    Signed-off-by: Abraham Tovar <abrahamx.tovar@intel.com>
    Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
  23. sched: remove WRR from strict priority TC queues

    JasvinderD authored and tmonjalo committed Jul 22, 2019
    All higher priority traffic classes contain only one queue, thus
    remove wrr function for them. The lowest priority best-effort
    traffic class conitnue to have multiple queues and packet are
    scheduled from its queues using wrr function.
    
    Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
    Signed-off-by: Abraham Tovar <abrahamx.tovar@intel.com>
    Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
  24. mk: fix custom kernel directory name

    Herakliusz Lipiec authored and tmonjalo committed Jul 19, 2019
    When building dpdk with different kernel headers by specifying
    RTE_KERNELDIR igb_uio is compiled to directory with a name of the
    version of kernel thats running on the system instead of the one that
    dpdk is actually compiled against. Fixed by replacing hardcoded value
    with value from RTE_KERNELDIR.
    
    Fixes: 3967af3 ("mk: install kernel modules")
    Cc: stable@dpdk.org
    
    Signed-off-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com>
    Acked-by: Thomas Monjalon <thomas@monjalon.net>
Commits on Jul 19, 2019
  1. crypto/dpaa2_sec: fix handling of session init failure

    hemantagr authored and akhilnxp committed Jul 17, 2019
    The session init shall return failure if the internal
    session create fails for any reasons.
    
    Fixes: 1327325 ("crypto/dpaa2_sec: support AES-GCM and CTR")
    Cc: stable@dpdk.org
    
    Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
    Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
  2. test/crypto: fix session init failure for wireless case

    hemantagr authored and akhilnxp committed Jul 17, 2019
    This patch add the support to handle the failure in session
    create for wireless related cases. Else it will cause
    segment fault due to I/O on un-initialized sessions.
    
    Fixes: b3bbd9e ("cryptodev: support device independent sessions")
    Cc: stable@dpdk.org
    
    Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
    Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
  3. examples/ipsec-secgw: fix inline test scripts

    Bernard Iremonger authored and akhilnxp committed Jul 10, 2019
    Remove workaround in tun_aesgcm_defs.sh and trs_aesgcm_defs.sh
    to get around the bug where the first inbound packet is dropped
    for inline crypto.
    
    Fixes: 9297844 ("examples/ipsec-secgw: add scripts for functional test")
    Cc: stable@dpdk.org
    
    Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
    Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
  4. examples/ipsec-secgw: fix first packet with inline crypto

    Bernard Iremonger authored and akhilnxp committed Jul 19, 2019
    Inline crypto installs a flow rule in the NIC. This flow
    rule must be installed before the first inbound packet is
    received.
    
    The create_session() function installs the flow rule,
    create_session() has been refactored into create_inline_session()
    and create_lookaside_session(). The create_inline_session() function
    uses the socket_ctx data and is now called at initialisation in
    sa_add_rules().
    
    The max_session_size() function has been added to calculate memory
    requirements.
    
    The cryprodev_init() function has been refactored to drop calls to
    rte_mempool_create() and to drop calculation of memory requirements.
    
    The main() function has been refactored to call max_session_size() and
    to call session_pool_init() and session_priv_pool_init() earlier.
    The ports are started now before adding a flow rule in main().
    The sa_init(), sp4_init(), sp6_init() and rt_init() functions are
    now called after the ports have been started.
    
    The rte_ipsec_session_prepare() function is called in fill_ipsec_session()
    for inline which is called from the ipsec_sa_init() function.
    
    Fixes: ec17993 ("examples/ipsec-secgw: support security offload")
    Fixes: d299106 ("examples/ipsec-secgw: add IPsec sample application")
    Cc: stable@dpdk.org
    
    Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
    Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
    Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
  5. cryptodev: remove RSA PKCS1 BT0 padding

    Arek Kusztal authored and akhilnxp committed Jul 18, 2019
    BT0 block type padding after rfc2313 has been discontinued.
    
    Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
    Acked-by: Shally Verma <shallyv@marvell.com>
  6. cryptodev: add cipher field to RSA op

    Arek Kusztal authored and akhilnxp committed Jul 18, 2019
    Asymmetric nature of RSA algorithm suggest to use
    additional field for output. In place operations
    still can be done by setting cipher and message pointers
    with the same memory address.
    
    Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
    Acked-by: Shally Verma <shallyv@marvell.com>
  7. cryptodev: change RSA API comments about primes

    Arek Kusztal authored and akhilnxp committed Jul 18, 2019
    RSA modulus cannot be prime as its security depends on the problem
    of integer factorization.
    
    Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
    Acked-by: Shally Verma <shallyv@marvell.com>
  8. doc: update compressdev guide

    Adam Dybkowski authored and akhilnxp committed Jul 15, 2019
    This patch updates the constant names and function names used
    in code snippets in the Compression Device Library documentation.
    
    Signed-off-by: Adam Dybkowski <adamx.dybkowski@intel.com>
    Acked-by: Fiona Trahe <fiona.trahe@intel.com>
  9. test/crypto: add RSA key type CRT

    Ayuj Verma authored and akhilnxp committed Jul 11, 2019
    Added RSA sign/verify and enc/dec tests for RSA
    key type CRT(quintuple) and associated test vectors.
    
    Signed-off-by: Kanaka Durga Kotamarthy <kkotamarthy@marvell.com>
    Signed-off-by: Ayuj Verma <ayverma@marvell.com>
    Signed-off-by: Shally Verma <shallyv@marvell.com>
    Acked-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
    Acked-by: Shally Verma <shallyv@marvell.com>
  10. test/crypto: move RSA enqueue/dequeue into functions

    Ayuj Verma authored and akhilnxp committed Jul 11, 2019
    Move common code of enqueue/dequeue into separate functions.
    
    Signed-off-by: Kanaka Durga Kotamarthy <kkotamarthy@marvell.com>
    Signed-off-by: Ayuj Verma <ayverma@marvell.com>
    Signed-off-by: Shally Verma <shallyv@marvell.com>
    Acked-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
    Acked-by: Shally Verma <shallyv@marvell.com>
  11. test/crypto: add capability check for ZUC cases

    Damian Nowak authored and akhilnxp committed Jul 15, 2019
    This patch adds checking if device support ZUC
    algorithms before running ZUC test cases.
    It also removes unnecessary checks of digest
    appended space and fixes some comments wording.
    
    Signed-off-by: Damian Nowak <damianx.nowak@intel.com>
    Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Older
You can’t perform that action at this time.