Re: [External] Re: [PATCH v2 3/6] mm: hugetlb: fix a race between freeing and dissolving the page

2021-01-08 Thread Muchun Song
On Fri, Jan 8, 2021 at 8:04 PM Michal Hocko wrote: > > On Fri 08-01-21 19:52:54, Muchun Song wrote: > > On Fri, Jan 8, 2021 at 7:44 PM Michal Hocko wrote: > > > > > > On Fri 08-01-21 18:08:57, Muchun Song wrote: > > > > On Fri, Jan 8, 2021 at 5:31 PM Michal Hocko wrote: > > > > > > > > > > On

Re: [External] Re: [PATCH v2 3/6] mm: hugetlb: fix a race between freeing and dissolving the page

2021-01-08 Thread Michal Hocko
On Fri 08-01-21 19:52:54, Muchun Song wrote: > On Fri, Jan 8, 2021 at 7:44 PM Michal Hocko wrote: > > > > On Fri 08-01-21 18:08:57, Muchun Song wrote: > > > On Fri, Jan 8, 2021 at 5:31 PM Michal Hocko wrote: > > > > > > > > On Fri 08-01-21 17:01:03, Muchun Song wrote: > > > > > On Fri, Jan 8,

Re: [External] Re: [PATCH v2 3/6] mm: hugetlb: fix a race between freeing and dissolving the page

2021-01-08 Thread Muchun Song
On Fri, Jan 8, 2021 at 7:44 PM Michal Hocko wrote: > > On Fri 08-01-21 18:08:57, Muchun Song wrote: > > On Fri, Jan 8, 2021 at 5:31 PM Michal Hocko wrote: > > > > > > On Fri 08-01-21 17:01:03, Muchun Song wrote: > > > > On Fri, Jan 8, 2021 at 4:43 PM Michal Hocko wrote: > > > > > > > > > > On

Re: [External] Re: [PATCH v2 3/6] mm: hugetlb: fix a race between freeing and dissolving the page

2021-01-08 Thread Michal Hocko
On Fri 08-01-21 18:08:57, Muchun Song wrote: > On Fri, Jan 8, 2021 at 5:31 PM Michal Hocko wrote: > > > > On Fri 08-01-21 17:01:03, Muchun Song wrote: > > > On Fri, Jan 8, 2021 at 4:43 PM Michal Hocko wrote: > > > > > > > > On Thu 07-01-21 23:11:22, Muchun Song wrote: > > [..] > > > > > But I

Re: [External] Re: [PATCH v2 3/6] mm: hugetlb: fix a race between freeing and dissolving the page

2021-01-08 Thread Muchun Song
On Fri, Jan 8, 2021 at 5:31 PM Michal Hocko wrote: > > On Fri 08-01-21 17:01:03, Muchun Song wrote: > > On Fri, Jan 8, 2021 at 4:43 PM Michal Hocko wrote: > > > > > > On Thu 07-01-21 23:11:22, Muchun Song wrote: > [..] > > > > But I find a tricky problem to solve. See free_huge_page(). > > > >

Re: [External] Re: [PATCH v2 3/6] mm: hugetlb: fix a race between freeing and dissolving the page

2021-01-08 Thread Michal Hocko
On Fri 08-01-21 17:01:03, Muchun Song wrote: > On Fri, Jan 8, 2021 at 4:43 PM Michal Hocko wrote: > > > > On Thu 07-01-21 23:11:22, Muchun Song wrote: [..] > > > But I find a tricky problem to solve. See free_huge_page(). > > > If we are in non-task context, we should schedule a work > > > to

Re: [External] Re: [PATCH v2 3/6] mm: hugetlb: fix a race between freeing and dissolving the page

2021-01-08 Thread Muchun Song
On Fri, Jan 8, 2021 at 4:43 PM Michal Hocko wrote: > > On Thu 07-01-21 23:11:22, Muchun Song wrote: > > On Thu, Jan 7, 2021 at 10:11 PM Michal Hocko wrote: > > > > > > On Thu 07-01-21 20:59:33, Muchun Song wrote: > > > > On Thu, Jan 7, 2021 at 8:38 PM Michal Hocko wrote: > > > [...] > > > > >

Re: [External] Re: [PATCH v2 3/6] mm: hugetlb: fix a race between freeing and dissolving the page

2021-01-08 Thread Michal Hocko
On Thu 07-01-21 23:11:22, Muchun Song wrote: > On Thu, Jan 7, 2021 at 10:11 PM Michal Hocko wrote: > > > > On Thu 07-01-21 20:59:33, Muchun Song wrote: > > > On Thu, Jan 7, 2021 at 8:38 PM Michal Hocko wrote: > > [...] > > > > Right. Can we simply back off in the dissolving path when ref count

Re: [External] Re: [PATCH v2 3/6] mm: hugetlb: fix a race between freeing and dissolving the page

2021-01-07 Thread Muchun Song
On Fri, Jan 8, 2021 at 9:08 AM Mike Kravetz wrote: > > On 1/7/21 7:11 AM, Muchun Song wrote: > > On Thu, Jan 7, 2021 at 10:11 PM Michal Hocko wrote: > >> > >> On Thu 07-01-21 20:59:33, Muchun Song wrote: > >>> On Thu, Jan 7, 2021 at 8:38 PM Michal Hocko wrote: > >> [...] > Right. Can we

Re: [External] Re: [PATCH v2 3/6] mm: hugetlb: fix a race between freeing and dissolving the page

2021-01-07 Thread Mike Kravetz
On 1/7/21 7:11 AM, Muchun Song wrote: > On Thu, Jan 7, 2021 at 10:11 PM Michal Hocko wrote: >> >> On Thu 07-01-21 20:59:33, Muchun Song wrote: >>> On Thu, Jan 7, 2021 at 8:38 PM Michal Hocko wrote: >> [...] Right. Can we simply back off in the dissolving path when ref count is 0 &&

