ARM 架构中的 ASID(地址空间标识符)在一个寄存器中占用 8 位。这意味着可以分配 256 个 ASID。但是在linux内核中甚至可以同时运行超过1024个任务。Linux内核中ASID用完的情况如何处理?我查过内核源码,当ASID用完时,内核会重新分配ASID给新的任务。考虑一种情况,最新的任务拥有第一个 ASID(0b1000 0000 0000 0001),但必须有一个任务已经拥有相同的 ASID。如果这两个任务需要cantext切换怎么办?我没有找到相关的内核源代码。linux内核中的相关代码在 ~/kernel/core.c context_switch() 中。任何回复将不胜感激,在此先感谢
此致。苍鹭