Binbin Wu <binbin.wu@xxxxxxxxxxxxxxx> writes: > <snip> > >> >> I'm not sure whose refcount the folio_put() in kvm_gmem_allocate() is >> dropping though: >> >> + The refcount for the filemap depends on whether this is a hugepage or >> not, but folio_put() strictly drops a refcount of 1. >> + The refcount for the lru list is just 1, but doesn't the page still >> remain in the lru list? > > I guess the refcount drop here is the one get on the fresh allocation. > Now the filemap has grabbed the folio, so the lifecycle of the folio now > is decided by the filemap/inode? > This makes sense! So folio_put() here is saying, I'm not using this folio anymore, but the filemap and the lru list are stil using the folio. > <snip>