From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f49.google.com (mail-wm0-f49.google.com [74.125.82.49]) by dpdk.org (Postfix) with ESMTP id 1F30B2B9B for ; Fri, 1 Apr 2016 18:25:33 +0200 (CEST) Received: by mail-wm0-f49.google.com with SMTP id f198so32650440wme.0 for ; Fri, 01 Apr 2016 09:25:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding; bh=/8BoyMlTkAna98a2CITz/IjoYNM4w/PObbEWkjEgl04=; b=US8iQZWcc1bZdRN9Ehtd2AS2iV8+R6ZQOnoYESavw5I6rjYaP7UoQFO43XHPIIEb+c /ZDOM8ONbElEjhZgYCpns3nIN/9hTkP7PjQqwfH7H8jxwFcDcmy+1NMrL16C3xPg721I xK2DtM51AoXblTAajkyhNkIQjsow5LJw5WrHsdk6eJ0Fr4NllOpipSR18MOl7XnVv9Ea 3I2tsrCujfxzgOWU1bPotpGq2FxiF3xs4Kzy+fH9ncG2QbRtm/ZSxmOtMBzXEPJQzu+A XIhtrKWFQ3hDgNd3frYbOHlKnJQFb0zuHESbXQsbxmzztKEw1HD5Cgj3O2fjvCoS10FQ YXRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=/8BoyMlTkAna98a2CITz/IjoYNM4w/PObbEWkjEgl04=; b=P97NIIZsPuI5P9nsJNMUMiqA77Ru3fDDnBPHKXjkkjjWvgHNcgHHu7K7+3IMjCIyMc p5vXJFaIeFSkkwoozkXEpHhPpsKFNx863+890PzcpIxj1dfTkO2vDm/Jw95klFrsgrOk KDcMpRfJYMJQXGGEryNrPD80kv89ANargn0XyJlwjL1hIbUyCHwqgUXYIylj1mPL/dlI GRuUQQpdg34bcT8Qx70FM3HzWoc+wesiRctUzbhL7x9qkclZiupZF4KQV3/20Ty+EEfI 98sJg1iEuQ2OEH1aixXqkRtHUk3ZzFX8ORKWFwVthUqJttGxu53canYsthOukjgrGLFz XpdQ== X-Gm-Message-State: AD7BkJJmBDlNsumYfQu8lFCzhnL9R51S9ZQhI4gTHKa+8sG6D/KzaPS2305D9PT9dtCEONGX X-Received: by 10.28.176.133 with SMTP id z127mr5149768wme.66.1459527932963; Fri, 01 Apr 2016 09:25:32 -0700 (PDT) Received: from [192.168.0.10] (was59-1-82-226-113-214.fbx.proxad.net. [82.226.113.214]) by smtp.gmail.com with ESMTPSA id n66sm15338893wmg.20.2016.04.01.09.25.31 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 01 Apr 2016 09:25:32 -0700 (PDT) To: Stephen Hemminger References: <1458044745-32764-1-git-send-email-olivier.matz@6wind.com> <1459351827-3346-1-git-send-email-olivier.matz@6wind.com> <1459351827-3346-2-git-send-email-olivier.matz@6wind.com> <20160330144649.670d66d1@xeon-e3> <56FCD32E.2090707@6wind.com> Cc: dev@dpdk.org, bruce.richardson@intel.com From: Olivier Matz Message-ID: <56FEA0F9.4010500@6wind.com> Date: Fri, 1 Apr 2016 18:25:29 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Icedove/38.6.0 MIME-Version: 1.0 In-Reply-To: <56FCD32E.2090707@6wind.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH 1/4] lpm: allocation of an existing object should fail X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Apr 2016 16:25:33 -0000 On 03/31/2016 09:35 AM, Olivier Matz wrote: > On 03/30/2016 11:46 PM, Stephen Hemminger wrote: >> with older memzone model, objects in huge memory area were never freed. >> That means when application restarts it finds the old LPM and works. >> With your change it would break such an application. >> > > Could you be more precise about the use case you are > describing? Are you talking about a secondary process? > > The API description of lpm and hash says since the first > release that EEXIST should be returned if a memzone with > the same name already exists: > > * @return > * Handle to LPM object on success, NULL otherwise with rte_errno set > * to an appropriate values. Possible rte_errno values include: > * - E_RTE_NO_CONFIG - function could not get pointer to rte_config > structure > * - E_RTE_SECONDARY - function was called from a secondary process > instance > * - EINVAL - invalid parameter passed to function > * - ENOSPC - the maximum number of memzones has already been allocated > * - EEXIST - a memzone with the same name already exists > * - ENOMEM - no appropriate memory area found in which to create memzone > */ > struct rte_lpm * > rte_lpm_create(const char *name, int socket_id, > const struct rte_lpm_config *config); > > * @return > * Pointer to hash table structure that is used in future hash table > * operations, or NULL on error, with error code set in rte_errno. > * Possible rte_errno errors include: > * - E_RTE_NO_CONFIG - function could not get pointer to rte_config > structure > * - E_RTE_SECONDARY - function was called from a secondary process > instance > * - ENOENT - missing entry > * - EINVAL - invalid parameter passed to function > * - ENOSPC - the maximum number of memzones has already been allocated > * - EEXIST - a memzone with the same name already exists > * - ENOMEM - no appropriate memory area found in which to create memzone > */ > struct rte_hash * > rte_hash_create(const struct rte_hash_parameters *params); > > > From my point of view, the behavior I'm fixing is more a bug > fix than an API change. But if required, I can send a deprecation > notice for 16.04 and have the fix integrated for 16.07. > Stephen, any comment on this please? The problem is today some unit tests are not passing correctly. Thanks