Skip to content

Commit 9470904

Browse files
committed
Merge branch 'akpm' (patches from Andrew)
Merge updates from Andrew Morton: "A few little subsystems and a start of a lot of MM patches. Subsystems affected by this patch series: squashfs, ocfs2, parisc, vfs. With mm subsystems: slab-generic, slub, debug, pagecache, gup, swap, memcg, pagemap, memory-failure, vmalloc, kasan" * emailed patches from Andrew Morton <[email protected]>: (128 commits) kasan: move kasan_report() into report.c mm/mm_init.c: report kasan-tag information stored in page->flags ubsan: entirely disable alignment checks under UBSAN_TRAP kasan: fix clang compilation warning due to stack protector x86/mm: remove vmalloc faulting mm: remove vmalloc_sync_(un)mappings() x86/mm/32: implement arch_sync_kernel_mappings() x86/mm/64: implement arch_sync_kernel_mappings() mm/ioremap: track which page-table levels were modified mm/vmalloc: track which page-table levels were modified mm: add functions to track page directory modifications s390: use __vmalloc_node in stack_alloc powerpc: use __vmalloc_node in alloc_vm_stack arm64: use __vmalloc_node in arch_alloc_vmap_stack mm: remove vmalloc_user_node_flags mm: switch the test_vmalloc module to use __vmalloc_node mm: remove __vmalloc_node_flags_caller mm: remove both instances of __vmalloc_node_flags mm: remove the prot argument to __vmalloc_node mm: remove the pgprot argument to __vmalloc ...
2 parents 1783985 + 4fba375 commit 9470904

File tree

195 files changed

+2200
-2199
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

195 files changed

+2200
-2199
lines changed

Documentation/admin-guide/cgroup-v2.rst

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1329,6 +1329,10 @@ PAGE_SIZE multiple when read back.
13291329
workingset_activate
13301330
Number of refaulted pages that were immediately activated
13311331

1332+
workingset_restore
1333+
Number of restored pages which have been detected as an active
1334+
workingset before they got reclaimed.
1335+
13321336
workingset_nodereclaim
13331337
Number of times a shadow node has been reclaimed
13341338

@@ -1370,6 +1374,22 @@ PAGE_SIZE multiple when read back.
13701374
The total amount of swap currently being used by the cgroup
13711375
and its descendants.
13721376

1377+
memory.swap.high
1378+
A read-write single value file which exists on non-root
1379+
cgroups. The default is "max".
1380+
1381+
Swap usage throttle limit. If a cgroup's swap usage exceeds
1382+
this limit, all its further allocations will be throttled to
1383+
allow userspace to implement custom out-of-memory procedures.
1384+
1385+
This limit marks a point of no return for the cgroup. It is NOT
1386+
designed to manage the amount of swapping a workload does
1387+
during regular operation. Compare to memory.swap.max, which
1388+
prohibits swapping past a set amount, but lets the cgroup
1389+
continue unimpeded as long as other memory can be reclaimed.
1390+
1391+
Healthy workloads are not expected to reach this limit.
1392+
13731393
memory.swap.max
13741394
A read-write single value file which exists on non-root
13751395
cgroups. The default is "max".
@@ -1383,6 +1403,10 @@ PAGE_SIZE multiple when read back.
13831403
otherwise, a value change in this file generates a file
13841404
modified event.
13851405

1406+
high
1407+
The number of times the cgroup's swap usage was over
1408+
the high threshold.
1409+
13861410
max
13871411
The number of times the cgroup's swap usage was about
13881412
to go over the max boundary and swap allocation

Documentation/core-api/cachetlb.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ Here are the routines, one by one:
213213
there will be no entries in the cache for the kernel address
214214
space for virtual addresses in the range 'start' to 'end-1'.
215215

216-
The first of these two routines is invoked after map_vm_area()
216+
The first of these two routines is invoked after map_kernel_range()
217217
has installed the page table entries. The second is invoked
218218
before unmap_kernel_range() deletes the page table entries.
219219

