如何在linux内核中销毁一个基数树

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在linux内核中销毁一个基数树相关的知识,希望对你有一定的参考价值。

我正在尝试使用基数树来维护驱动程序的一个内部数据。那么破坏整棵树的正确方法是什么?

一种想法是使用下面提到的方法遍历树:1

对于每个节点,释放该项并从树中删除其密钥。

另一个问题是,radix_tree_for_each_slot()安全与循环内的删除项目?删除会触发内部收缩并导致迭代失败吗?

答案

看看cgwb_bdi_unregister

它似乎正在做你需要的东西 - 它用radix_tree_for_each_slot()迭代基数树,同时这样做也是radix_tree_delete(来自cgwb_kill)。

所以,如果你保持正确的同步,我想没有什么可以爆炸。

以上是关于如何在linux内核中销毁一个基数树的主要内容,如果未能解决你的问题,请参考以下文章

linux内核中销毁进程

如何确定Linux内核源代码目录即,KBUILD的路径

linux内核的Makefile和Kconfig,以及如何在内核中添加自己的代码

如何在销毁活动之前在视图寻呼机内的片段中执行某些操作

Linux SPI通过设备树文件添加设备

LINUX PID 1和SYSTEMD PID 0 是内核的一部分,主要用于内进换页,内核初始化的最后一步就是启动 init 进程。这个进程是系统的第一个进程,PID 为 1,又叫超级进程(代码片段