Hi,
I am measuring the time cost of parallel creation and destruction of
net namespaces.
As cleanup_net() is invoked from workqueue, the exit of a net
namespace does not mean the cleanup is completed. Therefore I use
ftrace to count the number of net_drop_ns() are called. But I found
that the number of namespaces created does not match with the number
of net_drop_ns() calls even after a long wait.
Can you give some hints on why this is happening? and what would be
the correct way to know when the last cleanup_net() is done?
Thanks,
Leon
*psudo code of my program:
n = 0;
while (1) {
pid = fork();
if (pid == 0) {
unshare(CLONE_NEWNET);
exit(0);
} else if (/* run out of PID */) {
/* wait for all the children */
/* get total time for n creations+destructions */
n = 0;
} else { /* do nothing */ }
n++;
}