Excessive TLB flush ranges

Uladzislau Rezki urezki at gmail.com
Tue May 16 06:42:20 PDT 2023


> _vm_unmap_aliases() collects dirty ranges from per cpu vmap_block_queue
> (what ever that is) and hands a start..end range to
> __purge_vmap_area_lazy().
> 
> As I pointed out already, this can also end up being an excessive range
> because there is no guarantee that those individual collected ranges are
> consecutive. Though I have no idea how to cure that right now.
> 
> AFAICT this was done to spare flush IPIs, but the mm folks should be
> able to explain that properly.
> 
This is done to prevent generating IPIs. That is why the whole range is
calculated once and a flush occurs only once for all lazily registered VAs.

--
Uladzislau Rezki



More information about the linux-arm-kernel mailing list