From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ferruh Yigit Subject: Re: [dpdk-stable] [PATCH v1] net/tap: fix keep-alive queue not detached Date: Fri, 25 May 2018 09:37:53 +0100 Message-ID: <37741ba9-bca4-0913-0578-7ad759ba5bcb@intel.com> References: <1527203440-29861-1-git-send-email-ophirmu@mellanox.com> <3109491.7GuuFblrTl@xps> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: stable@dpdk.org, dev@dpdk.org, Pascal Mazon , Keith Wiles , Olga Shern , Shahaf Shuler To: Thomas Monjalon , Ophir Munk Return-path: In-Reply-To: <3109491.7GuuFblrTl@xps> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 5/25/2018 9:29 AM, Thomas Monjalon wrote: > 25/05/2018 01:10, Ophir Munk: >> The TAP keep-alive queue was created in order to keep the TAP device >> in Linux even in case all of its Rx/Tx queues are released (in Linux >> terminology: even in case all of the TAP device file descriptors are >> closed), however, the keep-alive queue itself is attached to the TAP >> device like all other Rx/Tx queues and therefore the kernel will >> enqueue to it some Rx packets based on the kernel RSS distribution >> rules. Those packets are unknown to the application and will remain >> lost in the keep-alive queue. >> All queues are attached by default to the TAP device after they are >> created though TUNSETIFF ioctl call. >> The fix is to detach the keep-alive queue after its creation through >> TUNSETQUEUE ioctl call. >> >> Fixes: 3101191c63ab ("net/tap: fix device removal when no queue exist") >> Cc: stable@dpdk.org >> >> Signed-off-by: Ophir Munk >> --- >> drivers/net/tap/rte_eth_tap.c | 33 +++++++++++++++++++++++++++------ >> 1 file changed, 27 insertions(+), 6 deletions(-) >> >> diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c >> index 310c7d8..c3af608 100644 >> --- a/drivers/net/tap/rte_eth_tap.c >> +++ b/drivers/net/tap/rte_eth_tap.c >> @@ -95,13 +95,20 @@ enum ioctl_mode { >> >> static int tap_intr_handle_set(struct rte_eth_dev *dev, int set); >> >> -/* Tun/Tap allocation routine >> +/** >> + * Tun/Tap allocation routine >> + * >> + * @param[in] pmd >> + * Pointer to private structure. >> + * >> + * @param[in] is_keepalive >> + * Keepliave flag > > Typo: Keepliave -> Keepalive > Ferruh, please can you fix it? > Or just remove all the doxygen comments? I will fix the typo while merging. > > Note: this fix is critical. Without it, some flows are lost. > >