@@ -18,6 +18,17 @@
struct page;
+#ifdef CONFIG_AERATION
+#include <linux/memory_aeration.h>
+
+#define HAVE_ARCH_FREE_PAGE_NOTIFY
+static inline void
+arch_free_page_notify(struct page *page, struct zone *zone, int order)
+{
+ aerator_notify_free(page, zone, order);
+}
+
+#endif
#include <linux/range.h>
extern struct range pfn_mapped[];
extern int nr_pfn_mapped;
@@ -459,6 +459,10 @@ static inline struct zonelist *node_zonelist(int nid, gfp_t flags)
#ifndef HAVE_ARCH_FREE_PAGE
static inline void arch_free_page(struct page *page, int order) { }
#endif
+#ifndef HAVE_ARCH_FREE_PAGE_NOTIFY
+static inline void
+arch_free_page_notify(struct page *page, struct zone *zone, int order) { }
+#endif
#ifndef HAVE_ARCH_ALLOC_PAGE
static inline void arch_alloc_page(struct page *page, int order) { }
#endif
@@ -999,6 +999,8 @@ static inline void __free_one_page(struct page *page,
add_to_free_area_tail(page, area, migratetype);
else
add_to_free_area(page, area, migratetype);
+
+ arch_free_page_notify(page, zone, order);
}
/*