diff options
author | Vinayak Menon <vinmenon@codeaurora.org> | 2015-03-04 16:38:28 +0530 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2015-03-23 01:48:49 -0700 |
commit | 52e8d6ef19b1c26e4a28604812ea99ba45dd2b4e (patch) | |
tree | c01a2b2a41e73e81cde0f5bc491e544c972e4384 /include/linux | |
parent | b428221737823557987d96b0be5c2ac564ba1d7e (diff) | |
download | qcom-msm-v3.10-52e8d6ef19b1c26e4a28604812ea99ba45dd2b4e.tar.gz |
mm: vmpressure: allow in-kernel clients to subscribe for events
Currently, vmpressure is tied to memcg and its events are
available only to userspace clients. This patch removes
the dependency on CONFIG_MEMCG and adds a mechanism for
in-kernel clients to subscribe for vmpressure events (in
fact raw vmpressure values are delivered instead of vmpressure
levels, to provide clients more flexibility to take actions
on custom pressure levels which are not currently defined
by vmpressure module).
Change-Id: I38010f166546e8d7f12f5f355b5dbfd6ba04d587
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/vmpressure.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/include/linux/vmpressure.h b/include/linux/vmpressure.h index 76be077340e..f62cf53b9d9 100644 --- a/include/linux/vmpressure.h +++ b/include/linux/vmpressure.h @@ -24,11 +24,13 @@ struct vmpressure { struct mem_cgroup; -#ifdef CONFIG_MEMCG +extern int vmpressure_notifier_register(struct notifier_block *nb); +extern int vmpressure_notifier_unregister(struct notifier_block *nb); extern void vmpressure(gfp_t gfp, struct mem_cgroup *memcg, unsigned long scanned, unsigned long reclaimed); extern void vmpressure_prio(gfp_t gfp, struct mem_cgroup *memcg, int prio); +#ifdef CONFIG_MEMCG extern void vmpressure_init(struct vmpressure *vmpr); extern struct vmpressure *memcg_to_vmpressure(struct mem_cgroup *memcg); extern struct cgroup_subsys_state *vmpressure_to_css(struct vmpressure *vmpr); @@ -39,9 +41,9 @@ extern int vmpressure_register_event(struct cgroup *cg, struct cftype *cft, extern void vmpressure_unregister_event(struct cgroup *cg, struct cftype *cft, struct eventfd_ctx *eventfd); #else -static inline void vmpressure(gfp_t gfp, struct mem_cgroup *memcg, - unsigned long scanned, unsigned long reclaimed) {} -static inline void vmpressure_prio(gfp_t gfp, struct mem_cgroup *memcg, - int prio) {} +static inline struct vmpressure *memcg_to_vmpressure(struct mem_cgroup *memcg) +{ + return NULL; +} #endif /* CONFIG_MEMCG */ #endif /* __LINUX_VMPRESSURE_H */ |