>06/04/2020 14:33, Pavan Nikhilesh Bhagavatula: >> >> From: Pavan Nikhilesh Bhagavatula >> >> > >+uint16_t >> >> > >+rte_regexdev_enqueue_burst(uint8_t dev_id, uint16_t >qp_id, >> >> > >+ struct rte_regex_ops **ops, uint16_t >nb_ops) >> >> > >+{ >> >> > >+ return regex_devices[dev_id]- >> >> > >>enqueue(regex_devices[dev_id], qp_id, >> >> > >+ ops, nb_ops); >> >> > >+} >> >> > >> >> > Move these functions to .h in-lining them. >> >> > Also, please add debug checks @see >> >rte_eth_rx_burst/rte_eth_tx_burst. >> >> >> >> O.K will update. >> > >> >In general, inlining is a pain for ABI compatibility. >> >Please inline only if the gain is very significant. >> > >> >> The performance gain mostly comes from hoisting >`regex_devices[dev_id]` load above the >> poll loop. >> Since, the performance measurement application is still in pipeline >and regexdev would be >> experimental for next couple of releases I suggest inlining it now and >worrying about ABI when >> experimental tag needs to be removed. > >No, we must worry about ABI from the beginning.
I though performance was the primary objective :-). > >> We can follow the same path as done by ethdev >[https://urldefense.proofpoint.com/v2/url?u=https-3A__www.mail- >2Darchive.com_dev- >40dpdk.org_msg142392.html&d=DwICAg&c=nKjWec2b6R0mOyPaz7xtf >Q&r=E3SgYMjtKCMVsB-fmvgGV3o- >g_fjLhk5Pupi9ijohpc&m=7Gqb6WKmZV5uY3xa7FRVrRVDz8Usrsd- >rDjIKr6CUQQ&s=sQo2Kx9fzTNXwiQ2Fzki3s5GSuiiAEzz2VtN68_KKXo&e= >] > >ethdev is not an argument. What about ring? [http://mails.dpdk.org/archives/dev/2020-April/161506.html] Why do we need to prove the same performance advantage using in-lining for datapath critical functions again and again? > >