[dpdk-dev] [PATCH v2 12/12] net/vhost: support to run in the secondary process
jianfeng.tan at intel.com
Mon Oct 2 01:46:24 CEST 2017
On 9/30/2017 7:34 PM, Yuanhan Liu wrote:
> On Thu, Sep 30, 2017 at 12:53:00PM +0000, Jianfeng Tan wrote:
>> On 9/30/2017 4:23 PM, Yuanhan Liu wrote:
>>> On Thu, Sep 28, 2017 at 01:55:59PM +0000, Jianfeng Tan wrote:
>>>> +static int
>>>> new_device(int vid)
>>>> struct rte_eth_dev *eth_dev;
>>>> @@ -610,6 +685,8 @@ new_device(int vid)
>>>> _rte_eth_dev_callback_process(eth_dev, RTE_ETH_EVENT_INTR_LSC,
>>>> NULL, NULL);
>>>> + share_device(vid);
>>> Another question is, have you considered/tested the case when the VM
>>> changes the qeueue number later?
>> Yes, that is a covered test case, we use ethtool to increase the
>> combined queue number; see cover letter for detail.
> Sorry I missed that!
> However, I'm not quite sure I understood you:
> Step 5: enable multi queue in VM1 and VM2.
> $ ethtool -L ethX combined 2
> Note in this test case, only queue 1, i.e., secondary process can process
> packets. To use queue 1, basically, we can run command like:
> $ taskset -c 1 <commands>
> Do you mean the secondary can't rx/tx pkts from/to the 2nd queue?
> And you are asking the user to add "taskset -c 1" each time he
> wants to run a command inside the VM?
No, the result is because the logic of this example, symmetric_mp, is
that primary process works on the queue pair 0; and secondary process
works on queue pair 1. And because of the limitation we mentioned
earlier, primary process can process the virtqueue but cannot kick the
queue pair 0 (wrong callfd). But secondary process can work on both
queue pair 0 and 1 in theory, unfortunately, cannot find an existing
example to test that.
More information about the dev