[dpdk-dev] [PATCH v2 01/11] examples/l3fwd: add framework for event device

Pavan Nikhilesh Bhagavatula pbhagavatula at marvell.com
Tue Jan 7 17:34:07 CET 2020


>> >> +struct l3fwd_event_resources {
>> >> +	uint8_t sched_type;
>> >> +	uint8_t enabled;
>> >> +	uint8_t nb_args;
>> >> +	char **args;
>> >> +};
>> >> +
>> >> +static inline struct l3fwd_event_resources *
>> >> +l3fwd_get_eventdev_rsrc(void)
>> >> +{
>> >> +	static const char name[RTE_MEMZONE_NAMESIZE] =
>> >"l3fwd_event_rsrc";
>> >> +	const struct rte_memzone *mz;
>> >> +
>> >> +	mz = rte_memzone_lookup(name);
>> >> +
>> >> +	if (mz != NULL)
>> >> +		return mz->addr;
>> >> +
>> >> +	mz = rte_memzone_reserve(name, sizeof(struct
>> >l3fwd_event_resources),
>> >> +				 0, 0);
>> >> +	if (mz != NULL) {
>> >> +		memset(mz->addr, 0, sizeof(struct
>> >l3fwd_event_resources));
>> >> +		return mz->addr;
>> >> +	}
>> >> +
>> >> +	rte_exit(EXIT_FAILURE, "Unable to allocate memory for
>> >eventdev cfg\n");
>> >> +
>> >> +	return NULL;
>> >> +}
>> >
>> >Does this function really need to be inline?
>> >It wouldn't be fast anyway.
>> >Another question - do you really need memzone here?
>> >Wouldn't just rte_malloc() be enough?
>>
>> Will remove inline in next version.
>> rte_malloc would call for a global variable which I'm
>> trying to avoid.
>
>If you plan to move that function into .c file,
>you don't need a global var.  it could be static local one.
>
>> I don't think there is any harm in using
>> named memzone.
>
>I don't see any harm, though malloc+var will be faster I think.
>Though up to you - no strong opinion here.

Maybe we can cut down some init time. I will move it to .c next version. 
Thanks,
Pavan


More information about the dev mailing list