diff options
Diffstat (limited to 'Documentation/core-api')
| -rw-r--r-- | Documentation/core-api/cachetlb.rst | 6 | ||||
| -rw-r--r-- | Documentation/core-api/irq/irq-domain.rst | 3 | ||||
| -rw-r--r-- | Documentation/core-api/memory-hotplug.rst | 3 | ||||
| -rw-r--r-- | Documentation/core-api/mm-api.rst | 5 | ||||
| -rw-r--r-- | Documentation/core-api/printk-formats.rst | 2 | ||||
| -rw-r--r-- | Documentation/core-api/workqueue.rst | 21 | 
6 files changed, 29 insertions, 11 deletions
| diff --git a/Documentation/core-api/cachetlb.rst b/Documentation/core-api/cachetlb.rst index 8aed9103e48a..5c0552e78c58 100644 --- a/Documentation/core-api/cachetlb.rst +++ b/Documentation/core-api/cachetlb.rst @@ -326,6 +326,12 @@ maps this page at its virtual address.  			dirty.  Again, see sparc64 for examples of how  			to deal with this. +  ``void flush_dcache_folio(struct folio *folio)`` +	This function is called under the same circumstances as +	flush_dcache_page().  It allows the architecture to +	optimise for flushing the entire folio of pages instead +	of flushing one page at a time. +    ``void copy_to_user_page(struct vm_area_struct *vma, struct page *page,    unsigned long user_vaddr, void *dst, void *src, int len)``    ``void copy_from_user_page(struct vm_area_struct *vma, struct page *page, diff --git a/Documentation/core-api/irq/irq-domain.rst b/Documentation/core-api/irq/irq-domain.rst index 9c0e8758037a..d30b4d0a9769 100644 --- a/Documentation/core-api/irq/irq-domain.rst +++ b/Documentation/core-api/irq/irq-domain.rst @@ -67,9 +67,6 @@ variety of methods:    deprecated  - generic_handle_domain_irq() handles an interrupt described by a    domain and a hwirq number -- handle_domain_irq() does the same thing for root interrupt -  controllers and deals with the set_irq_reg()/irq_enter() sequences -  that most architecture requires  Note that irq domain lookups must happen in contexts that are  compatible with a RCU read-side critical section. diff --git a/Documentation/core-api/memory-hotplug.rst b/Documentation/core-api/memory-hotplug.rst index de7467e48067..682259ee633a 100644 --- a/Documentation/core-api/memory-hotplug.rst +++ b/Documentation/core-api/memory-hotplug.rst @@ -57,7 +57,6 @@ The third argument (arg) passes a pointer of struct memory_notify::  		unsigned long start_pfn;  		unsigned long nr_pages;  		int status_change_nid_normal; -		int status_change_nid_high;  		int status_change_nid;  	} @@ -65,8 +64,6 @@ The third argument (arg) passes a pointer of struct memory_notify::  - nr_pages is # of pages of online/offline memory.  - status_change_nid_normal is set node id when N_NORMAL_MEMORY of nodemask    is (will be) set/clear, if this is -1, then nodemask status is not changed. -- status_change_nid_high is set node id when N_HIGH_MEMORY of nodemask -  is (will be) set/clear, if this is -1, then nodemask status is not changed.  - status_change_nid is set node id when N_MEMORY of nodemask is (will be)    set/clear. It means a new(memoryless) node gets new memory by online and a    node loses all memory. If this is -1, then nodemask status is not changed. diff --git a/Documentation/core-api/mm-api.rst b/Documentation/core-api/mm-api.rst index a42f9baddfbf..395835f9289f 100644 --- a/Documentation/core-api/mm-api.rst +++ b/Documentation/core-api/mm-api.rst @@ -95,6 +95,11 @@ More Memory Management Functions  .. kernel-doc:: mm/mempolicy.c  .. kernel-doc:: include/linux/mm_types.h     :internal: +.. kernel-doc:: include/linux/mm_inline.h +.. kernel-doc:: include/linux/page-flags.h  .. kernel-doc:: include/linux/mm.h     :internal: +.. kernel-doc:: include/linux/page_ref.h  .. kernel-doc:: include/linux/mmzone.h +.. kernel-doc:: mm/util.c +   :functions: folio_mapping diff --git a/Documentation/core-api/printk-formats.rst b/Documentation/core-api/printk-formats.rst index e08bbe9b0cbf..5e89497ba314 100644 --- a/Documentation/core-api/printk-formats.rst +++ b/Documentation/core-api/printk-formats.rst @@ -580,7 +580,7 @@ Flags bitfields such as page flags, gfp_flags  :: -	%pGp	referenced|uptodate|lru|active|private|node=0|zone=2|lastcpupid=0x1fffff +	%pGp	0x17ffffc0002036(referenced|uptodate|lru|active|private|node=0|zone=2|lastcpupid=0x1fffff)  	%pGg	GFP_USER|GFP_DMA32|GFP_NOWARN  	%pGv	read|exec|mayread|maywrite|mayexec|denywrite diff --git a/Documentation/core-api/workqueue.rst b/Documentation/core-api/workqueue.rst index 541d31de8926..3b22ed137662 100644 --- a/Documentation/core-api/workqueue.rst +++ b/Documentation/core-api/workqueue.rst @@ -216,10 +216,6 @@ resources, scheduled and executed.    This flag is meaningless for unbound wq. -Note that the flag ``WQ_NON_REENTRANT`` no longer exists as all -workqueues are now non-reentrant - any work item is guaranteed to be -executed by at most one worker system-wide at any given time. -  ``max_active``  -------------- @@ -391,6 +387,23 @@ the stack trace of the offending worker thread. ::  The work item's function should be trivially visible in the stack  trace. +Non-reentrance Conditions +========================= + +Workqueue guarantees that a work item cannot be re-entrant if the following +conditions hold after a work item gets queued: + +        1. The work function hasn't been changed. +        2. No one queues the work item to another workqueue. +        3. The work item hasn't been reinitiated. + +In other words, if the above conditions hold, the work item is guaranteed to be +executed by at most one worker system-wide at any given time. + +Note that requeuing the work item (to the same queue) in the self function +doesn't break these conditions, so it's safe to do. Otherwise, caution is +required when breaking the conditions inside a work function. +  Kernel Inline Documentations Reference  ====================================== |