[dpdk-dev] [PATCH 0/2] Fix vhost performance regression

Maxime Coquelin maxime.coquelin at redhat.com
Fri Jul 24 10:54:54 CEST 2020



On 7/24/20 9:06 AM, Maxime Coquelin wrote:
> Hi Yinan,
> 
> On 7/24/20 6:55 AM, Wang, Yinan wrote:
>> Hi Maxime,
>>
>> The performance drop issue can be fixed, thanks!
>> The multi-queues interrupt issue still exist w/ this patch set.
> 
> Thanks for the test report, so that's only half good.
> I'm setting up the multi-queues interrupt test case to further debug it.

I have now a reproducer, i.e. only interrupts are received on rxq0.

(gdb) p *((struct internal_list *)internal_list)->eth_dev->intr_handle
$20 = {
  {
    vfio_dev_fd = 0,
    uio_cfg_fd = 0
  },
  fd = 0,
  type = RTE_INTR_HANDLE_VDEV,
  max_intr = 2,
  nb_efd = 1,
  efd_counter_size = 8 '\b',
  efds = {622, 621, 624, 626, 628, 630, 632, 634, 636, 638, 640, 642,
692, 646, 701, 650, 0 <repeats 496 times>},
  elist = {{
      status = 1,
      fd = 622,
      epfd = 645,
      epdata = {
        event = 2147483651,
        data = 0x1,
        cb_fun = 0x8af840 <eal_intr_proc_rxtx_intr>,
        cb_arg = 0x7f4df0001580
      }
    }, {
      status = 0,
      fd = 0,
      epfd = 0,
      epdata = {
        event = 0,
        data = 0x0,
        cb_fun = 0x0,
        cb_arg = 0x0
      }
    } <repeats 511 times>},
  intr_vec = 0x7f4df0007db0
}

In above dump, we can see the efds are well set via the fix provided by
Matan, but max_intr and nb_efd aren't so polling won't take them into
account.

I'm working on a fix.

Regards,
Maxime

> Regards,
> Maxime
> 
>> BR,
>> Yinan
>>
>>> -----Original Message-----
>>> From: Maxime Coquelin <maxime.coquelin at redhat.com>
>>> Sent: 2020?7?23? 21:09
>>> To: dev at dpdk.org; matan at mellanox.com; Xia, Chenbo
>>> <chenbo.xia at intel.com>; Liu, Yong <yong.liu at intel.com>; Wang, Yinan
>>> <yinan.wang at intel.com>
>>> Cc: thomas at monjalon.net; Yigit, Ferruh <ferruh.yigit at intel.com>;
>>> david.marchand at redhat.com; Maxime Coquelin
>>> <maxime.coquelin at redhat.com>
>>> Subject: [PATCH 0/2] Fix vhost performance regression
>>>
>>> Hi,
>>>
>>> This series aims at fixing the performance degradation reported
>>> by Intel QE. I managed to reproduce the issue, and this series
>>> fixes it.
>>>
>>> I only tested the first test case provided in the Bz[0], but wanted
>>> to send early for Intel QE to try and confirm it solves the issue.
>>>
>>> I will work on reproducing the other test cases, and see if this
>>> also fixes them.
>>>
>>> Thanks to Intel QE team for finding this issue.
>>> Maxime
>>>
>>> [0]: https://bugs.dpdk.org/show_bug.cgi?id=507#c0
>>>
>>> Maxime Coquelin (2):
>>>   vhost: fix guest notification setting
>>>   net/vhost: fix queue update
>>>
>>>  drivers/net/vhost/rte_eth_vhost.c | 25 ++++++-------------------
>>>  lib/librte_vhost/vhost.c          | 24 ++++++++++++++++++++----
>>>  lib/librte_vhost/vhost.h          |  5 +++++
>>>  lib/librte_vhost/vhost_user.c     | 11 ++++++++---
>>>  4 files changed, 39 insertions(+), 26 deletions(-)
>>>
>>> --
>>> 2.26.2
>>
> 



More information about the dev mailing list