From: Ye Xiaolong <xiaolong.ye@intel.com>
To: "Wang, Xiao W" <xiao.w.wang@intel.com>
Cc: "Bie, Tiwei" <tiwei.bie@intel.com>, "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [PATCH] net/ifc: do not notify before HW ready
Date: Fri, 14 Sep 2018 04:25:28 +0800 [thread overview]
Message-ID: <20180913202528.GA20985@intel.com> (raw)
In-Reply-To: <B7F2E978279D1D49A3034B7786DACF406F99CB1E@SHSMSX101.ccr.corp.intel.com>
On 09/13, Wang, Xiao W wrote:
>Hi Xiaolong,
>
>> -----Original Message-----
>> From: Ye, Xiaolong
>> Sent: Thursday, September 13, 2018 8:55 PM
>> To: Wang, Xiao W <xiao.w.wang@intel.com>
>> Cc: Bie, Tiwei <tiwei.bie@intel.com>; dev@dpdk.org
>> Subject: Re: [PATCH] net/ifc: do not notify before HW ready
>>
>> Hi, Xiao
>>
>> On 09/10, Xiao Wang wrote:
>> >Fixes: a3f8150eac6d ("net/ifcvf: add ifcvf vDPA driver")
>>
>> Could you help describe what problem is without this fix in commit log?
>
>Generally a driver should finish all the device configurations first then notify the HW for data processing.
>Without this fix, the potential problems are:
>1. If the device is not clearly reset by the previous driver and holds some invalid ring addr, and the vDPA relay thread kicks it, a bad DMA request may happen.
>2. The notify_addr which is used by the relay thread is set in the vdpa_ifcvf_start function. If there's really a kick relay before vdpa_ifcvf_start finishes, a null addr is accessed.
>
Thanks for the explanation.
Thanks,
Xiaolong
>Would add the description in the commit log in v2.
>
>Thanks for the comment,
>Xiao
>>
>> Thanks,
>> Xiaolong
>> >
>> >Signed-off-by: Xiao Wang <xiao.w.wang@intel.com>
>> >---
>> > drivers/net/ifc/ifcvf_vdpa.c | 8 ++++----
>> > 1 file changed, 4 insertions(+), 4 deletions(-)
>> >
>> >diff --git a/drivers/net/ifc/ifcvf_vdpa.c b/drivers/net/ifc/ifcvf_vdpa.c
>> >index 3c5430dc0..7d3085d8d 100644
>> >--- a/drivers/net/ifc/ifcvf_vdpa.c
>> >+++ b/drivers/net/ifc/ifcvf_vdpa.c
>> >@@ -503,11 +503,11 @@ update_datapath(struct ifcvf_internal *internal)
>> > if (ret)
>> > goto err;
>> >
>> >- ret = setup_notify_relay(internal);
>> >+ ret = vdpa_ifcvf_start(internal);
>> > if (ret)
>> > goto err;
>> >
>> >- ret = vdpa_ifcvf_start(internal);
>> >+ ret = setup_notify_relay(internal);
>> > if (ret)
>> > goto err;
>> >
>> >@@ -515,12 +515,12 @@ update_datapath(struct ifcvf_internal *internal)
>> > } else if (rte_atomic32_read(&internal->running) &&
>> > (!rte_atomic32_read(&internal->started) ||
>> > !rte_atomic32_read(&internal->dev_attached))) {
>> >- vdpa_ifcvf_stop(internal);
>> >-
>> > ret = unset_notify_relay(internal);
>> > if (ret)
>> > goto err;
>> >
>> >+ vdpa_ifcvf_stop(internal);
>> >+
>> > ret = vdpa_disable_vfio_intr(internal);
>> > if (ret)
>> > goto err;
>> >--
>> >2.15.1
>> >
next prev parent reply other threads:[~2018-09-13 13:39 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-10 11:05 [PATCH] net/ifc: do not notify before HW ready Xiao Wang
2018-09-13 12:55 ` Ye Xiaolong
2018-09-13 7:23 ` Wang, Xiao W
2018-09-13 20:25 ` Ye Xiaolong [this message]
2018-09-14 1:25 ` [PATCH v2] " Xiao Wang
2018-09-14 8:41 ` Ye Xiaolong
2018-09-18 14:20 ` Zhang, Qi Z
2018-09-25 17:15 ` Kevin Traynor
2018-09-26 0:12 ` Wang, Xiao W
2018-09-26 7:53 ` Ferruh Yigit
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180913202528.GA20985@intel.com \
--to=xiaolong.ye@intel.com \
--cc=dev@dpdk.org \
--cc=tiwei.bie@intel.com \
--cc=xiao.w.wang@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.