Re: [RFC 2/2] shmem: add support to ignore swap

From: Matthew Wilcox
Date: Mon Feb 06 2023 - 23:02:19 EST


On Mon, Feb 06, 2023 at 06:52:59PM -0800, Luis Chamberlain wrote:
> @@ -1334,11 +1336,15 @@ static int shmem_writepage(struct page *page, struct writeback_control *wbc)
> struct shmem_inode_info *info;
> struct address_space *mapping = folio->mapping;
> struct inode *inode = mapping->host;
> + struct shmem_sb_info *sbinfo = SHMEM_SB(inode->i_sb);
> swp_entry_t swap;
> pgoff_t index;
>
> BUG_ON(!folio_test_locked(folio));
>
> + if (wbc->for_reclaim && unlikely(sbinfo->noswap))
> + return AOP_WRITEPAGE_ACTIVATE;

Not sure this is the best way to handle this. We'll still incur the
oevrhead of tracking shmem pages on the LRU, only to fail to write them
out when the VM thinks we should get rid of them. We'd be better off
not putting them on the LRU in the first place.