Re: [RFC PATCH 0/3] configurable max queue number per VF
From: Ferruh Yigit <hidden>
Date: 2017-12-15 19:24:15
On 7/31/2017 12:27 PM, Wenzhuo Lu wrote:
Currently, on i40e, the max queue number per VF is set by a macro. It means the value is decided when compiling. It's not friendly to the users. Because every time the users want to change the value, the code need to be re-compiled. The reason of using a macro for the max queue number is that the number is needed at the very early stage. At this stage, we haven't got the device configuration yet. There's a simple idea to replace the macro by a global varialbe. Then the users can set the value without compiling the code again and again.
Hi Wenzhuo, It is good to convert compile time options to something more dynamic, but I am not sure adding max_queue_number_per_vf global variable into ethdev lib. Also currently only i40e requires this but what if some other PMD requires this and conflicts with the values i40e requires? Application directly setting library global value is another concern. Problem looks like setting library defaults problem. Currently we are setting defaults via config options and changing them requires re-compiling the library, which indeed not should be required. This will be more ambitious but what about addressing problem in DPDK level so that we can move many config options. What about creating a global rte_default object and put all defaults from config file there, and other libraries access to this object to learn about default values. rte_config or lcore_config are already global config objects, and lcore_config seems already exposed to the applications, similar thing can be done here. Provide APIs to set / values in this object so that application dynamically set them before eal_init() _if_ they need to change something, but mostly defaults should be good to run apps without needs to modify them for majority of cases. Later this can be worked out to distribute defaults to own library, so that each library can hold their own default values. Any comments?
This patch set implements this idea and is an example to show how to use it. Wenzhuo Lu (3): librte_ether: VF max queue number setting net/i40e: max VF queue number setting app/testpmd: a parameter to set max queue per VF app/test-pmd/parameters.c | 33 ++++++++++++++++++++++++++++++++- app/test-pmd/testpmd.c | 2 ++ app/test-pmd/testpmd.h | 1 + config/common_base | 1 - drivers/net/i40e/i40e_ethdev.c | 4 ++-- lib/librte_ether/rte_ethdev.c | 3 +++ lib/librte_ether/rte_ethdev.h | 2 ++ 7 files changed, 42 insertions(+), 4 deletions(-)