From: Jerin Jacob <jerinjacobk@gmail.com> To: Bruce Richardson <bruce.richardson@intel.com> Cc: dpdk-dev <dev@dpdk.org>, "Walsh, Conor" <conor.walsh@intel.com>, "Laatz, Kevin" <kevin.laatz@intel.com>, fengchengwen <fengchengwen@huawei.com>, Jerin Jacob <jerinj@marvell.com>, Satananda Burla <sburla@marvell.com>, Radha Mohan Chintakuntla <radhac@marvell.com> Subject: Re: [dpdk-dev] [PATCH v3 2/8] dmadev: add burst capacity API Date: Wed, 8 Sep 2021 23:47:59 +0530 Message-ID: <CALBAE1MgpyWEmD4MNXjX3toyW47m=K3CFPbyrjfq_vRBrg_ppQ@mail.gmail.com> (raw) In-Reply-To: <20210907164925.291904-3-bruce.richardson@intel.com> On Tue, 7 Sep 2021, 10:25 pm Bruce Richardson, <bruce.richardson@intel.com> wrote: > From: Kevin Laatz <kevin.laatz@intel.com> > > Add a burst capacity check API to the dmadev library. This API is useful to > applications which need to how many descriptors can be enqueued in the > current batch. For example, it could be used to determine whether all > segments of a multi-segment packet can be enqueued in the same batch or not > (to avoid half-offload of the packet). > #Could you share more details on the use case with vhost? # Are they planning to use this in fast path if so it need to move as fast path function pointer? # Assume the use case needs N rte_dma_copy to complete a logical copy at vhost level. Is the any issue in half-offload, meaning when N th one successfully completed then only the logical copy is completed. Right? # There is already nb_desc with which a dma_queue is configured. So if the application does its accounting properly, it knows how many desc it has used up and how many completions it has processed. Would like to understand more details on this API usage. Sorry for the format issue, sending from mobile. > Signed-off-by: Kevin Laatz <kevin.laatz@intel.com> > --- > lib/dmadev/rte_dmadev.c | 11 +++++++++++ > lib/dmadev/rte_dmadev.h | 19 +++++++++++++++++++ > lib/dmadev/rte_dmadev_core.h | 5 +++++ > lib/dmadev/version.map | 1 + > 4 files changed, 36 insertions(+) > > diff --git a/lib/dmadev/rte_dmadev.c b/lib/dmadev/rte_dmadev.c > index ab45928efb..6494871f05 100644 > --- a/lib/dmadev/rte_dmadev.c > +++ b/lib/dmadev/rte_dmadev.c > @@ -573,6 +573,17 @@ dmadev_dump_capability(FILE *f, uint64_t dev_capa) > fprintf(f, "\n"); > } > > +int > +rte_dmadev_burst_capacity(uint16_t dev_id, uint16_t vchan) > +{ > + const struct rte_dmadev *dev = &rte_dmadevices[dev_id]; > + > + RTE_DMADEV_VALID_DEV_ID_OR_ERR_RET(dev_id, -EINVAL); > + > + RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->burst_capacity, -ENOTSUP); > + return (*dev->dev_ops->burst_capacity)(dev, vchan); > +} > + > int > rte_dmadev_dump(uint16_t dev_id, FILE *f) > { > diff --git a/lib/dmadev/rte_dmadev.h b/lib/dmadev/rte_dmadev.h > index 39d73872c8..8b84914810 100644 > --- a/lib/dmadev/rte_dmadev.h > +++ b/lib/dmadev/rte_dmadev.h > @@ -673,6 +673,25 @@ __rte_experimental > int > rte_dmadev_vchan_status(uint16_t dev_id, uint16_t vchan, enum > rte_dmadev_vchan_status *status); > > +/** > + * @warning > + * @b EXPERIMENTAL: this API may change without prior notice. > + * > + * Check remaining capacity in descriptor ring for the current burst. > + * > + * @param dev_id > + * The identifier of the device. > + * @param vchan > + * The identifier of virtual DMA channel. > + * > + * @return > + * - Remaining space in the descriptor ring for the current burst on > success. > + * - -ENOTSUP: if not supported by the device. > + */ > +__rte_experimental > +int > +rte_dmadev_burst_capacity(uint16_t dev_id, uint16_t vchan); > + > /** > * @warning > * @b EXPERIMENTAL: this API may change without prior notice. > diff --git a/lib/dmadev/rte_dmadev_core.h b/lib/dmadev/rte_dmadev_core.h > index 3c9d698044..2756936798 100644 > --- a/lib/dmadev/rte_dmadev_core.h > +++ b/lib/dmadev/rte_dmadev_core.h > @@ -52,6 +52,10 @@ typedef int (*rte_dmadev_stats_get_t)(const struct > rte_dmadev *dev, > typedef int (*rte_dmadev_stats_reset_t)(struct rte_dmadev *dev, uint16_t > vchan); > /**< @internal Used to reset basic statistics. */ > > +typedef uint16_t (*rte_dmadev_burst_capacity_t)(const struct rte_dmadev > *dev, > + uint16_t vchan); > +/** < @internal Used to check the remaining space in descriptor ring. */ > + > typedef int (*rte_dmadev_dump_t)(const struct rte_dmadev *dev, FILE *f); > /**< @internal Used to dump internal information. */ > > @@ -114,6 +118,7 @@ struct rte_dmadev_ops { > rte_dmadev_stats_get_t stats_get; > rte_dmadev_stats_reset_t stats_reset; > > + rte_dmadev_burst_capacity_t burst_capacity; > rte_dmadev_vchan_status_t vchan_status; > > rte_dmadev_dump_t dev_dump; > diff --git a/lib/dmadev/version.map b/lib/dmadev/version.map > index 10eeb0f7a3..56cb279e8f 100644 > --- a/lib/dmadev/version.map > +++ b/lib/dmadev/version.map > @@ -1,6 +1,7 @@ > EXPERIMENTAL { > global: > > + rte_dmadev_burst_capacity; > rte_dmadev_close; > rte_dmadev_completed; > rte_dmadev_completed_status; > -- > 2.30.2 > >
next prev parent reply other threads:[~2021-09-08 18:18 UTC|newest] Thread overview: 130+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-08-26 18:32 [dpdk-dev] [RFC PATCH 0/7] add test suite for DMA drivers Bruce Richardson 2021-08-26 18:32 ` [dpdk-dev] [RFC PATCH 1/7] app/test: take API tests from skeleton dmadev Bruce Richardson 2021-08-26 18:32 ` [dpdk-dev] [RFC PATCH 2/7] dmadev: remove selftest support Bruce Richardson 2021-08-26 18:32 ` [dpdk-dev] [RFC PATCH 3/7] app/test: add basic dmadev instance tests Bruce Richardson 2021-08-26 18:32 ` [dpdk-dev] [RFC PATCH 4/7] app/test: add basic dmadev copy tests Bruce Richardson 2021-08-27 7:14 ` Jerin Jacob 2021-08-27 10:41 ` Bruce Richardson 2021-08-26 18:32 ` [dpdk-dev] [RFC PATCH 5/7] app/test: add more comprehensive " Bruce Richardson 2021-08-26 18:33 ` [dpdk-dev] [RFC PATCH 6/7] app/test: test dmadev instance failure handling Bruce Richardson 2021-08-26 18:33 ` [dpdk-dev] [RFC PATCH 7/7] app/test: add dmadev fill tests Bruce Richardson 2021-09-01 16:32 ` [dpdk-dev] [PATCH v2 0/6] add test suite for DMA drivers Bruce Richardson 2021-09-01 16:32 ` [dpdk-dev] [PATCH v2 1/6] dmadev: add device idle check for testing use Bruce Richardson 2021-09-02 12:54 ` fengchengwen 2021-09-02 14:21 ` Bruce Richardson 2021-09-01 16:32 ` [dpdk-dev] [PATCH v2 2/6] app/test: add basic dmadev instance tests Bruce Richardson 2021-09-01 19:24 ` Mattias Rönnblom 2021-09-02 10:30 ` Bruce Richardson 2021-09-03 16:07 ` Conor Walsh 2021-09-01 16:32 ` [dpdk-dev] [PATCH v2 3/6] app/test: add basic dmadev copy tests Bruce Richardson 2021-09-02 7:44 ` Jerin Jacob 2021-09-02 8:06 ` Bruce Richardson 2021-09-02 10:54 ` Jerin Jacob 2021-09-02 11:43 ` Bruce Richardson 2021-09-02 13:05 ` Jerin Jacob 2021-09-02 14:21 ` Bruce Richardson 2021-09-03 16:05 ` Kevin Laatz 2021-09-03 16:07 ` Conor Walsh 2021-09-01 16:32 ` [dpdk-dev] [PATCH v2 4/6] app/test: add more comprehensive " Bruce Richardson 2021-09-03 16:08 ` Conor Walsh 2021-09-03 16:11 ` Kevin Laatz 2021-09-01 16:32 ` [dpdk-dev] [PATCH v2 5/6] app/test: test dmadev instance failure handling Bruce Richardson 2021-09-01 19:53 ` Mattias Rönnblom 2021-09-03 16:08 ` Conor Walsh 2021-09-03 16:21 ` Kevin Laatz 2021-09-01 16:32 ` [dpdk-dev] [PATCH v2 6/6] app/test: add dmadev fill tests Bruce Richardson 2021-09-03 16:09 ` Conor Walsh 2021-09-03 16:17 ` Conor Walsh 2021-09-03 16:33 ` Bruce Richardson 2021-09-07 16:49 ` [dpdk-dev] [PATCH v3 0/8] add test suite for DMA drivers Bruce Richardson 2021-09-07 16:49 ` [dpdk-dev] [PATCH v3 1/8] dmadev: add channel status check for testing use Bruce Richardson 2021-09-08 10:50 ` Walsh, Conor 2021-09-08 13:20 ` Kevin Laatz 2021-09-07 16:49 ` [dpdk-dev] [PATCH v3 2/8] dmadev: add burst capacity API Bruce Richardson 2021-09-08 10:53 ` Walsh, Conor 2021-09-08 18:17 ` Jerin Jacob [this message] 2021-09-09 8:16 ` Bruce Richardson 2021-09-17 13:54 ` Jerin Jacob 2021-09-17 14:37 ` Pai G, Sunil 2021-09-18 12:18 ` Jerin Jacob 2021-09-18 1:06 ` Hu, Jiayu 2021-09-18 12:12 ` Jerin Jacob 2021-09-21 13:57 ` Pai G, Sunil 2021-09-21 14:56 ` Jerin Jacob 2021-09-21 15:34 ` Pai G, Sunil 2021-09-21 16:58 ` Jerin Jacob 2021-09-21 17:12 ` Pai G, Sunil 2021-09-21 18:11 ` Jerin Jacob 2021-09-22 1:51 ` fengchengwen 2021-09-22 7:56 ` Bruce Richardson 2021-09-22 16:35 ` Bruce Richardson 2021-09-22 17:29 ` Jerin Jacob 2021-09-23 13:24 ` fengchengwen 2021-09-07 16:49 ` [dpdk-dev] [PATCH v3 3/8] app/test: add basic dmadev instance tests Bruce Richardson 2021-09-08 13:21 ` Kevin Laatz 2021-09-07 16:49 ` [dpdk-dev] [PATCH v3 4/8] app/test: add basic dmadev copy tests Bruce Richardson 2021-09-07 16:49 ` [dpdk-dev] [PATCH v3 5/8] app/test: add more comprehensive " Bruce Richardson 2021-09-07 16:49 ` [dpdk-dev] [PATCH v3 6/8] app/test: test dmadev instance failure handling Bruce Richardson 2021-09-07 16:49 ` [dpdk-dev] [PATCH v3 7/8] app/test: add dmadev fill tests Bruce Richardson 2021-09-07 16:49 ` [dpdk-dev] [PATCH v3 8/8] app/test: add dmadev burst capacity API test Bruce Richardson 2021-09-08 11:03 ` Walsh, Conor 2021-09-17 13:30 ` [dpdk-dev] [PATCH v4 0/9] add test suite for DMA drivers Bruce Richardson 2021-09-17 13:30 ` [dpdk-dev] [PATCH v4 1/9] dmadev: add channel status check for testing use Bruce Richardson 2021-09-17 13:30 ` [dpdk-dev] [PATCH v4 2/9] dmadev: add burst capacity API Bruce Richardson 2021-09-17 13:30 ` [dpdk-dev] [PATCH v4 3/9] dmadev: add device iterator Bruce Richardson 2021-09-17 13:30 ` [dpdk-dev] [PATCH v4 4/9] app/test: add basic dmadev instance tests Bruce Richardson 2021-09-17 13:30 ` [dpdk-dev] [PATCH v4 5/9] app/test: add basic dmadev copy tests Bruce Richardson 2021-09-17 13:30 ` [dpdk-dev] [PATCH v4 6/9] app/test: add more comprehensive " Bruce Richardson 2021-09-17 13:30 ` [dpdk-dev] [PATCH v4 7/9] app/test: test dmadev instance failure handling Bruce Richardson 2021-09-17 13:30 ` [dpdk-dev] [PATCH v4 8/9] app/test: add dmadev fill tests Bruce Richardson 2021-09-17 13:30 ` [dpdk-dev] [PATCH v4 9/9] app/test: add dmadev burst capacity API test Bruce Richardson 2021-09-17 13:54 ` [dpdk-dev] [PATCH v5 0/9] add test suite for DMA drivers Bruce Richardson 2021-09-17 13:54 ` [dpdk-dev] [PATCH v5 1/9] dmadev: add channel status check for testing use Bruce Richardson 2021-09-22 8:25 ` fengchengwen 2021-09-22 8:31 ` Bruce Richardson 2021-09-17 13:54 ` [dpdk-dev] [PATCH v5 2/9] dmadev: add burst capacity API Bruce Richardson 2021-09-17 13:54 ` [dpdk-dev] [PATCH v5 3/9] dmadev: add device iterator Bruce Richardson 2021-09-22 8:46 ` fengchengwen 2021-09-17 13:54 ` [dpdk-dev] [PATCH v5 4/9] app/test: add basic dmadev instance tests Bruce Richardson 2021-09-17 13:54 ` [dpdk-dev] [PATCH v5 5/9] app/test: add basic dmadev copy tests Bruce Richardson 2021-09-17 13:54 ` [dpdk-dev] [PATCH v5 6/9] app/test: add more comprehensive " Bruce Richardson 2021-09-17 13:54 ` [dpdk-dev] [PATCH v5 7/9] app/test: test dmadev instance failure handling Bruce Richardson 2021-09-17 13:54 ` [dpdk-dev] [PATCH v5 8/9] app/test: add dmadev fill tests Bruce Richardson 2021-09-17 13:54 ` [dpdk-dev] [PATCH v5 9/9] app/test: add dmadev burst capacity API test Bruce Richardson 2021-09-24 10:29 ` [dpdk-dev] [PATCH v6 00/13] add test suite for DMA drivers Bruce Richardson 2021-09-24 10:29 ` [dpdk-dev] [PATCH v6 01/13] dmadev: add channel status check for testing use Bruce Richardson 2021-09-24 10:29 ` [dpdk-dev] [PATCH v6 02/13] dma/skeleton: add channel status function Bruce Richardson 2021-09-24 10:29 ` [dpdk-dev] [PATCH v6 03/13] dmadev: add burst capacity API Bruce Richardson 2021-09-24 10:29 ` [dpdk-dev] [PATCH v6 04/13] dma/skeleton: add burst capacity function Bruce Richardson 2021-09-24 14:51 ` Conor Walsh 2021-09-24 10:29 ` [dpdk-dev] [PATCH v6 05/13] dmadev: add device iterator Bruce Richardson 2021-09-24 14:52 ` Conor Walsh 2021-09-24 15:58 ` Kevin Laatz 2021-09-24 10:29 ` [dpdk-dev] [PATCH v6 06/13] app/test: add basic dmadev instance tests Bruce Richardson 2021-09-24 10:29 ` [dpdk-dev] [PATCH v6 07/13] app/test: add basic dmadev copy tests Bruce Richardson 2021-09-24 10:29 ` [dpdk-dev] [PATCH v6 08/13] app/test: run test suite on skeleton driver Bruce Richardson 2021-09-24 15:58 ` Kevin Laatz 2021-09-24 10:29 ` [dpdk-dev] [PATCH v6 09/13] app/test: add more comprehensive dmadev copy tests Bruce Richardson 2021-09-24 10:31 ` [dpdk-dev] [PATCH v6 10/13] dmadev: add flag for error handling support Bruce Richardson 2021-09-24 14:52 ` Conor Walsh 2021-09-24 15:58 ` Kevin Laatz 2021-09-24 10:31 ` [dpdk-dev] [PATCH v6 11/13] app/test: test dmadev instance failure handling Bruce Richardson 2021-09-24 10:31 ` [dpdk-dev] [PATCH v6 12/13] app/test: add dmadev fill tests Bruce Richardson 2021-09-24 10:31 ` [dpdk-dev] [PATCH v6 13/13] app/test: add dmadev burst capacity API test Bruce Richardson 2021-10-13 15:17 ` [dpdk-dev] [PATCH v7 00/13] add test suite for DMA drivers Bruce Richardson 2021-10-13 15:17 ` [dpdk-dev] [PATCH v7 01/13] dmadev: add channel status check for testing use Bruce Richardson 2021-10-13 15:17 ` [dpdk-dev] [PATCH v7 02/13] dma/skeleton: add channel status function Bruce Richardson 2021-10-13 15:17 ` [dpdk-dev] [PATCH v7 03/13] dmadev: add burst capacity API Bruce Richardson 2021-10-13 15:17 ` [dpdk-dev] [PATCH v7 04/13] dma/skeleton: add burst capacity function Bruce Richardson 2021-10-13 15:17 ` [dpdk-dev] [PATCH v7 05/13] dmadev: add device iterator Bruce Richardson 2021-10-13 15:17 ` [dpdk-dev] [PATCH v7 06/13] app/test: add basic dmadev instance tests Bruce Richardson 2021-10-13 15:17 ` [dpdk-dev] [PATCH v7 07/13] app/test: add basic dmadev copy tests Bruce Richardson 2021-10-13 15:17 ` [dpdk-dev] [PATCH v7 08/13] app/test: run test suite on skeleton driver Bruce Richardson 2021-10-13 15:17 ` [dpdk-dev] [PATCH v7 09/13] app/test: add more comprehensive dmadev copy tests Bruce Richardson 2021-10-13 15:17 ` [dpdk-dev] [PATCH v7 10/13] dmadev: add flag for error handling support Bruce Richardson 2021-10-13 15:17 ` [dpdk-dev] [PATCH v7 11/13] app/test: test dmadev instance failure handling Bruce Richardson 2021-10-13 15:17 ` [dpdk-dev] [PATCH v7 12/13] app/test: add dmadev fill tests Bruce Richardson 2021-10-13 15:17 ` [dpdk-dev] [PATCH v7 13/13] app/test: add dmadev burst capacity API test Bruce Richardson 2021-10-18 9:20 ` [dpdk-dev] [PATCH v7 00/13] add test suite for DMA drivers Thomas Monjalon 2021-10-21 12:06 ` fengchengwen 2021-10-21 14:55 ` Bruce Richardson
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to='CALBAE1MgpyWEmD4MNXjX3toyW47m=K3CFPbyrjfq_vRBrg_ppQ@mail.gmail.com' \ --to=jerinjacobk@gmail.com \ --cc=bruce.richardson@intel.com \ --cc=conor.walsh@intel.com \ --cc=dev@dpdk.org \ --cc=fengchengwen@huawei.com \ --cc=jerinj@marvell.com \ --cc=kevin.laatz@intel.com \ --cc=radhac@marvell.com \ --cc=sburla@marvell.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
DPDK patches and discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://inbox.dpdk.org/dev/0 dev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 dev dev/ http://inbox.dpdk.org/dev \ dev@dpdk.org public-inbox-index dev Example config snippet for mirrors. Newsgroup available over NNTP: nntp://inbox.dpdk.org/inbox.dpdk.dev AGPL code for this site: git clone https://public-inbox.org/public-inbox.git