kni: fix possible mbuf leaks and speed up port release
authorYangchao Zhou <zhouyates@gmail.com>
Thu, 19 Apr 2018 03:12:20 +0000 (11:12 +0800)
committerThomas Monjalon <thomas@monjalon.net>
Sun, 13 May 2018 21:58:20 +0000 (23:58 +0200)
commite77fec694936ce067153c5a6596c6bc818baaa5c
tree943d1fe8dbbe2e68a71556f6d750fd26b835c7ab
parent21ce8e44b8d395dd90fd43d078b7894df48b6eee
kni: fix possible mbuf leaks and speed up port release

rx_q fifo can only be released by kernel thread. There may be
mbuf leaks in rx_q because kernel threads are randomly stopped.

When the kni is released and netdev is unregisterd, convert the
physical address mbufs in rx_q to the virtual address in free_q.
By the way, alloc_q can be processed together to speed up the
release rate in userspace.

In my test, it is improved from 300-500ms with a mempool that has
 131072 mbufs to 10ms(regardless of the specifications).

Suggested-by: Ferruh Yigit <ferruh.yigit@intel.com>
Signed-off-by: Yangchao Zhou <zhouyates@gmail.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
kernel/linux/kni/kni_dev.h
kernel/linux/kni/kni_misc.c
kernel/linux/kni/kni_net.c