[dts] [PATCH V1 1/2] memory_register: upstream test plan

Tu, Lijuan lijuan.tu at intel.com
Thu Jun 7 03:55:22 CEST 2018


Hi yufeng

Only test case: dpdk malloc autotest is not contained in current tests.
Suggest add this case in test suite: unit_tests_eal
Other cases are duplicate
----------------------------------- -----+----------------------+--------------------+
your case					|current case		|current testsuite|
----------------------------------- -----+----------------------+--------------------+
dpdk mbuf autotest			|mbuf			|unit_tests_mbuf
----------------------------------- -----+----------------------+--------------------+
dpdk memcpy autotest			|memcpy		|unit_tests_eal
----------------------------------- -----+----------------------+--------------------+
dpdk memcpy perf autotest		|memcpy_perf	|unit_tests_eal
----------------------------------- -----+----------------------+--------------------+
dpdk memory autotest			|memory			|unit_tests_eal
----------------------------------- -----+----------------------+--------------------+
dpdk mempool autotest		|mempool		|unit_tests_mempool
----------------------------------- -----+----------------------+--------------------+
dpdk mempool perf autotest		|mempool_perf	|unit_tests_mempool
----------------------------------- -----+----------------------+--------------------+
dpdk memzone autotest		|memzone		|unit_tests_eal
----------------------------------- -----+----------------------+--------------------+