Re: [External] Re: [PATCH v2 3/6] mm: hugetlb: fix a race between freeing and dissolving the page

2021-01-07 Thread Muchun Song
On Thu, Jan 7, 2021 at 10:11 PM Michal Hocko wrote: > > On Thu 07-01-21 20:59:33, Muchun Song wrote: > > On Thu, Jan 7, 2021 at 8:38 PM Michal Hocko wrote: > [...] > > > Right. Can we simply back off in the dissolving path when ref count is > > > 0 && PageHuge() if list_empty(page->lru)? Is

Re: [External] Re: [PATCH v2 3/6] mm: hugetlb: fix a race between freeing and dissolving the page

2021-01-07 Thread Michal Hocko
On Thu 07-01-21 20:59:33, Muchun Song wrote: > On Thu, Jan 7, 2021 at 8:38 PM Michal Hocko wrote: [...] > > Right. Can we simply back off in the dissolving path when ref count is > > 0 && PageHuge() if list_empty(page->lru)? Is there any other scenario > > when the all above is true and the page

Re: [External] Re: [PATCH v2 3/6] mm: hugetlb: fix a race between freeing and dissolving the page

2021-01-07 Thread Muchun Song
On Thu, Jan 7, 2021 at 8:38 PM Michal Hocko wrote: > > On Thu 07-01-21 19:38:00, Muchun Song wrote: > > On Thu, Jan 7, 2021 at 7:18 PM Michal Hocko wrote: > > > > > > On Thu 07-01-21 16:53:13, Muchun Song wrote: > > > > On Thu, Jan 7, 2021 at 4:41 PM Michal Hocko wrote: > > > > > > > > > > On

Re: [External] Re: [PATCH v2 3/6] mm: hugetlb: fix a race between freeing and dissolving the page

2021-01-07 Thread Michal Hocko
On Thu 07-01-21 19:38:00, Muchun Song wrote: > On Thu, Jan 7, 2021 at 7:18 PM Michal Hocko wrote: > > > > On Thu 07-01-21 16:53:13, Muchun Song wrote: > > > On Thu, Jan 7, 2021 at 4:41 PM Michal Hocko wrote: > > > > > > > > On Thu 07-01-21 13:39:38, Muchun Song wrote: > > > > > On Thu, Jan 7,

Re: [External] Re: [PATCH v2 3/6] mm: hugetlb: fix a race between freeing and dissolving the page

2021-01-07 Thread Muchun Song
On Thu, Jan 7, 2021 at 7:18 PM Michal Hocko wrote: > > On Thu 07-01-21 16:53:13, Muchun Song wrote: > > On Thu, Jan 7, 2021 at 4:41 PM Michal Hocko wrote: > > > > > > On Thu 07-01-21 13:39:38, Muchun Song wrote: > > > > On Thu, Jan 7, 2021 at 12:56 AM Michal Hocko wrote: > > > > > > > > > > On

Re: [External] Re: [PATCH v2 3/6] mm: hugetlb: fix a race between freeing and dissolving the page

2021-01-07 Thread Michal Hocko
On Thu 07-01-21 16:53:13, Muchun Song wrote: > On Thu, Jan 7, 2021 at 4:41 PM Michal Hocko wrote: > > > > On Thu 07-01-21 13:39:38, Muchun Song wrote: > > > On Thu, Jan 7, 2021 at 12:56 AM Michal Hocko wrote: > > > > > > > > On Wed 06-01-21 16:47:36, Muchun Song wrote: > > > > > There is a race

Re: [External] Re: [PATCH v2 3/6] mm: hugetlb: fix a race between freeing and dissolving the page

2021-01-07 Thread Muchun Song
On Thu, Jan 7, 2021 at 4:41 PM Michal Hocko wrote: > > On Thu 07-01-21 13:39:38, Muchun Song wrote: > > On Thu, Jan 7, 2021 at 12:56 AM Michal Hocko wrote: > > > > > > On Wed 06-01-21 16:47:36, Muchun Song wrote: > > > > There is a race condition between __free_huge_page() > > > > and

Re: [External] Re: [PATCH v2 3/6] mm: hugetlb: fix a race between freeing and dissolving the page

2021-01-07 Thread Michal Hocko
On Thu 07-01-21 13:39:38, Muchun Song wrote: > On Thu, Jan 7, 2021 at 12:56 AM Michal Hocko wrote: > > > > On Wed 06-01-21 16:47:36, Muchun Song wrote: > > > There is a race condition between __free_huge_page() > > > and dissolve_free_huge_page(). > > > > > > CPU0: CPU1: >

Re: [External] Re: [PATCH v2 3/6] mm: hugetlb: fix a race between freeing and dissolving the page

2021-01-06 Thread Muchun Song
On Thu, Jan 7, 2021 at 12:56 AM Michal Hocko wrote: > > On Wed 06-01-21 16:47:36, Muchun Song wrote: > > There is a race condition between __free_huge_page() > > and dissolve_free_huge_page(). > > > > CPU0: CPU1: > > > > // page_count(page) == 1 > > put_page(page) > >

Re: [External] Re: [PATCH v2 3/6] mm: hugetlb: fix a race between freeing and dissolving the page

2021-01-06 Thread Muchun Song
On Thu, Jan 7, 2021 at 5:00 AM Mike Kravetz wrote: > > On 1/6/21 8:56 AM, Michal Hocko wrote: > > On Wed 06-01-21 16:47:36, Muchun Song wrote: > >> There is a race condition between __free_huge_page() > >> and dissolve_free_huge_page(). > >> > >> CPU0: CPU1: > >> > >> //