get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/97930/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 97930,
    "url": "http://patches.dpdk.org/api/patches/97930/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20210903124102.47425-1-hkalra@marvell.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20210903124102.47425-1-hkalra@marvell.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210903124102.47425-1-hkalra@marvell.com",
    "date": "2021-09-03T12:40:55",
    "name": "[v1,0/7] make rte_intr_handle internal",
    "commit_ref": null,
    "pull_url": null,
    "state": null,
    "archived": false,
    "hash": null,
    "submitter": {
        "id": 1182,
        "url": "http://patches.dpdk.org/api/people/1182/?format=api",
        "name": "Harman Kalra",
        "email": "hkalra@marvell.com"
    },
    "delegate": null,
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20210903124102.47425-1-hkalra@marvell.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/97930/comments/",
    "check": "pending",
    "checks": "http://patches.dpdk.org/api/patches/97930/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id D3582A0C54;\n\tFri,  3 Sep 2021 14:41:52 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 5C85040E64;\n\tFri,  3 Sep 2021 14:41:52 +0200 (CEST)",
            "from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com\n [67.231.156.173])\n by mails.dpdk.org (Postfix) with ESMTP id EA45340E3C\n for <dev@dpdk.org>; Fri,  3 Sep 2021 14:41:49 +0200 (CEST)",
            "from pps.filterd (m0045851.ppops.net [127.0.0.1])\n by mx0b-0016f401.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1837tLo4012010\n for <dev@dpdk.org>; Fri, 3 Sep 2021 05:41:49 -0700",
            "from dc5-exch02.marvell.com ([199.233.59.182])\n by mx0b-0016f401.pphosted.com with ESMTP id 3aufr890th-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT)\n for <dev@dpdk.org>; Fri, 03 Sep 2021 05:41:48 -0700",
            "from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH02.marvell.com\n (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.18;\n Fri, 3 Sep 2021 05:41:46 -0700",
            "from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com\n (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.18 via Frontend\n Transport; Fri, 3 Sep 2021 05:41:46 -0700",
            "from localhost.localdomain (unknown [10.29.52.211])\n by maili.marvell.com (Postfix) with ESMTP id CDE3C5B6942;\n Fri,  3 Sep 2021 05:41:45 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com;\n h=from : to : cc :\n subject : date : message-id : in-reply-to : references : mime-version :\n content-type; s=pfpt0220; bh=0I0zu9etHLJ8F7MPs+m9omorJUv0nUfakXIKHdhMyJg=;\n b=Ewvv+tE4DU7a+RLV4n7JSd+YvsB0e8Ucqa8UQkZiUF92qZqZJjB0JiISxp1qOugVNewV\n ZdzWn/hlNANVqPKZavYTi4lGMYHmLhq0nEzOKqaxVnaqWY+hSeq7aNQO7ZOlQShW55os\n 5WRGCIYhp58lomG1Hm0kNsic6meFYzyrAGXnYbV86vnmwlxKCfQQvEZYOmiUsE2O+OEd\n HQGSNNP9SjIlbH/FJtFEuM4sMnSHUWY/5ubXBmI5WWMtpVSSmCo2CdqmNr/ngZbkfpb3\n UW0nW7gpQJNjUatyitr9+Vd93pKO+iWHasRrC+brSKUybR5V229qAfMTVkhS8CDpEja4 lA==",
        "From": "Harman Kalra <hkalra@marvell.com>",
        "To": "<dev@dpdk.org>",
        "CC": "Harman Kalra <hkalra@marvell.com>",
        "Date": "Fri, 3 Sep 2021 18:10:55 +0530",
        "Message-ID": "<20210903124102.47425-1-hkalra@marvell.com>",
        "X-Mailer": "git-send-email 2.18.0",
        "In-Reply-To": "<20210826145726.102081-1-hkalra@marvell.com>",
        "References": "<20210826145726.102081-1-hkalra@marvell.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Proofpoint-ORIG-GUID": "A39MDVEhqgyV0Os_RUOjKswtyh2aGtaZ",
        "X-Proofpoint-GUID": "A39MDVEhqgyV0Os_RUOjKswtyh2aGtaZ",
        "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.391,FMLib:17.0.607.475\n definitions=2021-09-03_03,2021-09-03_01,2020-04-07_01",
        "Subject": "[dpdk-dev] [PATCH v1 0/7] make rte_intr_handle internal",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Moving struct rte_intr_handle as an internal structure to\navoid any ABI breakages in future. Since this structure defines\nsome static arrays and changing respective macros breaks the ABI.\nEg:\nCurrently RTE_MAX_RXTX_INTR_VEC_ID imposes a limit of maximum 512\nMSI-X interrupts that can be defined for a PCI device, while PCI\nspecification allows maximum 2048 MSI-X interrupts that can be used.\nIf some PCI device requires more than 512 vectors, either change the\nRTE_MAX_RXTX_INTR_VEC_ID limit or dynamically allocate based on\nPCI device MSI-X size on probe time. Either way its an ABI breakage.\n\nChange already included in 21.11 ABI improvement spreadsheet (item 42):\nhttps://urldefense.proofpoint.com/v2/url?u=https-3A__docs.google.com_s\npreadsheets_d_1betlC000ua5SsSiJIcC54mCCCJnW6voH5Dqv9UxeyfE_edit-23gid-\n3D0&d=DwICaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=5ESHPj7V-7JdkxT_Z_SU6RrS37ys4U\nXudBQ_rrS5LRo&m=7dl3OmXU7QHMmWYB6V1hYJtq1cUkjfhXUwze2Si_48c&s=lh6DEGhR\nBg1shODpAy3RQk-H-0uQx5icRfUBf9dtCp4&e=\n\n\nThis series makes struct rte_intr_handle totally opaque to the outside\nworld by wrapping it inside a .c file and providing get set wrapper APIs\nto read or manipulate its fields.. Any changes to be made to any of the\nfields should be done via these get set APIs.\nIntroduced a new eal_common_interrupts.c where all these APIs are defined\nand also hides struct rte_intr_handle definition.\n\nDetails on each patch of the series:\nPatch 1: eal: interrupt handle API prototypes\nThis patch provides prototypes of all the new get set APIs, and\nalso rearranges the headers related to interrupt framework. Epoll\nrelated definitions prototypes are moved into a new header i.e.\nrte_epoll.h and APIs defined in rte_eal_interrupts.h which were\ndriver specific are moved to rte_interrupts.h (as anyways it was\naccessible and used outside DPDK library. Later in the series\nrte_eal_interrupts.h is removed.\n\nPatch 2: eal/interrupts: implement get set APIs\nImplementing all get, set and alloc APIs. Alloc APIs are implemented\nto allocate memory for interrupt handle instance. Currently most of\nthe drivers defines interrupt handle instance as static but now it cant\nbe static as size of rte_intr_handle is unknown to all the drivers.\nDrivers are expected to allocate interrupt instances during initialization\nand free these instances during cleanup phase.\n\nPatch 3: eal/interrupts: avoid direct access to interrupt handle\nModifying the interrupt framework for linux and freebsd to use these\nget set alloc APIs as per requirement and avoid accessing the fields\ndirectly.\n\nPatch 4: test/interrupt: apply get set interrupt handle APIs\nUpdating interrupt test suite to use interrupt handle APIs.\n\nPatch 5: drivers: remove direct access to interrupt handle fields\nModifying all the drivers and libraries which are currently directly\naccessing the interrupt handle fields. Drivers are expected to\nallocated the interrupt instance, use get set APIs with the allocated\ninterrupt handle and free it on cleanup.\n\nPatch 6: eal/interrupts: make interrupt handle structure opaque\nIn this patch rte_eal_interrupt.h is removed, struct rte_intr_handle\ndefinition is moved to c file to make it completely opaque. As part of\ninterrupt handle allocation, array like efds and elist(which are currently\nstatic) are dynamically allocated with default size\n(RTE_MAX_RXTX_INTR_VEC_ID). Later these arrays can be reallocated as per\ndevice requirement using new API rte_intr_handle_event_list_update().\nEg, on PCI device probing MSIX size can be queried and these arrays can\nbe reallocated accordingly.\n\nPatch 7: eal/alarm: introduce alarm fini routine\nIntroducing alarm fini routine, as the memory allocated for alarm interrupt\ninstance can be freed in alarm fini.\n\nTesting performed:\n1. Validated the series by running interrupts and alarm test suite.\n2. Validate l3fwd power functionality with octeontx2 and i40e intel cards,\n   where interrupts are expected on packet arrival.\n\nv1:\n* Fixed freebsd compilation failure\n* Fixed seg fault in case of memif\n\nHarman Kalra (7):\n  eal: interrupt handle API prototypes\n  eal/interrupts: implement get set APIs\n  eal/interrupts: avoid direct access to interrupt handle\n  test/interrupt: apply get set interrupt handle APIs\n  drivers: remove direct access to interrupt handle fields\n  eal/interrupts: make interrupt handle structure opaque\n  eal/alarm: introduce alarm fini routine\n\n MAINTAINERS                                   |   1 +\n app/test/test_interrupts.c                    | 237 +++---\n drivers/baseband/acc100/rte_acc100_pmd.c      |  18 +-\n .../fpga_5gnr_fec/rte_fpga_5gnr_fec.c         |  13 +-\n drivers/baseband/fpga_lte_fec/fpga_lte_fec.c  |  14 +-\n drivers/bus/auxiliary/auxiliary_common.c      |   2 +\n drivers/bus/auxiliary/linux/auxiliary.c       |  11 +\n drivers/bus/auxiliary/rte_bus_auxiliary.h     |   2 +-\n drivers/bus/dpaa/dpaa_bus.c                   |  28 +-\n drivers/bus/dpaa/rte_dpaa_bus.h               |   2 +-\n drivers/bus/fslmc/fslmc_bus.c                 |  17 +-\n drivers/bus/fslmc/fslmc_vfio.c                |  32 +-\n drivers/bus/fslmc/portal/dpaa2_hw_dpio.c      |  21 +-\n drivers/bus/fslmc/portal/dpaa2_hw_pvt.h       |   2 +-\n drivers/bus/fslmc/rte_fslmc.h                 |   2 +-\n drivers/bus/ifpga/ifpga_bus.c                 |  16 +-\n drivers/bus/ifpga/rte_bus_ifpga.h             |   2 +-\n drivers/bus/pci/bsd/pci.c                     |  21 +-\n drivers/bus/pci/linux/pci.c                   |   4 +-\n drivers/bus/pci/linux/pci_uio.c               |  73 +-\n drivers/bus/pci/linux/pci_vfio.c              | 115 ++-\n drivers/bus/pci/pci_common.c                  |  29 +-\n drivers/bus/pci/pci_common_uio.c              |  21 +-\n drivers/bus/pci/rte_bus_pci.h                 |   4 +-\n drivers/bus/vmbus/linux/vmbus_bus.c           |   7 +\n drivers/bus/vmbus/linux/vmbus_uio.c           |  37 +-\n drivers/bus/vmbus/rte_bus_vmbus.h             |   2 +-\n drivers/bus/vmbus/vmbus_common_uio.c          |  24 +-\n drivers/common/cnxk/roc_cpt.c                 |   8 +-\n drivers/common/cnxk/roc_dev.c                 |  14 +-\n drivers/common/cnxk/roc_irq.c                 | 106 +--\n drivers/common/cnxk/roc_nix_irq.c             |  37 +-\n drivers/common/cnxk/roc_npa.c                 |   2 +-\n drivers/common/cnxk/roc_platform.h            |  34 +\n drivers/common/cnxk/roc_sso.c                 |   4 +-\n drivers/common/cnxk/roc_tim.c                 |   4 +-\n drivers/common/octeontx2/otx2_dev.c           |  14 +-\n drivers/common/octeontx2/otx2_irq.c           | 117 +--\n .../octeontx2/otx2_cryptodev_hw_access.c      |   4 +-\n drivers/event/octeontx2/otx2_evdev_irq.c      |  12 +-\n drivers/mempool/octeontx2/otx2_mempool.c      |   2 +-\n drivers/net/atlantic/atl_ethdev.c             |  22 +-\n drivers/net/avp/avp_ethdev.c                  |   8 +-\n drivers/net/axgbe/axgbe_ethdev.c              |  12 +-\n drivers/net/axgbe/axgbe_mdio.c                |   6 +-\n drivers/net/bnx2x/bnx2x_ethdev.c              |  10 +-\n drivers/net/bnxt/bnxt_ethdev.c                |  32 +-\n drivers/net/bnxt/bnxt_irq.c                   |   4 +-\n drivers/net/dpaa/dpaa_ethdev.c                |  47 +-\n drivers/net/dpaa2/dpaa2_ethdev.c              |  10 +-\n drivers/net/e1000/em_ethdev.c                 |  24 +-\n drivers/net/e1000/igb_ethdev.c                |  84 ++-\n drivers/net/ena/ena_ethdev.c                  |  36 +-\n drivers/net/enic/enic_main.c                  |  27 +-\n drivers/net/failsafe/failsafe.c               |  24 +-\n drivers/net/failsafe/failsafe_intr.c          |  45 +-\n drivers/net/failsafe/failsafe_ops.c           |  23 +-\n drivers/net/failsafe/failsafe_private.h       |   2 +-\n drivers/net/fm10k/fm10k_ethdev.c              |  32 +-\n drivers/net/hinic/hinic_pmd_ethdev.c          |  10 +-\n drivers/net/hns3/hns3_ethdev.c                |  50 +-\n drivers/net/hns3/hns3_ethdev_vf.c             |  57 +-\n drivers/net/hns3/hns3_rxtx.c                  |   2 +-\n drivers/net/i40e/i40e_ethdev.c                |  55 +-\n drivers/net/i40e/i40e_ethdev_vf.c             |  43 +-\n drivers/net/iavf/iavf_ethdev.c                |  41 +-\n drivers/net/iavf/iavf_vchnl.c                 |   4 +-\n drivers/net/ice/ice_dcf.c                     |  10 +-\n drivers/net/ice/ice_dcf_ethdev.c              |  23 +-\n drivers/net/ice/ice_ethdev.c                  |  51 +-\n drivers/net/igc/igc_ethdev.c                  |  47 +-\n drivers/net/ionic/ionic_ethdev.c              |  12 +-\n drivers/net/ixgbe/ixgbe_ethdev.c              |  70 +-\n drivers/net/memif/memif_socket.c              | 114 ++-\n drivers/net/memif/memif_socket.h              |   4 +-\n drivers/net/memif/rte_eth_memif.c             |  63 +-\n drivers/net/memif/rte_eth_memif.h             |   2 +-\n drivers/net/mlx4/mlx4.c                       |  20 +-\n drivers/net/mlx4/mlx4.h                       |   2 +-\n drivers/net/mlx4/mlx4_intr.c                  |  48 +-\n drivers/net/mlx5/linux/mlx5_os.c              |  56 +-\n drivers/net/mlx5/linux/mlx5_socket.c          |  26 +-\n drivers/net/mlx5/mlx5.h                       |   6 +-\n drivers/net/mlx5/mlx5_rxq.c                   |  43 +-\n drivers/net/mlx5/mlx5_trigger.c               |   4 +-\n drivers/net/mlx5/mlx5_txpp.c                  |  27 +-\n drivers/net/netvsc/hn_ethdev.c                |   4 +-\n drivers/net/nfp/nfp_common.c                  |  28 +-\n drivers/net/nfp/nfp_ethdev.c                  |  13 +-\n drivers/net/nfp/nfp_ethdev_vf.c               |  13 +-\n drivers/net/ngbe/ngbe_ethdev.c                |  31 +-\n drivers/net/octeontx2/otx2_ethdev_irq.c       |  35 +-\n drivers/net/qede/qede_ethdev.c                |  16 +-\n drivers/net/sfc/sfc_intr.c                    |  29 +-\n drivers/net/tap/rte_eth_tap.c                 |  37 +-\n drivers/net/tap/rte_eth_tap.h                 |   2 +-\n drivers/net/tap/tap_intr.c                    |  33 +-\n drivers/net/thunderx/nicvf_ethdev.c           |  13 +\n drivers/net/thunderx/nicvf_struct.h           |   2 +-\n drivers/net/txgbe/txgbe_ethdev.c              |  36 +-\n drivers/net/txgbe/txgbe_ethdev_vf.c           |  35 +-\n drivers/net/vhost/rte_eth_vhost.c             |  78 +-\n drivers/net/virtio/virtio_ethdev.c            |  17 +-\n .../net/virtio/virtio_user/virtio_user_dev.c  |  53 +-\n drivers/net/vmxnet3/vmxnet3_ethdev.c          |  45 +-\n drivers/raw/ifpga/ifpga_rawdev.c              |  42 +-\n drivers/raw/ntb/ntb.c                         |  10 +-\n .../regex/octeontx2/otx2_regexdev_hw_access.c |   4 +-\n drivers/vdpa/ifc/ifcvf_vdpa.c                 |   5 +-\n drivers/vdpa/mlx5/mlx5_vdpa.c                 |  11 +\n drivers/vdpa/mlx5/mlx5_vdpa.h                 |   4 +-\n drivers/vdpa/mlx5/mlx5_vdpa_event.c           |  22 +-\n drivers/vdpa/mlx5/mlx5_vdpa_virtq.c           |  46 +-\n lib/bbdev/rte_bbdev.c                         |   4 +-\n lib/eal/common/eal_common_interrupts.c        | 668 +++++++++++++++++\n lib/eal/common/eal_private.h                  |  11 +\n lib/eal/common/meson.build                    |   2 +\n lib/eal/freebsd/eal.c                         |   1 +\n lib/eal/freebsd/eal_alarm.c                   |  56 +-\n lib/eal/freebsd/eal_interrupts.c              |  94 ++-\n lib/eal/include/meson.build                   |   2 +-\n lib/eal/include/rte_eal_interrupts.h          | 269 -------\n lib/eal/include/rte_eal_trace.h               |  24 +-\n lib/eal/include/rte_epoll.h                   | 116 +++\n lib/eal/include/rte_interrupts.h              | 673 +++++++++++++++++-\n lib/eal/linux/eal.c                           |   1 +\n lib/eal/linux/eal_alarm.c                     |  39 +-\n lib/eal/linux/eal_dev.c                       |  65 +-\n lib/eal/linux/eal_interrupts.c                | 294 +++++---\n lib/eal/version.map                           |  30 +\n lib/ethdev/ethdev_pci.h                       |   2 +-\n lib/ethdev/rte_ethdev.c                       |  14 +-\n 132 files changed, 3797 insertions(+), 1685 deletions(-)\n create mode 100644 lib/eal/common/eal_common_interrupts.c\n delete mode 100644 lib/eal/include/rte_eal_interrupts.h\n create mode 100644 lib/eal/include/rte_epoll.h",
    "diff": null,
    "prefixes": [
        "v1",
        "0/7"
    ]
}