Message ID | 1436260687-28549-5-git-send-email-bernard.iremonger@intel.com |
---|---|
State | Superseded, archived |
Headers | show |
> -----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
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); - if (rte_eth_dev_detach(port_id, name)) return;
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(-)