remove references to page->flags in documentation
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Tue, 26 Mar 2024 17:10:31 +0000 (17:10 +0000)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 26 Apr 2024 03:56:15 +0000 (20:56 -0700)
Mostly rewording, but remove entirely the copy of page_fixed_fake_head()
in the documentation; we can refer people to the actual source if
necessary.

Link: https://lkml.kernel.org/r/20240326171045.410737-10-willy@infradead.org
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Documentation/admin-guide/cgroup-v1/memory.rst
Documentation/mm/vmemmap_dedup.rst
Documentation/translations/zh_CN/core-api/cachetlb.rst
mm/migrate.c
mm/rmap.c

index ca7d9402f6be16d505a81c07920360f851493b00..46110e6a31bbd98ed288e2d988650d153c93e6c9 100644 (file)
@@ -300,14 +300,14 @@ When oom event notifier is registered, event will be delivered.
 
 Lock order is as follows::
 
-  Page lock (PG_locked bit of page->flags)
+  folio_lock
     mm->page_table_lock or split pte_lock
       folio_memcg_lock (memcg->move_lock)
         mapping->i_pages lock
           lruvec->lru_lock.
 
 Per-node-per-memcgroup LRU (cgroup's private LRU) is guarded by
-lruvec->lru_lock; PG_lru bit of page->flags is cleared before
+lruvec->lru_lock; the folio LRU flag is cleared before
 isolating a page from its LRU under lruvec->lru_lock.
 
 .. _cgroup-v1-memory-kernel-extension:
index 593ede6d314ba6de4fec26b2e0903babe6e4da6a..b4a55b6569fa543ca43546db4e97e5ccdb2a59ab 100644 (file)
@@ -180,27 +180,7 @@ this correctly. There is only **one** head ``struct page``, the tail
 ``struct page`` with ``PG_head`` are fake head ``struct page``.  We need an
 approach to distinguish between those two different types of ``struct page`` so
 that ``compound_head()`` can return the real head ``struct page`` when the
-parameter is the tail ``struct page`` but with ``PG_head``. The following code
-snippet describes how to distinguish between real and fake head ``struct page``.
-
-.. code-block:: c
-
-       if (test_bit(PG_head, &page->flags)) {
-               unsigned long head = READ_ONCE(page[1].compound_head);
-
-               if (head & 1) {
-                       if (head == (unsigned long)page + 1)
-                               /* head struct page */
-                       else
-                               /* tail struct page */
-               } else {
-                       /* head struct page */
-               }
-       }
-
-We can safely access the field of the **page[1]** with ``PG_head`` because the
-page is a compound page composed with at least two contiguous pages.
-The implementation refers to ``page_fixed_fake_head()``.
+parameter is the tail ``struct page`` but with ``PG_head``.
 
 Device DAX
 ==========
index b4a76ec75daa57ce5f9d7f60a63567832af13871..64295c61d1c136534efc22f0cddc69c613e62444 100644 (file)
@@ -260,7 +260,7 @@ HyperSparc cpu就是这样一个具有这种属性的cpu。
        如果D-cache别名不是一个问题,这个程序可以简单地定义为该架构上
        的nop。
 
-       在page->flags (PG_arch_1)中有一个位是“架构私有”。内核保证,
+       在folio->flags (PG_arch_1)中有一个位是“架构私有”。内核保证,
        对于分页缓存的页面,当这样的页面第一次进入分页缓存时,它将清除
        这个位。
 
index a31aa75d223d045715ba48a9b76453f6611fd7ff..285072bca29ce28248bb01cab4e7d5ee3d2f39f9 100644 (file)
@@ -113,7 +113,7 @@ bool isolate_movable_page(struct page *page, isolate_mode_t mode)
        if (!mops->isolate_page(&folio->page, mode))
                goto out_no_isolated;
 
-       /* Driver shouldn't use PG_isolated bit of page->flags */
+       /* Driver shouldn't use the isolated flag */
        WARN_ON_ONCE(folio_test_isolated(folio));
        folio_set_isolated(folio);
        folio_unlock(folio);
index d52759aa3ff77ae0ab27986c6a753c40ca8f9e8e..5ee9e338d09b5d4ca3231416c79a8655c543da58 100644 (file)
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -23,7 +23,7 @@
  * inode->i_rwsem      (while writing or truncating, not reading or faulting)
  *   mm->mmap_lock
  *     mapping->invalidate_lock (in filemap_fault)
- *       page->flags PG_locked (lock_page)
+ *       folio_lock
  *         hugetlbfs_i_mmap_rwsem_key (in huge_pmd_share, see hugetlbfs below)
  *           vma_start_write
  *             mapping->i_mmap_rwsem
@@ -50,7 +50,7 @@
  *   hugetlb_fault_mutex (hugetlbfs specific page fault mutex)
  *     vma_lock (hugetlb specific lock for pmd_sharing)
  *       mapping->i_mmap_rwsem (also used for hugetlb pmd sharing)
- *         page->flags PG_locked (lock_page)
+ *         folio_lock
  */
 
 #include <linux/mm.h>