> -----Original Message----- > From: Xie, Huawei > Sent: Friday, July 3, 2015 12:04 AM > To: Ouyang, Changchun; dev at dpdk.org > Cc: Cao, Waterman; Xu, Qian Q > Subject: Re: [PATCH 3/3] vhost: call api to unregister vhost driver > > On 7/2/2015 11:33 AM, Ouyang, Changchun wrote: > > The commit will break vhost sample when it runs in second time: > > 292959c71961acde0cda6e77e737bb0a4df1559c > > > > It should call api to unregister vhost driver when sample exit/quit, > > then the socket file will be removed(by calling unlink), and thus make > > vhost sample work correctly in second time startup. > > > > Signed-off-by: Changchun Ouyang <changchun.ouyang at intel.com> > > --- > > examples/vhost/main.c | 18 ++++++++++++++++++ > > 1 file changed, 18 insertions(+) > > > > diff --git a/examples/vhost/main.c b/examples/vhost/main.c index > > 72c4773..90666b3 100644 > > --- a/examples/vhost/main.c > > +++ b/examples/vhost/main.c > > @@ -2871,6 +2871,16 @@ setup_mempool_tbl(int socket, uint32_t index, > char *pool_name, > > } > > } > > > > +/* When we receive a HUP signal, unregister vhost driver */ static > > +void sighup_handler(__rte_unused int signum) { > > + /* Unregister vhost driver. */ > > + int ret = rte_vhost_driver_unregister((char *)&dev_basename); > > + if (ret != 0) > > + rte_exit(EXIT_FAILURE, "vhost driver unregister failure.\n"); > > + exit(0); > > +} > > > > /* > > * Main function, does initialisation and calls the per-lcore > > functions. The CUSE @@ -2887,6 +2897,8 @@ main(int argc, char *argv[]) > > uint16_t queue_id; > > static pthread_t tid; > > > > + signal(SIGINT, sighup_handler); > > + > > ignor if duplciated. > sighup->sigint
Make sense, will update it in v2 > > > /* init EAL */ > > ret = rte_eal_init(argc, argv); > > if (ret < 0) > > @@ -3060,6 +3072,12 @@ main(int argc, char *argv[]) > > > > /* Start CUSE session. */ > > rte_vhost_driver_session_start(); > > + > > + /* Unregister vhost driver. */ > > + ret = rte_vhost_driver_unregister((char *)&dev_basename); > > + if (ret != 0) > > + rte_exit(EXIT_FAILURE,"vhost driver unregister failure.\n"); > > + > > return 0; > > > > }