[PATCH 3/3] mm/page_owner: track page free call chain

2016-07-11 Thread Sergey Senozhatsky
Extend page_owner with free_pages() tracking functionality. This adds to the dump_page_owner() output an additional backtrace, that tells us what path has freed the page. Aa a trivial example, let's assume that do_some_foo() has an error - an extra put_page() on error return path, and the function

Re: [PATCH 3/3] mm/page_owner: track page free call chain

2016-07-04 Thread Sergey Senozhatsky
On (07/04/16 16:29), Joonsoo Kim wrote: [..] > > well, yes. current hits bad_page(), page_owner helps to find out who > > stole and spoiled it from under current. > > > > CPU a CPU b > > > > alloc_page() > > put_page() << legitimate >

Re: [PATCH 3/3] mm/page_owner: track page free call chain

2016-07-04 Thread Joonsoo Kim
On Mon, Jul 04, 2016 at 02:45:24PM +0900, Sergey Senozhatsky wrote: > On (07/04/16 14:29), Joonsoo Kim wrote: > > > > On Sun, Jul 03, 2016 at 01:16:56AM +0900, Sergey Senozhatsky wrote: > > > > > Introduce PAGE_OWNER_TRACK_FREE config option to extend page owner > > > > > with > > > > > free_pages

Re: [PATCH 3/3] mm/page_owner: track page free call chain

2016-07-03 Thread Sergey Senozhatsky
On (07/04/16 14:29), Joonsoo Kim wrote: > > > On Sun, Jul 03, 2016 at 01:16:56AM +0900, Sergey Senozhatsky wrote: > > > > Introduce PAGE_OWNER_TRACK_FREE config option to extend page owner with > > > > free_pages() tracking functionality. This adds to the dump_page_owner() > > > > output an additio

Re: [PATCH 3/3] mm/page_owner: track page free call chain

2016-07-03 Thread Joonsoo Kim
On Mon, Jul 04, 2016 at 02:07:30PM +0900, Sergey Senozhatsky wrote: > Hello, > > On (07/04/16 13:57), Joonsoo Kim wrote: > > On Sun, Jul 03, 2016 at 01:16:56AM +0900, Sergey Senozhatsky wrote: > > > Introduce PAGE_OWNER_TRACK_FREE config option to extend page owner with > > > free_pages() tracking

Re: [PATCH 3/3] mm/page_owner: track page free call chain

2016-07-03 Thread Sergey Senozhatsky
Hello, On (07/04/16 13:57), Joonsoo Kim wrote: > On Sun, Jul 03, 2016 at 01:16:56AM +0900, Sergey Senozhatsky wrote: > > Introduce PAGE_OWNER_TRACK_FREE config option to extend page owner with > > free_pages() tracking functionality. This adds to the dump_page_owner() > > output an additional back

Re: [PATCH 3/3] mm/page_owner: track page free call chain

2016-07-03 Thread Joonsoo Kim
On Sun, Jul 03, 2016 at 01:16:56AM +0900, Sergey Senozhatsky wrote: > Introduce PAGE_OWNER_TRACK_FREE config option to extend page owner with > free_pages() tracking functionality. This adds to the dump_page_owner() > output an additional backtrace, that tells us what path has freed the > page. Hm

Re: [PATCH 3/3] mm/page_owner: track page free call chain

2016-07-02 Thread Sergey Senozhatsky
On (07/03/16 01:16), Sergey Senozhatsky wrote: [..] > +#ifdef CONFIG_PAGE_OWNER_TRACK_FREE > +void __page_owner_free_pages(struct page *page, unsigned int order) > +{ > + int i; > + depot_stack_handle_t handle; > + struct page_ext *page_ext = lookup_page_ext(page); > + > + if (unlik

[PATCH 3/3] mm/page_owner: track page free call chain

2016-07-02 Thread Sergey Senozhatsky
Introduce PAGE_OWNER_TRACK_FREE config option to extend page owner with free_pages() tracking functionality. This adds to the dump_page_owner() output an additional backtrace, that tells us what path has freed the page. Aa a trivial example, let's assume that do_some_foo() has an error - extra put