Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-25 Thread Johannes Weiner
On Fri, Jul 25, 2014 at 05:43:20PM +0200, Michal Hocko wrote: > On Fri 25-07-14 11:26:54, Johannes Weiner wrote: > > On Thu, Jul 24, 2014 at 11:02:57AM +0200, Michal Hocko wrote: > > > On Thu 24-07-14 10:46:44, Michal Hocko wrote: > > > > On Wed 23-07-14 17:02:41, Johannes Weiner wrote: > > > [...]

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-25 Thread Michal Hocko
On Fri 25-07-14 11:26:54, Johannes Weiner wrote: > On Thu, Jul 24, 2014 at 11:02:57AM +0200, Michal Hocko wrote: > > On Thu 24-07-14 10:46:44, Michal Hocko wrote: > > > On Wed 23-07-14 17:02:41, Johannes Weiner wrote: > > [...] > > > We can reduce the lookup only to lruvec==true case, no? > > > >

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-25 Thread Johannes Weiner
On Thu, Jul 24, 2014 at 11:02:57AM +0200, Michal Hocko wrote: > On Thu 24-07-14 10:46:44, Michal Hocko wrote: > > On Wed 23-07-14 17:02:41, Johannes Weiner wrote: > [...] > > We can reduce the lookup only to lruvec==true case, no? > > Dohh > s@can@should@ > > newpage shouldn't charged in all othe

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-24 Thread Michal Hocko
On Thu 24-07-14 10:46:44, Michal Hocko wrote: > On Wed 23-07-14 17:02:41, Johannes Weiner wrote: [...] > We can reduce the lookup only to lruvec==true case, no? Dohh s@can@should@ newpage shouldn't charged in all other cases and it would be bug. Or am I missing something? > Acked-by: Michal Hock

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-24 Thread Michal Hocko
On Wed 23-07-14 17:02:41, Johannes Weiner wrote: [...] > From 2c3525cb556313936845a7c57f4c4adc655b6680 Mon Sep 17 00:00:00 2001 > From: Johannes Weiner > Date: Wed, 23 Jul 2014 15:00:15 -0400 > Subject: [patch] mm: memcontrol: rewrite uncharge API fix - page cache > migration 2 > > In case of fu

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-23 Thread Johannes Weiner
Hi Miklos, On Wed, Jul 23, 2014 at 08:08:57PM +0200, Miklos Szeredi wrote: > On Wed, Jul 23, 2014 at 5:06 PM, Johannes Weiner wrote: > > Can the new page be anything else than previous page cache? > > It could be an ordinary pipe buffer too. Stealable as well (see > generic_pipe_buf_steal()).

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-23 Thread Miklos Szeredi
On Wed, Jul 23, 2014 at 5:06 PM, Johannes Weiner wrote: > Can the new page be anything else than previous page cache? It could be an ordinary pipe buffer too. Stealable as well (see generic_pipe_buf_steal()). Thanks, Miklos -- To unsubscribe from this list: send the line "unsubscribe linux-kern

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-23 Thread Johannes Weiner
On Wed, Jul 23, 2014 at 05:19:09PM +0200, Michal Hocko wrote: > On Wed 23-07-14 11:06:08, Johannes Weiner wrote: > > On Wed, Jul 23, 2014 at 04:38:47PM +0200, Michal Hocko wrote: > [...] > > > OK, thanks for the clarification. I had this feeling but couldn't wrap > > > my head around the indirectio

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-23 Thread Michal Hocko
On Wed 23-07-14 11:06:08, Johannes Weiner wrote: > On Wed, Jul 23, 2014 at 04:38:47PM +0200, Michal Hocko wrote: [...] > > OK, thanks for the clarification. I had this feeling but couldn't wrap > > my head around the indirection of the code. > > > > It seems that checkig PageCgroupUsed(new) and ba

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-23 Thread Johannes Weiner
On Wed, Jul 23, 2014 at 04:38:47PM +0200, Michal Hocko wrote: > On Tue 22-07-14 17:44:43, Miklos Szeredi wrote: > > On Tue, Jul 22, 2014 at 5:08 PM, Michal Hocko wrote: > > > On Sat 19-07-14 13:39:11, Johannes Weiner wrote: > > >> On Fri, Jul 18, 2014 at 05:12:54PM +0200, Miklos Szeredi wrote: > >

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-23 Thread Michal Hocko
On Tue 22-07-14 17:44:43, Miklos Szeredi wrote: > On Tue, Jul 22, 2014 at 5:08 PM, Michal Hocko wrote: > > On Sat 19-07-14 13:39:11, Johannes Weiner wrote: > >> On Fri, Jul 18, 2014 at 05:12:54PM +0200, Miklos Szeredi wrote: > >> > On Fri, Jul 18, 2014 at 4:45 PM, Johannes Weiner > >> > wrote: >

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-22 Thread Miklos Szeredi
On Tue, Jul 22, 2014 at 5:08 PM, Michal Hocko wrote: > On Sat 19-07-14 13:39:11, Johannes Weiner wrote: >> On Fri, Jul 18, 2014 at 05:12:54PM +0200, Miklos Szeredi wrote: >> > On Fri, Jul 18, 2014 at 4:45 PM, Johannes Weiner >> > wrote: >> > >> > > I assumed the source page would always be new,

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-22 Thread Michal Hocko
On Sat 19-07-14 13:39:11, Johannes Weiner wrote: > On Fri, Jul 18, 2014 at 05:12:54PM +0200, Miklos Szeredi wrote: > > On Fri, Jul 18, 2014 at 4:45 PM, Johannes Weiner wrote: > > > > > I assumed the source page would always be new, according to this part > > > in fuse_try_move_page(): > > > > > >

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-19 Thread Johannes Weiner
On Fri, Jul 18, 2014 at 05:12:54PM +0200, Miklos Szeredi wrote: > On Fri, Jul 18, 2014 at 4:45 PM, Johannes Weiner wrote: > > > I assumed the source page would always be new, according to this part > > in fuse_try_move_page(): > > > > /* > > * This is a new and locked page, it sh

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-18 Thread Miklos Szeredi
On Fri, Jul 18, 2014 at 4:45 PM, Johannes Weiner wrote: > I assumed the source page would always be new, according to this part > in fuse_try_move_page(): > > /* > * This is a new and locked page, it shouldn't be mapped or > * have any special flags on it > */ >

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-18 Thread Johannes Weiner
Hi Michal, [cc'ing Miklos for fuse's use of replace_page_cache()] On Fri, Jul 18, 2014 at 09:12:46AM +0200, Michal Hocko wrote: > On Tue 15-07-14 14:19:35, Michal Hocko wrote: > > [...] > > > +/** > > > + * mem_cgroup_migrate - migrate a charge to another page > > > + * @oldpage: currently charge

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-18 Thread Michal Hocko
On Tue 15-07-14 14:19:35, Michal Hocko wrote: > [...] > > +/** > > + * mem_cgroup_migrate - migrate a charge to another page > > + * @oldpage: currently charged page > > + * @newpage: page to transfer the charge to > > + * @lrucare: page might be on LRU already > > which one? I guess the newpage?

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-16 Thread Naoya Horiguchi
On Wed, Jul 16, 2014 at 10:14:47AM -0400, Johannes Weiner wrote: ... > > > free_hot_cold_page(page, false); > > > } > > > > > > @@ -75,7 +75,10 @@ static void __put_compound_page(struct page *page) > > > { > > > compound_page_dtor *dtor; > > > > > > - __page_cache_release(page); > > > + i

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-16 Thread Johannes Weiner
On Wed, Jul 16, 2014 at 09:30:50AM -0400, Naoya Horiguchi wrote: > On Tue, Jul 15, 2014 at 05:48:43PM -0400, Johannes Weiner wrote: > > On Tue, Jul 15, 2014 at 04:49:53PM -0400, Naoya Horiguchi wrote: > > > I feel that these 2 messages have the same cause (just appear > > > differently). > > > __a

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-16 Thread Naoya Horiguchi
On Tue, Jul 15, 2014 at 05:48:43PM -0400, Johannes Weiner wrote: > On Tue, Jul 15, 2014 at 04:49:53PM -0400, Naoya Horiguchi wrote: > > I feel that these 2 messages have the same cause (just appear differently). > > __add_to_page_cache_locked() (and mem_cgroup_try_charge()) can be called > > for hu

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-16 Thread Michal Hocko
On Tue 15-07-14 17:48:43, Johannes Weiner wrote: > On Tue, Jul 15, 2014 at 04:49:53PM -0400, Naoya Horiguchi wrote: > > I feel that these 2 messages have the same cause (just appear differently). > > __add_to_page_cache_locked() (and mem_cgroup_try_charge()) can be called > > for hugetlb, while we

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-15 Thread Johannes Weiner
On Tue, Jul 15, 2014 at 04:49:53PM -0400, Naoya Horiguchi wrote: > I feel that these 2 messages have the same cause (just appear differently). > __add_to_page_cache_locked() (and mem_cgroup_try_charge()) can be called > for hugetlb, while we avoid calling mem_cgroup_migrate()/mem_cgroup_uncharge()

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-15 Thread Naoya Horiguchi
On Tue, Jul 15, 2014 at 03:04:54PM -0400, Johannes Weiner wrote: > On Tue, Jul 15, 2014 at 02:43:58PM -0400, Naoya Horiguchi wrote: > > On Tue, Jul 15, 2014 at 01:34:39PM -0400, Johannes Weiner wrote: > > > On Tue, Jul 15, 2014 at 06:07:35PM +0200, Michal Hocko wrote: > > > > On Tue 15-07-14 11:55:

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-15 Thread Johannes Weiner
On Tue, Jul 15, 2014 at 02:43:58PM -0400, Naoya Horiguchi wrote: > On Tue, Jul 15, 2014 at 01:34:39PM -0400, Johannes Weiner wrote: > > On Tue, Jul 15, 2014 at 06:07:35PM +0200, Michal Hocko wrote: > > > On Tue 15-07-14 11:55:37, Naoya Horiguchi wrote: > > > > On Wed, Jun 18, 2014 at 04:40:45PM -04

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-15 Thread Naoya Horiguchi
On Tue, Jul 15, 2014 at 01:34:39PM -0400, Johannes Weiner wrote: > On Tue, Jul 15, 2014 at 06:07:35PM +0200, Michal Hocko wrote: > > On Tue 15-07-14 11:55:37, Naoya Horiguchi wrote: > > > On Wed, Jun 18, 2014 at 04:40:45PM -0400, Johannes Weiner wrote: > > > ... > > > > diff --git a/mm/swap.c b/mm/

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-15 Thread Michal Hocko
On Tue 15-07-14 13:34:39, Johannes Weiner wrote: > On Tue, Jul 15, 2014 at 06:07:35PM +0200, Michal Hocko wrote: > > On Tue 15-07-14 11:55:37, Naoya Horiguchi wrote: > > > On Wed, Jun 18, 2014 at 04:40:45PM -0400, Johannes Weiner wrote: > > > ... > > > > diff --git a/mm/swap.c b/mm/swap.c > > > > i

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-15 Thread Johannes Weiner
On Tue, Jul 15, 2014 at 06:07:35PM +0200, Michal Hocko wrote: > On Tue 15-07-14 11:55:37, Naoya Horiguchi wrote: > > On Wed, Jun 18, 2014 at 04:40:45PM -0400, Johannes Weiner wrote: > > ... > > > diff --git a/mm/swap.c b/mm/swap.c > > > index a98f48626359..3074210f245d 100644 > > > --- a/mm/swap.c

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-15 Thread Michal Hocko
On Tue 15-07-14 11:55:37, Naoya Horiguchi wrote: > On Wed, Jun 18, 2014 at 04:40:45PM -0400, Johannes Weiner wrote: > ... > > diff --git a/mm/swap.c b/mm/swap.c > > index a98f48626359..3074210f245d 100644 > > --- a/mm/swap.c > > +++ b/mm/swap.c > > @@ -62,6 +62,7 @@ static void __page_cache_release

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-15 Thread Naoya Horiguchi
On Wed, Jun 18, 2014 at 04:40:45PM -0400, Johannes Weiner wrote: ... > diff --git a/mm/swap.c b/mm/swap.c > index a98f48626359..3074210f245d 100644 > --- a/mm/swap.c > +++ b/mm/swap.c > @@ -62,6 +62,7 @@ static void __page_cache_release(struct page *page) > del_page_from_lru_list(page

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-15 Thread Michal Hocko
On Tue 15-07-14 11:46:43, Johannes Weiner wrote: > On Tue, Jul 15, 2014 at 05:18:18PM +0200, Michal Hocko wrote: > > On Tue 15-07-14 11:09:37, Johannes Weiner wrote: > > > On Tue, Jul 15, 2014 at 04:23:50PM +0200, Michal Hocko wrote: > > > > On Tue 15-07-14 10:25:45, Michal Hocko wrote: > > [...] >

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-15 Thread Johannes Weiner
On Tue, Jul 15, 2014 at 05:18:18PM +0200, Michal Hocko wrote: > On Tue 15-07-14 11:09:37, Johannes Weiner wrote: > > On Tue, Jul 15, 2014 at 04:23:50PM +0200, Michal Hocko wrote: > > > On Tue 15-07-14 10:25:45, Michal Hocko wrote: > [...] > > > > @@ -2760,15 +2752,15 @@ static void commit_charge(st

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-15 Thread Michal Hocko
On Tue 15-07-14 11:09:37, Johannes Weiner wrote: > On Tue, Jul 15, 2014 at 04:23:50PM +0200, Michal Hocko wrote: > > On Tue 15-07-14 10:25:45, Michal Hocko wrote: [...] > > > @@ -2760,15 +2752,15 @@ static void commit_charge(struct page *page, > > > struct mem_cgroup *memcg, > > > spin_u

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-15 Thread Johannes Weiner
On Tue, Jul 15, 2014 at 04:23:50PM +0200, Michal Hocko wrote: > On Tue 15-07-14 10:25:45, Michal Hocko wrote: > [...] > > diff --git a/Documentation/cgroups/memcg_test.txt > > b/Documentation/cgroups/memcg_test.txt > > index bcf750d3cecd..8870b0212150 100644 > > --- a/Documentation/cgroups/memcg_t

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-15 Thread Michal Hocko
On Tue 15-07-14 10:25:45, Michal Hocko wrote: [...] > diff --git a/Documentation/cgroups/memcg_test.txt > b/Documentation/cgroups/memcg_test.txt > index bcf750d3cecd..8870b0212150 100644 > --- a/Documentation/cgroups/memcg_test.txt > +++ b/Documentation/cgroups/memcg_test.txt [...] > 6. Shmem(tmp

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-07-15 Thread Michal Hocko
[...] > +/** > + * mem_cgroup_migrate - migrate a charge to another page > + * @oldpage: currently charged page > + * @newpage: page to transfer the charge to > + * @lrucare: page might be on LRU already which one? I guess the newpage? > + * > + * Migrate the charge from @oldpage to @newpage. > +

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-06-20 Thread Sasha Levin
On 06/20/2014 08:56 PM, Andrew Morton wrote: > On Fri, 20 Jun 2014 20:34:43 -0400 Sasha Levin wrote: > >> I'm seeing the following when booting a VM, bisection pointed me to this >> patch. >> >> [ 32.830823] BUG: using __this_cpu_add() in preemptible [] code: >> mkdir/8677 > > Thanks.

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-06-20 Thread Andrew Morton
On Fri, 20 Jun 2014 20:34:43 -0400 Sasha Levin wrote: > I'm seeing the following when booting a VM, bisection pointed me to this > patch. > > [ 32.830823] BUG: using __this_cpu_add() in preemptible [] code: > mkdir/8677 Thanks. This one was fixed earlier today. From: Michal Hocko

Re: [patch 13/13] mm: memcontrol: rewrite uncharge API

2014-06-20 Thread Sasha Levin
On 06/18/2014 04:40 PM, Johannes Weiner wrote: > The memcg uncharging code that is involved towards the end of a page's > lifetime - truncation, reclaim, swapout, migration - is impressively > complicated and fragile. > > Because anonymous and file pages were always charged before they had > their