Documentation/filesystems/locking.rst

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,7 @@ prototypes::
239239
int (*readpage)(struct file *, struct page *);
240240
int (*writepages)(struct address_space *, struct writeback_control *);
241241
int (*set_page_dirty)(struct page *page);
242+
void (*readahead)(struct readahead_control *);
242243
int (*readpages)(struct file *filp, struct address_space *mapping,
243244
struct list_head *pages, unsigned nr_pages);
244245
int (*write_begin)(struct file *, struct address_space *mapping,
@@ -271,7 +272,8 @@ writepage: yes, unlocks (see below)
271272
readpage: yes, unlocks
272273
writepages:
273274
set_page_dirty no
274-
readpages:
275+
readahead: yes, unlocks
276+
readpages: no
275277
write_begin: locks the page exclusive
276278
write_end: yes, unlocks exclusive
277279
bmap:
@@ -295,6 +297,8 @@ the request handler (/dev/loop).
295297
->readpage() unlocks the page, either synchronously or via I/O
296298
completion.
297299

300+
->readahead() unlocks the pages that I/O is attempted on like ->readpage().
301+
298302
->readpages() populates the pagecache with the passed pages and starts
299303
I/O against them. They come unlocked upon I/O completion.
300304

Documentation/filesystems/proc.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1043,8 +1043,8 @@ PageTables
10431043
amount of memory dedicated to the lowest level of page
10441044
tables.
10451045
NFS_Unstable
1046-
NFS pages sent to the server, but not yet committed to stable
1047-
storage
1046+
Always zero. Previous counted pages which had been written to
1047+
the server, but has not been committed to stable storage.
10481048
Bounce
10491049
Memory used for block device "bounce buffers"
10501050
WritebackTmp

Documentation/filesystems/vfs.rst

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -706,6 +706,7 @@ cache in your filesystem. The following members are defined:
706706
int (*readpage)(struct file *, struct page *);
707707
int (*writepages)(struct address_space *, struct writeback_control *);
708708
int (*set_page_dirty)(struct page *page);
709+
void (*readahead)(struct readahead_control *);
709710
int (*readpages)(struct file *filp, struct address_space *mapping,
710711
struct list_head *pages, unsigned nr_pages);
711712
int (*write_begin)(struct file *, struct address_space *mapping,
@@ -781,12 +782,26 @@ cache in your filesystem. The following members are defined:
781782
If defined, it should set the PageDirty flag, and the
782783
PAGECACHE_TAG_DIRTY tag in the radix tree.
783784

785+
``readahead``
786+
Called by the VM to read pages associated with the address_space
787+
object. The pages are consecutive in the page cache and are
788+
locked. The implementation should decrement the page refcount
789+
after starting I/O on each page. Usually the page will be
790+
unlocked by the I/O completion handler. If the filesystem decides
791+
to stop attempting I/O before reaching the end of the readahead
792+
window, it can simply return. The caller will decrement the page
793+
refcount and unlock the remaining pages for you. Set PageUptodate
794+
if the I/O completes successfully. Setting PageError on any page
795+
will be ignored; simply unlock the page if an I/O error occurs.
796+
784797
``readpages``
785798
called by the VM to read pages associated with the address_space
786799
object. This is essentially just a vector version of readpage.
787800
Instead of just one page, several pages are requested.
788801
readpages is only used for read-ahead, so read errors are
789802
ignored. If anything goes wrong, feel free to give up.
803+
This interface is deprecated and will be removed by the end of
804+
2020; implement readahead instead.
790805

791806
``write_begin``
792807
Called by the generic buffered write code to ask the filesystem

Documentation/vm/slub.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ Possible debug options are::
4949
P Poisoning (object and padding)
5050
U User tracking (free and alloc)
5151
T Trace (please only use on single slabs)
52-
A Toggle failslab filter mark for the cache
52+
A Enable failslab filter mark for the cache
5353
O Switch debugging off for caches that would have
5454
caused higher minimum slab orders
5555
- Switch all debugging off (useful if the kernel is

arch/arm/configs/omap2plus_defconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ CONFIG_PARTITION_ADVANCED=y
8181
CONFIG_BINFMT_MISC=y
8282
CONFIG_CMA=y
8383
CONFIG_ZSMALLOC=m
84-
CONFIG_PGTABLE_MAPPING=y
84+
CONFIG_ZSMALLOC_PGTABLE_MAPPING=y
8585
CONFIG_NET=y
8686
CONFIG_PACKET=y
8787
CONFIG_UNIX=y

arch/arm64/include/asm/pgtable.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -407,6 +407,9 @@ static inline pmd_t pmd_mkdevmap(pmd_t pmd)
407407
#define __pgprot_modify(prot,mask,bits) \
408408
__pgprot((pgprot_val(prot) & ~(mask)) | (bits))
409409

410+
#define pgprot_nx(prot) \
411+
__pgprot_modify(prot, 0, PTE_PXN)
412+
410413
/*
411414
* Mark the prot value as uncacheable and unbufferable.
412415
*/

arch/arm64/include/asm/vmap_stack.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,8 @@ static inline unsigned long *arch_alloc_vmap_stack(size_t stack_size, int node)
1919
{
2020
BUILD_BUG_ON(!IS_ENABLED(CONFIG_VMAP_STACK));
2121

22-
return __vmalloc_node_range(stack_size, THREAD_ALIGN,
23-
VMALLOC_START, VMALLOC_END,
24-
THREADINFO_GFP, PAGE_KERNEL, 0, node,
25-
__builtin_return_address(0));
22+
return __vmalloc_node(stack_size, THREAD_ALIGN, THREADINFO_GFP, node,
23+
__builtin_return_address(0));
2624
}
2725

2826
#endif /* __ASM_VMAP_STACK_H */

arch/arm64/mm/dump.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ static void note_prot_wx(struct pg_state *st, unsigned long addr)
252252
}
253253

254254
static void note_page(struct ptdump_state *pt_st, unsigned long addr, int level,
255-
unsigned long val)
255+
u64 val)
256256
{
257257
struct pg_state *st = container_of(pt_st, struct pg_state, ptdump);
258258
static const char units[] = "KMGTPE";

0 commit comments

Comments
 (0)