From: Karim Yaghmour signed-off-by: Karim Yaghmour Signed-off-by: Andrew Morton --- 25-akpm/mm/filemap.c | 5 +++++ 25-akpm/mm/memory.c | 4 ++++ 25-akpm/mm/page_alloc.c | 4 ++++ 25-akpm/mm/page_io.c | 2 ++ 4 files changed, 15 insertions(+) diff -puN mm/filemap.c~ltt-mm-events mm/filemap.c --- 25/mm/filemap.c~ltt-mm-events 2005-01-23 14:46:47.363118264 -0800 +++ 25-akpm/mm/filemap.c 2005-01-23 14:46:47.371117048 -0800 @@ -28,6 +28,7 @@ #include #include #include +#include /* * This is needed for the following functions: * - try_to_release_page @@ -402,9 +403,13 @@ void fastcall wait_on_page_bit(struct pa { DEFINE_WAIT_BIT(wait, &page->flags, bit_nr); + ltt_ev_memory(LTT_EV_MEMORY_PAGE_WAIT_START, 0); + if (test_bit(bit_nr, &page->flags)) __wait_on_bit(page_waitqueue(page), &wait, sync_page, TASK_UNINTERRUPTIBLE); + + ltt_ev_memory(LTT_EV_MEMORY_PAGE_WAIT_END, 0); } EXPORT_SYMBOL(wait_on_page_bit); diff -puN mm/memory.c~ltt-mm-events mm/memory.c --- 25/mm/memory.c~ltt-mm-events 2005-01-23 14:46:47.364118112 -0800 +++ 25-akpm/mm/memory.c 2005-01-23 14:46:47.373116744 -0800 @@ -50,6 +50,9 @@ #include #include +#include +#include + #include #include #include @@ -1694,6 +1697,7 @@ static int do_swap_page(struct mm_struct spin_unlock(&mm->page_table_lock); page = lookup_swap_cache(entry); if (!page) { + ltt_ev_memory(LTT_EV_MEMORY_SWAP_IN, address); swapin_readahead(entry, address, vma); page = read_swap_cache_async(entry, vma, address); if (!page) { diff -puN mm/page_alloc.c~ltt-mm-events mm/page_alloc.c --- 25/mm/page_alloc.c~ltt-mm-events 2005-01-23 14:46:47.366117808 -0800 +++ 25-akpm/mm/page_alloc.c 2005-01-23 14:46:47.375116440 -0800 @@ -33,6 +33,7 @@ #include #include #include +#include #include #include "internal.h" @@ -332,6 +333,8 @@ void __free_pages_ok(struct page *page, LIST_HEAD(list); int i; + ltt_ev_memory(LTT_EV_MEMORY_PAGE_FREE, order); + if (arch_free_page(page, order)) return; @@ -868,6 +871,7 @@ fastcall unsigned long __get_free_pages( page = alloc_pages(gfp_mask, order); if (!page) return 0; + ltt_ev_memory(LTT_EV_MEMORY_PAGE_ALLOC, order); return (unsigned long) page_address(page); } diff -puN mm/page_io.c~ltt-mm-events mm/page_io.c --- 25/mm/page_io.c~ltt-mm-events 2005-01-23 14:46:47.367117656 -0800 +++ 25-akpm/mm/page_io.c 2005-01-23 14:46:47.375116440 -0800 @@ -17,6 +17,7 @@ #include #include #include +#include #include static struct bio *get_swap_bio(int gfp_flags, pgoff_t index, @@ -103,6 +104,7 @@ int swap_writepage(struct page *page, st inc_page_state(pswpout); set_page_writeback(page); unlock_page(page); + ltt_ev_memory(LTT_EV_MEMORY_SWAP_OUT, (unsigned long) page); submit_bio(rw, bio); out: return ret; _