[dpdk-dev] 【Some Questions About Multi-Process Resource Cleaning】
oulijun
oulijun at huawei.com
Mon Mar 8 09:56:31 CET 2021
在 2021/2/10 23:59, Burakov, Anatoly 写道:
> On 04-Feb-21 11:47 AM, oulijun wrote:
>>
>>
>>> Hi,
>>>
>>> Sorry your questions are quite confused.
>>> Please start explaining what is the problem you are trying to solve.
>> Start the master and slave processes at the same time, and then run
>> the kill -9 command to kill the slave processes.
>> The slave process should call rte_eal_cleanup to release resources.
>> But I find that there is no release from the process,
>> and I think there is a resource leak.
>
> To add to others, not only there will be a resource leak whenever you're
> killing processes with SIGKILL, the cleanup is up to individual
> applications to perform. It is not the responsibility of the DPDK
> library itself to install signal handlers and handle SIGINT or others.
>
> So, if the application leaks resources, it's up to the application to
> catch termination signals and clean up after itself. Unfortunately,
> there's also no way to recover any leaked memory that has gone out this
> way: there is no garbage collection or any similar mechanism in DPDK.
> Therefore, while primary-secondary process model is slightly more
> resilient than single-process model, there are no mechanisms to reclaim
> memory from a crashed process, and crashing secondary process still
> leads to undefined behavior.
>
> For example, a crashing secondary process may crash while holding a
> lock, and there's no way to release the lock without reinitializing the
> lock (which often means restart). The secondary process may also crash
> while processing buffers, and those in-flight buffers will be lost.
> There's nothing we can do about it, at least for now.
>
Thank you very much for your response.
More information about the dev
mailing list