This patch set adds default configuration, compiling related rte.vars.mk files for tile, and architecture-specific operations for EAL. TileGx processor, as a SOC, contains a on-chip networking engine named mPIPE( multicore Programmable Intelligent Packet Engine). This patch set also adds poll mode driver for the mPIPE device. And to improve the performance of memory allocation, mPIPE's buffer stack is used as the mempool provider.
Zhigang Lu (15): mk: introduce Tilera Tile architecture eal/tile: add atomic operations for TileGx eal/tile: add byte order operations for TileGx eal/tile: add spinlock operations for TileGx eal/tile: add prefetch operations for TileGx eal/tile: add memcpy operations for TileGx eal/tile: add CPU flags operations for TileGx eal/tile: add cycle operations for TileGx eal: split vector operations to architecture specific eal/tile: add vector operations for TileGx eal/tile: add EAL support for global mPIPE initialization eal/tile: add mPIPE buffer stack mempool provider pmd/tile: add mPIPE poll mode driver for TileGx app/test: turn off cpu flag checks for tile architecture eal: allow empty set of compile time cpuflags app/test-pmd/mempool_anon.c | 2 +- app/test/Makefile | 6 +- app/test/test_cpuflags.c | 2 +- app/test/test_mempool_tile.c | 217 ++++ config/defconfig_tile-tilegx-linuxapp-gcc | 78 ++ lib/Makefile | 6 + lib/librte_eal/common/Makefile | 3 +- lib/librte_eal/common/eal_common_cpuflags.c | 4 +- .../common/include/arch/ppc_64/rte_common_vect.h | 73 ++ .../common/include/arch/tile/rte_atomic.h | 62 + .../common/include/arch/tile/rte_byteorder.h | 70 + .../common/include/arch/tile/rte_common_vect.h | 49 + .../common/include/arch/tile/rte_cpuflags.h | 69 + .../common/include/arch/tile/rte_cycles.h | 64 + .../common/include/arch/tile/rte_memcpy.h | 97 ++ .../common/include/arch/tile/rte_mpipe.h | 67 + .../common/include/arch/tile/rte_prefetch.h | 62 + .../common/include/arch/tile/rte_spinlock.h | 47 + .../common/include/arch/x86/rte_common_vect.h | 81 ++ .../common/include/generic/rte_common_vect.h | 51 + lib/librte_eal/common/include/rte_common_vect.h | 93 -- lib/librte_eal/linuxapp/eal/Makefile | 7 + lib/librte_eal/linuxapp/eal/eal.c | 9 + lib/librte_eal/linuxapp/eal/eal_mpipe_tile.c | 147 +++ lib/librte_mempool_tile/Makefile | 48 + lib/librte_mempool_tile/rte_mempool.c | 381 ++++++ lib/librte_mempool_tile/rte_mempool.h | 634 +++++++++ lib/librte_pmd_mpipe/Makefile | 24 + lib/librte_pmd_mpipe/pmd_mpipe.c | 1343 ++++++++++++++++++++ mk/arch/tile/rte.vars.mk | 59 + mk/machine/tilegx/rte.vars.mk | 58 + mk/rte.app.mk | 8 + 32 files changed, 3822 insertions(+), 99 deletions(-) create mode 100644 app/test/test_mempool_tile.c create mode 100644 config/defconfig_tile-tilegx-linuxapp-gcc create mode 100644 lib/librte_eal/common/include/arch/ppc_64/rte_common_vect.h create mode 100644 lib/librte_eal/common/include/arch/tile/rte_atomic.h create mode 100644 lib/librte_eal/common/include/arch/tile/rte_byteorder.h create mode 100644 lib/librte_eal/common/include/arch/tile/rte_common_vect.h create mode 100644 lib/librte_eal/common/include/arch/tile/rte_cpuflags.h create mode 100644 lib/librte_eal/common/include/arch/tile/rte_cycles.h create mode 100644 lib/librte_eal/common/include/arch/tile/rte_memcpy.h create mode 100644 lib/librte_eal/common/include/arch/tile/rte_mpipe.h create mode 100644 lib/librte_eal/common/include/arch/tile/rte_prefetch.h create mode 100644 lib/librte_eal/common/include/arch/tile/rte_spinlock.h create mode 100644 lib/librte_eal/common/include/arch/x86/rte_common_vect.h create mode 100644 lib/librte_eal/common/include/generic/rte_common_vect.h delete mode 100644 lib/librte_eal/common/include/rte_common_vect.h create mode 100644 lib/librte_eal/linuxapp/eal/eal_mpipe_tile.c create mode 100644 lib/librte_mempool_tile/Makefile create mode 100644 lib/librte_mempool_tile/rte_mempool.c create mode 100644 lib/librte_mempool_tile/rte_mempool.h create mode 100644 lib/librte_pmd_mpipe/Makefile create mode 100644 lib/librte_pmd_mpipe/pmd_mpipe.c create mode 100644 mk/arch/tile/rte.vars.mk create mode 100644 mk/machine/tilegx/rte.vars.mk -- 2.1.2