From: Ferruh Yigit <ferruh.yigit@intel.com>
To: Elad Nachman <eladv6@gmail.com>
Cc: Eric Christian <erclists@gmail.com>, dev <dev@dpdk.org>,
Igor Ryzhov <iryzhov@nfware.com>
Subject: Re: [dpdk-dev] [PATCH v2] kni: Fix request overwritten
Date: Mon, 4 Oct 2021 15:03:52 +0100 [thread overview]
Message-ID: <3ae193df-292c-4907-df4a-88ce3d6735fc@intel.com> (raw)
In-Reply-To: <CACXF7qkpzZiSbtDf8YFU_vVNLc6ytmjXh4yUe+xHhYUnOdzyRQ@mail.gmail.com>
On 10/4/2021 2:09 PM, Elad Nachman wrote:
> Hi,
>
> EAGAIN is propogated back to the kernel and to the caller.
>
So will the user get an error, or it will be handled by the kernel and retried?
> We cannot retry from the kni kernel module since we hold the rtnl lock.
>
Why not? We are already waiting until a command time out, like 'kni_net_open()'
can retry if 'kni_net_process_request()' returns '-EAGAIN'. And we can limit the
number of retry for safety.
> FYI,
>
> Elad
>
> בתאריך יום ב׳, 4 באוק׳ 2021, 16:05, מאת Ferruh Yigit <
> ferruh.yigit@intel.com>:
>
>> On 9/24/2021 11:54 AM, Elad Nachman wrote:
>>> Fix lack of multiple KNI requests handling support by introducing a
>>> request in progress flag which will fail additional requests with
>>> EAGAIN return code if the original request has not been processed
>>> by user-space.
>>>
>>> Bugzilla ID: 809
>>
>> Hi Eric,
>>
>> Can you please test this patch, if it solves the issue you reported?
>>
>>>
>>> Signed-off-by: Elad Nachman <eladv6@gmail.com>
>>> ---
>>> kernel/linux/kni/kni_net.c | 9 +++++++++
>>> lib/kni/rte_kni.c | 2 ++
>>> lib/kni/rte_kni_common.h | 1 +
>>> 3 files changed, 12 insertions(+)
>>>
>>
>> <...>
>>
>>> @@ -123,7 +124,15 @@ kni_net_process_request(struct net_device *dev,
>> struct rte_kni_request *req)
>>>
>>> mutex_lock(&kni->sync_lock);
>>>
>>> + /* Check that existing request has been processed: */
>>> + cur_req = (struct rte_kni_request *)kni->sync_kva;
>>> + if (cur_req->req_in_progress) {
>>> + ret = -EAGAIN;
>>
>> Overall logic in the KNI looks good to me, this helps to serialize the
>> requests
>> even for async ones.
>>
>> But can you please clarify how it behaves in the kernel side with '-EAGAIN'
>> return type? Will linux call the ndo again, or will it just fail.
>>
>> If it just fails should we handle the re-try on '-EAGAIN' within the kni
>> module?
>>
>>
next prev parent reply other threads:[~2021-10-04 14:11 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-24 10:54 [dpdk-dev] [PATCH v2] kni: Fix request overwritten Elad Nachman
2021-10-04 13:01 ` Ferruh Yigit
2021-10-04 13:09 ` Elad Nachman
2021-10-04 14:03 ` Ferruh Yigit [this message]
2021-10-04 14:25 ` Elad Nachman
2021-10-04 14:51 ` Ferruh Yigit
2021-10-04 14:58 ` Elad Nachman
2021-10-04 15:48 ` Ferruh Yigit
2021-10-04 16:18 ` Elad Nachman
2021-10-04 16:59 ` Eric Christian
2021-10-04 18:27 ` Elad Nachman
2021-10-08 20:23 ` Ferruh Yigit
2021-10-08 21:11 ` Ferruh Yigit
2021-10-04 14:14 ` Eric Christian
2021-10-04 14:56 ` 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=3ae193df-292c-4907-df4a-88ce3d6735fc@intel.com \
--to=ferruh.yigit@intel.com \
--cc=dev@dpdk.org \
--cc=eladv6@gmail.com \
--cc=erclists@gmail.com \
--cc=iryzhov@nfware.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.