tlb shootdown
如果一个进程被调度出去,相应的该进程的页表项应该从tlb中刷掉。于是tlb在每次进程换入的时候都是miss的。为了解决这个问题,芯片设计厂商引入了pcid/asid这种技术。通过在tlb上给每个进程增加标识,进程在调度出去的时候无需刷tlb,这样在切入的时候tlb还在。尽管这会提升tlb的命中率但同时也带来了tlb shootdown的问题。
在没有pcid/asid的时候,进程在结束的时候只需刷本cpu的tlb即可。但是加入pcid/asid的话,该进程曾经执行过的cpu都会有一份tlb副本,于是在进程结束的时候要将这些tlb全部冲刷掉,这就必须发送ipi中断给对应cpu,引发整体的性能问题。