From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ye Xiaolong Subject: Re: [PATCH v8 2/2] examples/vdpa: introduce a new sample for vDPA Date: Wed, 3 Oct 2018 14:04:20 +0800 Message-ID: <20181003060420.GC78385@intel.com> References: <20180928112344.42791-1-xiaolong.ye@intel.com> <20180928214747.48938-1-xiaolong.ye@intel.com> <20180928214747.48938-3-xiaolong.ye@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Cc: dev@dpdk.org, Maxime Coquelin , Tiwei Bie , Zhihong Wang , xiao.w.wang@intel.com, Rami Rosen , Wang Haiyue To: Ferruh Yigit Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 2E23D2C15 for ; Wed, 3 Oct 2018 01:16:50 +0200 (CEST) Content-Disposition: inline In-Reply-To: List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hi, Ferruh, On 10/02, Ferruh Yigit wrote: >On 9/28/2018 10:47 PM, Xiaolong Ye wrote: >> The vdpa sample application creates vhost-user sockets by using the >> vDPA backend. vDPA stands for vhost Data Path Acceleration which utilizes >> virtio ring compatible devices to serve virtio driver directly to enable >> datapath acceleration. As vDPA driver can help to set up vhost datapath, >> this application doesn't need to launch dedicated worker threads for vhost >> enqueue/dequeue operations. >> >> Signed-off-by: Xiaolong Ye >> Acked-by: Xiao Wang >> Reviewed-by: Maxime Coquelin > ><...> > >> +static int >> +parse_args(int argc, char **argv) >> +{ >> + static const char *short_option = "i"; >> + static struct option long_option[] = { >> + {"iface", required_argument, NULL, 0}, >> + {"interactive", no_argument, &interactive, 1}, >> + {"client", no_argument, &client_mode, 1}, >> + {NULL, 0, 0, 0}, >> + }; >> + int opt, idx; >> + char *prgname = argv[0]; >> + >> + while ((opt = getopt_long(argc, argv, short_option, long_option, &idx)) >> + != EOF) { >> + switch (opt) { >> + case 'i': >> + printf("Interactive-mode selected\n"); >> + interactive = 1; >> + break; >> + /* long options */ >> + case 0: >> + if (strncmp(long_option[idx].name, "iface", >> + MAX_PATH_LEN) == 0) { >> + strncpy(iface, optarg, MAX_PATH_LEN); > >Giving compiler warning [1], rte_strscpy() is safer to use. > >[1] >In function ‘parse_args’, > > > > inlined from ‘main’ at .../examples/vdpa/main.c:419:8: > > > >.../examples/vdpa/main.c:76:5: error: ‘strncpy’ specified bound 128 equals >destination size [-Werror=stringop-truncation] > > > strncpy(iface, optarg, MAX_PATH_LEN); > > > > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Thanks for the finding, by the way, how do you get this warning? I can't see it in my local build, what compiler you used? Thanks, Xiaolong