I have "a few" projects I'm working on / intending to work on in the near future.
Folios is the big one. This has sub-projects:
- MM:
- Convert vmscan.c to folios (partly done for 5.18)
- isolate_lru_pages()
- alloc_demote_page()
- reclaim_clean_pages_from_list()
- move_pages_to_lru()
- shrink_active_list()
- reclaim_pages()
- Convert filemap.c to folios
- filemap_range_has_page()
filemap_fdatawait_range()
- filemap_range_has_writeback()
- replace_page_cache_page()
- page_endio()
- find_get_pages_contig() (or can we remove it?)
- find_get_pages_range_tag()
- filemap_map_pmd()
- filemap_map_pages()
- generic_perform_write()
- Get rid of readahead_page()
- Move split_huge_page() to non-THP code
- Get rid of all thp_size(), thp_order() and thp_nr_pages() calls (probably?)
- Convert vmscan.c to folios (partly done for 5.18)
- FS:
- Adapt NFS to use large folios
- Adapt btrfs to use large folios
- Adapt CIFS to use large folios
- Convert the a_ops to take folios instead of pages (most aops done for 5.19)
Tangential to folios:
- Phyr
- net pool as its own type
- pt pages as its own type
- zspage as its own type
- Can we make mapcount more sensible or disappear entirely?
Implement iomap ->writepages properly
Unrelated to folios:
- Maple Tree (Liam is doing most of the work)
- Shrink struct mutex (Vishal has taken this on)
- Remove PG_private
- Remove PG_error
Synchronous ->readpage
- Broadcast readpage errors to all waiters
Implement ->readahead for squashfs (Hsin-Yi)
- Slab Sevenths (Bill is attacking this one)
- NUMA-aware zero page (Bill is working on this one too)
- NUMA text pages in the page cache (Linus seems sceptical)
- Usercopy for order-0 pages
If we check ->mapping, is that a sure sign of individual allocation?
- Big Buckets (or integrate with Maple Tree)
- Readahead for compressed filesystems in general
- Fix XArray memory leak when memory allocation fails
- Removing b_end_io (Jitendra)
- Enable -Wshadow (needs header file cleanups)
- Share memory when caching reflinked files
- Make page cache better at writethrough for O_SYNC (and related)
Completed projects
- Folios:
- MM:
- Get large folio support in (5.18)
- Convert GUP to folios (5.18)
- Convert page_vma_mapped to PFNs (5.18)
- Convert rmap to folios (5.18)
- FS:
- Convert XFS to large folios (5.18)
Remove aops->readpages (5.18)
- Use an iov_iter in proc/vmcore (5.19)
- Usercopy improvements (5.19)
- Make the last argument to read_mapping_page() / read_mapping_folio() a struct file ptr (5.19)
- Slab (Vlastimil took this over. merged 5.17)