MCPcopy Create free account
hub / github.com/F-Stack/f-stack / eventdev_build_telemetry_data

Function eventdev_build_telemetry_data

dpdk/lib/eventdev/rte_eventdev.c:1825–1891  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1823}
1824
1825static int
1826eventdev_build_telemetry_data(int dev_id,
1827 enum rte_event_dev_xstats_mode mode,
1828 int port_queue_id,
1829 struct rte_tel_data *d)
1830{
1831 struct rte_event_dev_xstats_name *xstat_names;
1832 uint64_t *ids;
1833 uint64_t *values;
1834 int i, ret, num_xstats;
1835
1836 num_xstats = rte_event_dev_xstats_names_get(dev_id,
1837 mode,
1838 port_queue_id,
1839 NULL,
1840 NULL,
1841 0);
1842
1843 if (num_xstats < 0)
1844 return -1;
1845
1846 /* use one malloc for names */
1847 xstat_names = malloc((sizeof(struct rte_event_dev_xstats_name))
1848 * num_xstats);
1849 if (xstat_names == NULL)
1850 return -1;
1851
1852 ids = malloc((sizeof(uint64_t)) * num_xstats);
1853 if (ids == NULL) {
1854 free(xstat_names);
1855 return -1;
1856 }
1857
1858 values = malloc((sizeof(uint64_t)) * num_xstats);
1859 if (values == NULL) {
1860 free(xstat_names);
1861 free(ids);
1862 return -1;
1863 }
1864
1865 ret = rte_event_dev_xstats_names_get(dev_id, mode, port_queue_id,
1866 xstat_names, ids, num_xstats);
1867 if (ret < 0 || ret > num_xstats) {
1868 free(xstat_names);
1869 free(ids);
1870 free(values);
1871 return -1;
1872 }
1873
1874 ret = rte_event_dev_xstats_get(dev_id, mode, port_queue_id,
1875 ids, values, num_xstats);
1876 if (ret < 0 || ret > num_xstats) {
1877 free(xstat_names);
1878 free(ids);
1879 free(values);
1880 return -1;
1881 }
1882

Callers 3

handle_dev_xstatsFunction · 0.85
handle_port_xstatsFunction · 0.85
handle_queue_xstatsFunction · 0.85

Calls 6

mallocFunction · 0.85
rte_event_dev_xstats_getFunction · 0.85
rte_tel_data_start_dictFunction · 0.85
freeFunction · 0.50

Tested by

no test coverage detected