Change cdev_mgtdev_page_free_page to take an iterator, rather than an object and page, so that removing the page from the object radix tree can take advantage of locality with iterators. Define a general-purpose function to free multiple pages, which can be used in several places.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
sys/vm/device_pager.c | ||
---|---|---|
267 | ||
292 | Looking at the callers of cdev_mgtdev_pager_free_pages(), I believe that in all cases the page count is simply the number of resident pages in the object. In that case, I would suggest simply iterating over all pages in the object and freeing them, rather than passing this count. |