ANLAB-KAIST / rust-dpdk

BSD 3-Clause "New" or "Revised" License
86 stars 14 forks source link

Eal/Mempool 관련 discussion #36

Closed leeopop closed 9 months ago

leeopop commented 4 years ago

문제

mempool에서 할당된 packet들이 여기저기에서 쓰이는데 mempool을 해제하기 전에 모든 packet들이 mempool에 들어와야만 해제 가능.

1. Mempool 과 Eal 의 lifetime을 분리하고 garbage collection thread를 도입

garbage collection thread가 일정 주기로 mempool의 arc 카운터 개수와 더불어서 mempool의 packet count (4096짜리면 다시 원래 4096개가 모였는지) 를 검사하여 arc가 더이상 없고 모든 패킷들이 수거 완료되었을 때에 자동으로 해제

2. Mempool을 Eal에 종속시키고 Eal 소멸 시에 동시에 소멸할 수 있도록 함.

구현은 쉽지만 Eal 진행 중에 mempool을 동적으로 없앴다가 다시 복구하는 등의 작업을 할 수 없음.

결론

일단 2안으로 진행하기로 함.