sdnfv / openNetVM

A high performance container-based NFV platform from GW and UCR.
http://sdnfv.github.io/onvm/
Other
263 stars 136 forks source link

Dynamically allocate rx, tx, and msg rings for NF's #178

Closed dennisafa closed 4 years ago

dennisafa commented 4 years ago

Instead of allocating rings for up to MAX_NF during the manager startup, allocate when an NF is actually spawned.

Summary:

This PR moves the ring allocation functionality out of onvm_init.c and into onvm_nf.c. Rings are now allocated when onvm_nf_start is called by the NF initialization routine.

Usage:

This PR includes
Resolves issues
Breaking API changes
Internal API changes X
Usability improvements
Bug fixes
New functionality
New NF/onvm_mgr args
Changes to starting NFs
Dependency updates
Web stats updates

Merging notes:

TODO before merging :

Test Plan:

Made sure that the order of ring allocation didn't cause unexpected race conditions/other bugs. My main concern was shared core mode, in which all of the NF's rings are checked before they might be allocated. But since we NULL them out before the loop begins, it is OK. Tested by creating NF chains using speed_tester and deallocating/reallocating NF's.

Review:

@koolzz @kevindweb

onvm commented 4 years ago

In response to PR creation

CI Message

Your results will arrive shortly

koolzz commented 4 years ago

Nope def not looking at this until next year, good work tho :+1:

twood02 commented 4 years ago

@koolzz -- will you have time look at this?

koolzz commented 4 years ago

@koolzz -- will you have time look at this?

yeah I'll take a look this weekend