dc68054305
- Restore 29 recipe symlinks (libdrm, qtbase, dbus, sddm, pipewire, etc.) - Restore 33 patches (KDE, libdrm, mesa, pipewire, sddm, wireplumber) - Restore 20+ local/scripts (audit, lint, test, build helpers) - Restore src/cook/scheduler.rs, status.rs, gnu-config/ - Restore scripts/patch-inclusion-gate.sh, run_mini1.sh, validate-collision-log.sh - Recover TLC source from HEAD (was overwritten by 0.2.3 checkout) - Recover 11 local/docs plans from HEAD (were overwritten) - Recover qt6-wayland-smoke symlink from HEAD - Fix MOTD: remove garbled ASCII art, use clean text - Update version: 0.2.0 -> 0.2.4 in os-release, motd, config - Reduce filesystem_size: 1536 -> 512 MiB - Add ABSOLUTE RULE to AGENTS.md: never delete/ignore packages - Reduce pcid scheme log verbosity: info -> debug
79 lines
2.4 KiB
C
79 lines
2.4 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef __LINUX_PAGE_OWNER_H
|
|
#define __LINUX_PAGE_OWNER_H
|
|
|
|
#include <linux/jump_label.h>
|
|
|
|
#ifdef CONFIG_PAGE_OWNER
|
|
extern struct static_key_false page_owner_inited;
|
|
extern struct page_ext_operations page_owner_ops;
|
|
|
|
extern void __reset_page_owner(struct page *page, unsigned short order);
|
|
extern void __set_page_owner(struct page *page,
|
|
unsigned short order, gfp_t gfp_mask);
|
|
extern void __split_page_owner(struct page *page, int old_order,
|
|
int new_order);
|
|
extern void __folio_copy_owner(struct folio *newfolio, struct folio *old);
|
|
extern void __folio_set_owner_migrate_reason(struct folio *folio, int reason);
|
|
extern void __dump_page_owner(const struct page *page);
|
|
extern void pagetypeinfo_showmixedcount_print(struct seq_file *m,
|
|
pg_data_t *pgdat, struct zone *zone);
|
|
|
|
static inline void reset_page_owner(struct page *page, unsigned short order)
|
|
{
|
|
if (static_branch_unlikely(&page_owner_inited))
|
|
__reset_page_owner(page, order);
|
|
}
|
|
|
|
static inline void set_page_owner(struct page *page,
|
|
unsigned short order, gfp_t gfp_mask)
|
|
{
|
|
if (static_branch_unlikely(&page_owner_inited))
|
|
__set_page_owner(page, order, gfp_mask);
|
|
}
|
|
|
|
static inline void split_page_owner(struct page *page, int old_order,
|
|
int new_order)
|
|
{
|
|
if (static_branch_unlikely(&page_owner_inited))
|
|
__split_page_owner(page, old_order, new_order);
|
|
}
|
|
static inline void folio_copy_owner(struct folio *newfolio, struct folio *old)
|
|
{
|
|
if (static_branch_unlikely(&page_owner_inited))
|
|
__folio_copy_owner(newfolio, old);
|
|
}
|
|
static inline void folio_set_owner_migrate_reason(struct folio *folio, int reason)
|
|
{
|
|
if (static_branch_unlikely(&page_owner_inited))
|
|
__folio_set_owner_migrate_reason(folio, reason);
|
|
}
|
|
static inline void dump_page_owner(const struct page *page)
|
|
{
|
|
if (static_branch_unlikely(&page_owner_inited))
|
|
__dump_page_owner(page);
|
|
}
|
|
#else
|
|
static inline void reset_page_owner(struct page *page, unsigned short order)
|
|
{
|
|
}
|
|
static inline void set_page_owner(struct page *page,
|
|
unsigned short order, gfp_t gfp_mask)
|
|
{
|
|
}
|
|
static inline void split_page_owner(struct page *page, int old_order,
|
|
int new_order)
|
|
{
|
|
}
|
|
static inline void folio_copy_owner(struct folio *newfolio, struct folio *folio)
|
|
{
|
|
}
|
|
static inline void folio_set_owner_migrate_reason(struct folio *folio, int reason)
|
|
{
|
|
}
|
|
static inline void dump_page_owner(const struct page *page)
|
|
{
|
|
}
|
|
#endif /* CONFIG_PAGE_OWNER */
|
|
#endif /* __LINUX_PAGE_OWNER_H */
|