Alexei Starovoitov says: ==================== pull-request: bpf-next 2020-12-03 The main changes are: 1) Support BTF in kernel modules, from Andrii. 2) Introduce preferred busy-polling, from Björn. 3) bpf_ima_inode_hash() and bpf_bprm_opts_set() helpers, from KP Singh. 4) Memcg-based memory accounting for bpf objects, from Roman. 5) Allow bpf_{s,g}etsockopt from cgroup bind{4,6} hooks, from Stanislav. * https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next: (118 commits) selftests/bpf: Fix invalid use of strncat in test_sockmap libbpf: Use memcpy instead of strncpy to please GCC selftests/bpf: Add fentry/fexit/fmod_ret selftest for kernel module selftests/bpf: Add tp_btf CO-RE reloc test for modules libbpf: Support attachment of BPF tracing programs to kernel modules libbpf: Factor out low-level BPF program loading helper bpf: Allow to specify kernel module BTFs when attaching BPF programs bpf: Remove hard-coded btf_vmlinux assumption from BPF verifier selftests/bpf: Add CO-RE relocs selftest relying on kernel module BTF selftests/bpf: Add support for marking sub-tests as skipped selftests/bpf: Add bpf_testmod kernel module for testing libbpf: Add kernel module BTF support for CO-RE relocations libbpf: Refactor CO-RE relocs to not assume a single BTF object libbpf: Add internal helper to load BTF data by FD bpf: Keep module's btf_data_size intact after load bpf: Fix bpf_put_raw_tracepoint()'s use of __module_address() selftests/bpf: Add Userspace tests for TCP_WINDOW_CLAMP bpf: Adds support for setting window clamp samples/bpf: Fix spelling mistake "recieving" -> "receiving" bpf: Fix cold build of test_progs-no_alu32 ... ==================== Link: https://lore.kernel.org/r/20201204021936.85653-1-alexei.starovoitov@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
@ -1092,7 +1092,7 @@ static inline bool page_expected_state(struct page *page,
|
||||
if (unlikely((unsigned long)page->mapping |
|
||||
page_ref_count(page) |
|
||||
#ifdef CONFIG_MEMCG
|
||||
(unsigned long)page->mem_cgroup |
|
||||
(unsigned long)page_memcg(page) |
|
||||
#endif
|
||||
(page->flags & check_flags)))
|
||||
return false;
|
||||
@ -1117,7 +1117,7 @@ static const char *page_bad_reason(struct page *page, unsigned long flags)
|
||||
bad_reason = "PAGE_FLAGS_CHECK_AT_FREE flag(s) set";
|
||||
}
|
||||
#ifdef CONFIG_MEMCG
|
||||
if (unlikely(page->mem_cgroup))
|
||||
if (unlikely(page_memcg(page)))
|
||||
bad_reason = "page still charged to cgroup";
|
||||
#endif
|
||||
return bad_reason;
|
||||
@ -1214,7 +1214,7 @@ static __always_inline bool free_pages_prepare(struct page *page,
|
||||
* Do not let hwpoison pages hit pcplists/buddy
|
||||
* Untie memcg state and reset page's owner
|
||||
*/
|
||||
if (memcg_kmem_enabled() && PageKmemcg(page))
|
||||
if (memcg_kmem_enabled() && PageMemcgKmem(page))
|
||||
__memcg_kmem_uncharge_page(page, order);
|
||||
reset_page_owner(page, order);
|
||||
return false;
|
||||
@ -1244,7 +1244,7 @@ static __always_inline bool free_pages_prepare(struct page *page,
|
||||
}
|
||||
if (PageMappingFlags(page))
|
||||
page->mapping = NULL;
|
||||
if (memcg_kmem_enabled() && PageKmemcg(page))
|
||||
if (memcg_kmem_enabled() && PageMemcgKmem(page))
|
||||
__memcg_kmem_uncharge_page(page, order);
|
||||
if (check_free)
|
||||
bad += check_free_page(page);
|
||||
|
Reference in New Issue
Block a user