我是Linux操作系统的新手,最近我正在研究uprobe的实现细节。我遇到了一个宏vma_interval_tree_foreach,我在https://elixir.bootlin.com/上搜索它。它给出了以下定义: for (vma = vma_interval_tree_iter_first(root, star
我最近发现,当mmap (虚拟内存区域)结构的数量超过vm.max_map_count时,Linux并不保证munmap可以释放分配给vm.max_map_count的内存。问题是,如果可能的话,Linux内核总是尝试合并VMA结构,即使是单独创建的映射,munmap也会失败。; i += 2) {
if (munmap(vma[i], VMA_SIZE) !显然,Linux上的情况并非如此,而且我无法在其他系统上找到有关类似行为的信息。我通常会认为这是内核中的一个bug