From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [PATCH] eal: parse args before any kinds of init Date: Mon, 05 May 2014 17:50:15 +0200 Message-ID: <2073730.rjlHe4Kf7A@xps13> References: <534CA193.2000604@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: dev-VfR2kkLFssw@public.gmane.org To: Wang Sheng-Hui Return-path: In-Reply-To: <534CA193.2000604-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-VfR2kkLFssw@public.gmane.org Sender: "dev" 2014-04-15 11:03, Wang Sheng-Hui: > Parse args first, to resolve any invalid args and give out the usage string. > E.g './helloworld --invalid', the '--invalid' will be checked before any > init. After the options are checked, take any init actions. > > Signed-off-by: Wang Sheng-Hui [...] > @@ -637,6 +637,11 @@ eal_parse_args(int argc, char **argv) > }; > struct shared_driver *solib; > > + /* check the no args case */ > + if (argc == 1) { > + eal_usage(prgname); > + return (-1); > + } > argvopt = argv; I wonder if there are some use cases where default values could be used for first tests. If we can set some default values for coremask and memory channels, then we can accept having no argument. Maybe that an option -h would be needed. > @@ -964,16 +969,16 @@ rte_eal_init(int argc, char **argv) > > thread_id = pthread_self(); > > + fctret = eal_parse_args(argc, argv); > + if (fctret < 0) > + exit(1); > + > if (rte_eal_log_early_init() < 0) > rte_panic("Cannot init early logs\n"); > > if (rte_eal_cpu_init() < 0) > rte_panic("Cannot detect lcores\n"); > > - fctret = eal_parse_args(argc, argv); > - if (fctret < 0) > - exit(1); > - > if (internal_config.no_hugetlbfs == 0 && > internal_config.process_type != RTE_PROC_SECONDARY > && internal_config.xen_dom0_support == 0 && You should move eal_parse_args() just after rte_eal_log_early_init() in order to have logs available. Could you send a v2 patch with this kind of change for BSD also. Thank you -- Thomas