From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf0-f177.google.com (mail-pf0-f177.google.com [209.85.192.177]) by dpdk.org (Postfix) with ESMTP id 965382B9B for ; Fri, 27 Jan 2017 18:37:37 +0100 (CET) Received: by mail-pf0-f177.google.com with SMTP id 189so74817680pfu.3 for ; Fri, 27 Jan 2017 09:37:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=NDH2SO5j1XMYMeRjKRWr/Vag7RLB5RIPlCFPPEIxh4o=; b=IkrFUsqOyBZdOydczNwmAo1XFQ+PkJGf/cLfsIYYIMtTLg+7oZeKjTHvSP9GEcduFQ ZT2MZef3vat5RYhe6zlaSSipoYYXWdM1PfQWgjp4epOe9qj2GOprQo/ESZsCPXg2voue 5HN23t2261fQUz0yAh7MhjVOzSWz/2AIN/0du4yzCfmaCvQirL6mAnBC9tM5zUEa4ayH uLpGyOIlBXZ/EofP6HOvUC1zMhh8c/cMHNeZ/xQXx19wn+NjxFRzmVMIVJoexHFLwkvl xEOZyKDM+R6UoMPTlQsMZqS+a8no5tX0kKlBW82OLO3Ba2xo691BF8tmnmhYQrRlXNiX jk8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=NDH2SO5j1XMYMeRjKRWr/Vag7RLB5RIPlCFPPEIxh4o=; b=RJNCPR3OPUfMHrrQHJbG2e80L924fTlmmey06oqEKMxrpiBeESUH5KdGa8NJBCSfj/ 6t7C8vrouu4RNJrBW5FksO+16ZHlo57W9A2zJ5sE7zuJYYiuMXCCeDL0D1WpwpjaI1MG II3yZm4/Z3gFL573WaLR+xXER8buWaEOSorSU+0rmd9fMSBGO7lRw/znktkh8RBAkE4N 04e90zE03f/bvhKudQiAOl+UvzF0gPPI0+9PFwCpkAuQT+C7nuhT4ufNV19xHXYBvbFx n3VWNZY4yj9ByCcNLRenjB7wF3M4Ll2ZXP2oadqW3WeXxgVjUfQ0JWyJFuM8tvqpR7sg /J6g== X-Gm-Message-State: AIkVDXLWxK6g986fJeAwnftmLC1BFZWnW5/poyrr8/MPmiJAgn7TtqUPdNeUuKbad2vs6A== X-Received: by 10.99.142.65 with SMTP id k62mr10598728pge.157.1485538656724; Fri, 27 Jan 2017 09:37:36 -0800 (PST) Received: from xeon-e3 (204-195-18-65.wavecable.com. [204.195.18.65]) by smtp.gmail.com with ESMTPSA id n73sm12884368pfa.9.2017.01.27.09.37.36 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 27 Jan 2017 09:37:36 -0800 (PST) Date: Fri, 27 Jan 2017 09:37:29 -0800 From: Stephen Hemminger To: Bruce Richardson Cc: Aaron Conole , dev@dpdk.org Message-ID: <20170127093729.5cef9138@xeon-e3> In-Reply-To: <20170127164739.GB82692@bricha3-MOBL3.ger.corp.intel.com> References: <1485529023-5486-1-git-send-email-aconole@redhat.com> <1485529023-5486-26-git-send-email-aconole@redhat.com> <20170127083346.2bf55801@xeon-e3> <20170127164739.GB82692@bricha3-MOBL3.ger.corp.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH 25/25] rte_eal_init: add info about rte_errno codes X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Jan 2017 17:37:37 -0000 On Fri, 27 Jan 2017 16:47:40 +0000 Bruce Richardson wrote: > On Fri, Jan 27, 2017 at 08:33:46AM -0800, Stephen Hemminger wrote: > > On Fri, 27 Jan 2017 09:57:03 -0500 > > Aaron Conole wrote: > > > > > diff --git a/lib/librte_eal/common/include/rte_eal.h b/lib/librte_eal/common/include/rte_eal.h > > > index 03fee50..46e427f 100644 > > > --- a/lib/librte_eal/common/include/rte_eal.h > > > +++ b/lib/librte_eal/common/include/rte_eal.h > > > @@ -159,7 +159,29 @@ int rte_eal_iopl_init(void); > > > * function call and should not be further interpreted by the > > > * application. The EAL does not take any ownership of the memory used > > > * for either the argv array, or its members. > > > - * - On failure, a negative error value. > > > + * - On failure, -1 and rte_errno is set to a value indicating the cause > > > + * for failure. > > > + * > > > + * The error codes returned via rte_errno: > > > + * EACCES indicates a permissions issue. > > > + * > > > + * EAGAIN indicates either a bus or system resource was not available, > > > + * try again. > > > + * > > > + * EALREADY indicates that the rte_eal_init function has already been > > > + * called, and cannot be called again. > > > + * > > > + * EINVAL indicates invalid parameters were passed as argv/argc. > > > + * > > > + * EIO indicates failure to setup the logging handlers. This is usually > > > + * caused by an out-of-memory condition. > > > + * > > > + * ENODEV indicates memory setup issues. > > > + * > > > + * ENOTSUP indicates that the EAL cannot initialize on this system. > > > + * > > > + * EUNATCH indicates that the PCI bus is either not present, or is not > > > + * readable by the eal. > > > */ > > > int rte_eal_init(int argc, char **argv); > > > > Why use rte_errno? > > Most DPDK calls just return negative value on error which corresponds to error number. > > Are you trying to keep ABI compatibility? Doesn't make sense because before all these > > errors were panic's no working application is going to care. > > Either will work, but I actually prefer this way. I view using rte_errno > to be better as it can work in just about all cases, including with > functions which return pointers. This allows you to have a standard > method across all functions for returning error codes, and it only > requires a single sentinal value to indicate error, rather than using a > whole range of values. The problem is DPDK is getting more inconsistent on how this is done. As long as error returns are always same as kernel/glibc errno's it really doesn't matter much which way the value is returned from a technical point of view but the inconsistency is sure to be a usability problem and source of errors.