> -----Original Message-----
> From: dts [mailto:dts-bounces at dpdk.org] On Behalf Of
> yufengx.mo at intel.com
> Sent: Wednesday, June 6, 2018 1:33 PM
> To: dts at dpdk.org
> Cc: Mo, YufengX <yufengx.mo at intel.com>
> Subject: [dts] [PATCH V1 1/2] memory_register: upstream test plan
> 
> From: yufengmx <yufengx.mo at intel.com>
> 
> 
> This test plan is for memory_register feature.
> It is a feature related with DPDK Memory System Redesign sub task
> Register/unregister memory with vfio dynamically.
> 
> Signed-off-by: yufengmx <yufengx.mo at intel.com>
> ---
>  test_plans/memory_register_test_plan.rst | 204
> +++++++++++++++++++++++++++++++
>  1 file changed, 204 insertions(+)
>  create mode 100644 test_plans/memory_register_test_plan.rst
> 
> diff --git a/test_plans/memory_register_test_plan.rst
> b/test_plans/memory_register_test_plan.rst
> new file mode 100644
> index 0000000..f020b82
> --- /dev/null
> +++ b/test_plans/memory_register_test_plan.rst
> @@ -0,0 +1,204 @@
> +.. Copyright (c) <2018>, Intel Corporation
> +   All rights reserved.
> +
> +   Redistribution and use in source and binary forms, with or without
> +   modification, are permitted provided that the following conditions
> +   are met:
> +
> +   - Redistributions of source code must retain the above copyright
> +     notice, this list of conditions and the following disclaimer.
> +
> +   - Redistributions in binary form must reproduce the above copyright
> +     notice, this list of conditions and the following disclaimer in
> +     the documentation and/or other materials provided with the
> +     distribution.
> +
> +   - Neither the name of Intel Corporation nor the names of its
> +     contributors may be used to endorse or promote products derived
> +     from this software without specific prior written permission.
> +
> +   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> CONTRIBUTORS
> +   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
> NOT
> +   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
> FITNESS
> +   FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
> THE
> +   COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
> INDIRECT,
> +   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
> +   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
> GOODS OR
> +   SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> INTERRUPTION)
> +   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> CONTRACT,
> +   STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> +   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
> ADVISED
> +   OF THE POSSIBILITY OF SUCH DAMAGE.
> +
> +===============
> +memory register
> +===============
> +
> +It is a way to register memory outside hugepages with DPDK after start up.
> +Specifically, the registered memory will be the target of DMA
> +operations and use it for allocations through rte_malloc or rte_mempool.
> +
> +This feature should work for both uio and vfio. There are no
> +performance requirements around how quickly new memory can be
> +registered or unregistered, but calls to translate virtual to physical
> addresses should remain fast.
> +
> +It is a feature related with DPDK's ``Memory System Redesign`` sub task
> +``Register/unregister memory with vfio dynamically``.
> +
> +Prerequisites
> +-------------
> +2xNICs (2 full duplex optical ports per NIC)
> +    no nic type limitation
> +
> +bind port number::
> +    one port
> +    four port
> +
> +driver::
> +    vfio-pci
> +    igb_uio
> +
> +HW configuration
> +----------------
> +1U socket/2U socket::
> +    SuperMicro 1U Xeon D Broadwell SoC uServer(1U Socket)
> +    Broadwell-EP Xeon E5-2600(2U Socket)
> +
> +Test cases
> +----------
> +
> +DPDK has no custom example or unit test binary to test memory register/
> +unregister. The idea behind the testing process is to run dpdk unit
> +test related with memory. It is the only method to test this feature.
> +`Memory System Redesign` task is related with all dpdk memory
> +management mechanism, including
> +malloc/mbuf/memory/mempool/memcpy/memzone. Run Compound test
> based on
> +driver/port number/socket type
> +
> + Test Case : dpdk malloc autotest
> +=================================
> +*. bind ports
> +
> +   ./usertools/dpdk_nic_bind.py --bind=<driver> <pci address>
> +
> +*. boot up unit test binary ``test``
> +
> +    ./test/app/test -n 1 -c f
> +
> +*. run malloc_autotest
> +
> +    RTE>> malloc_autotest
> +
> +*. check ``test ok`` in output
> +
> + Test Case : dpdk mbuf autotest
> +===============================
> +*. bind ports
> +
> +   ./usertools/dpdk_nic_bind.py --bind=<driver> <pci address>
> +
> +*. boot up unit test binary ``test``
> +
> +    ./test/app/test -n 1 -c f
> +
> +*. run mbuf_autotest
> +
> +    RTE>> mbuf_autotest
> +
> +*. check ``test ok`` in output
> +
> + Test Case : dpdk memcpy autotest
> +=================================
> +*. bind ports
> +
> +   ./usertools/dpdk_nic_bind.py --bind=<driver> <pci address>
> +
> +*. boot up unit test binary ``test``
> +
> +    ./test/app/test -n 1 -c f
> +
> +*. run memcpy_autotest
> +
> +    RTE>> memcpy_autotest
> +
> +*. check ``test ok`` in output
> +
> + Test Case : dpdk memcpy perf autotest
> +======================================
> +*. bind ports
> +
> +   ./usertools/dpdk_nic_bind.py --bind=<driver> <pci address>
> +
> +*. boot up unit test binary ``test``
> +
> +    ./test/app/test -n 1 -c f
> +
> +*. run memcpy_perf_autotest
> +
> +    RTE>> memcpy_perf_autotest
> +
> +*. check ``test ok`` in output
> +
> + Test Case : dpdk memory autotest
> +=================================
> +*. bind ports
> +
> +   ./usertools/dpdk_nic_bind.py --bind=<driver> <pci address>
> +
> +*. boot up unit test binary ``test``
> +
> +    ./test/app/test -n 1 -c f
> +
> +*. run memory_autotest
> +
> +    RTE>> memory_autotest
> +
> +*. check ``test ok`` in output
> +
> +Test Case : dpdk mempool autotest
> +=================================
> +*. bind ports
> +
> +   ./usertools/dpdk_nic_bind.py --bind=<driver> <pci address>
> +
> +*. boot up unit test binary ``test``
> +
> +    ./test/app/test -n 1 -c f
> +
> +*. run mempool_autotest
> +
> +    RTE>> mempool_autotest
> +
> +*. check ``test ok`` in output
> +
> + Test Case : dpdk mempool perf autotest
> +=======================================
> +*. bind ports
> +
> +   ./usertools/dpdk_nic_bind.py --bind=<driver> <pci address>
> +
> +*. boot up unit test binary ``test``
> +
> +    ./test/app/test -n 1 -c f
> +
> +*. run mempool_perf_autotest
> +
> +    RTE>> mempool_perf_autotest
> +
> +*. check ``test ok`` in output
> +
> + Test Case : dpdk memzone autotest
> +==================================
> +*. bind ports
> +
> +   ./usertools/dpdk_nic_bind.py --bind=<driver> <pci address>
> +
> +*. boot up unit test binary ``test``
> +
> +    ./test/app/test -n 1 -c f
> +
> +*. run memzone_autotest
> +
> +    RTE>> memzone_autotest
> +
> +*. check ``test ok`` in output
> +
> --
> 1.9.3



More information about the dts mailing list