[dpdk-dev,v4,4/4] test-pmd: remove call to rte_eth_promiscuous_disable() from detach_port()
Commit Message
At this point the stop() and close() functions have already been called.
The rte_eth_promiscuous_disable() function does not return on the VM.
Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
---
app/test-pmd/testpmd.c | 4 +---
1 files changed, 1 insertions(+), 3 deletions(-)
Comments
> -----Original Message-----
> From: Iremonger, Bernard
> Sent: Tuesday, July 7, 2015 5:18 PM
> To: dev@dpdk.org
> Cc: Ouyang, Changchun; Iremonger, Bernard
> Subject: [PATCH v4 4/4] test-pmd: remove call to
> rte_eth_promiscuous_disable() from detach_port()
>
> At this point the stop() and close() functions have already been called.
> The rte_eth_promiscuous_disable() function does not return on the VM.
I think we need root the cause why it doesn't return on the VM.
>
> Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
> ---
> app/test-pmd/testpmd.c | 4 +---
> 1 files changed, 1 insertions(+), 3 deletions(-)
>
> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index
> 82b465d..4769533 100644
> --- a/app/test-pmd/testpmd.c
> +++ b/app/test-pmd/testpmd.c
> @@ -1,7 +1,7 @@
> /*-
> * BSD LICENSE
> *
> - * Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
> + * Copyright(c) 2010-2015 Intel Corporation. All rights reserved.
> * All rights reserved.
> *
> * Redistribution and use in source and binary forms, with or without
> @@ -1542,8 +1542,6 @@ detach_port(uint8_t port_id)
> return;
> }
>
> - rte_eth_promiscuous_disable(port_id);
> -
It seems a workaround.
> if (rte_eth_dev_detach(port_id, name))
> return;
>
> --
> 1.7.4.1
On 2015/07/08 9:42, Ouyang, Changchun wrote:
>> -----Original Message-----
>> From: Iremonger, Bernard
>> Sent: Tuesday, July 7, 2015 5:18 PM
>> To: dev@dpdk.org
>> Cc: Ouyang, Changchun; Iremonger, Bernard
>> Subject: [PATCH v4 4/4] test-pmd: remove call to
>> rte_eth_promiscuous_disable() from detach_port()
>>
>> At this point the stop() and close() functions have already been called.
>> The rte_eth_promiscuous_disable() function does not return on the VM.
> I think we need root the cause why it doesn't return on the VM.
It seems this patch is correct.
The root cause is that when close() is called, virtio-net device will be
reset by vtpci_reset(), and at this point all virtqueues will be invalid
in virtio-net device.
After resetting device, we should not call
rte_eth_promiscuous_disable(), because it will use an one of virtqueues.
Anyway, promiscuous configuration will be initialized when the device is
reset.
Regards,
Tetsuya
>
>> Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
>> ---
>> app/test-pmd/testpmd.c | 4 +---
>> 1 files changed, 1 insertions(+), 3 deletions(-)
>>
>> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index
>> 82b465d..4769533 100644
>> --- a/app/test-pmd/testpmd.c
>> +++ b/app/test-pmd/testpmd.c
>> @@ -1,7 +1,7 @@
>> /*-
>> * BSD LICENSE
>> *
>> - * Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
>> + * Copyright(c) 2010-2015 Intel Corporation. All rights reserved.
>> * All rights reserved.
>> *
>> * Redistribution and use in source and binary forms, with or without
>> @@ -1542,8 +1542,6 @@ detach_port(uint8_t port_id)
>> return;
>> }
>>
>> - rte_eth_promiscuous_disable(port_id);
>> -
> It seems a workaround.
>
>> if (rte_eth_dev_detach(port_id, name))
>> return;
>>
>> --
>> 1.7.4.1
@@ -1,7 +1,7 @@
/*-
* BSD LICENSE
*
- * Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ * Copyright(c) 2010-2015 Intel Corporation. All rights reserved.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -1542,8 +1542,6 @@ detach_port(uint8_t port_id)
return;
}
- rte_eth_promiscuous_disable(port_id);
-
if (rte_eth_dev_detach(port_id, name))
return;