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