Re: [RFC PATCH 7/8] hugetlb: add update_and_free_page_no_sleep for irq context

2021-03-24 Thread Mike Kravetz
On 3/19/21 6:18 PM, Hillf Danton wrote: > On Fri, 19 Mar 2021 15:42:08 -0700 Mike Kravetz wrote: >> + >> +if (!can_sleep && free_page_may_sleep(h, page)) { >> +/* >> + * Send page freeing to workqueue >> + * >> + * Only call schedule_work() if

Re: [RFC PATCH 7/8] hugetlb: add update_and_free_page_no_sleep for irq context

2021-03-24 Thread Mike Kravetz
On 3/24/21 1:43 AM, Michal Hocko wrote: > On Tue 23-03-21 11:51:04, Mike Kravetz wrote: >> On 3/22/21 11:10 AM, Roman Gushchin wrote: >>> On Mon, Mar 22, 2021 at 10:42:23AM -0700, Mike Kravetz wrote: Cc: Roman, Christoph On 3/22/21 1:41 AM, Peter Zijlstra wrote: > On Fri, Mar

Re: [RFC PATCH 7/8] hugetlb: add update_and_free_page_no_sleep for irq context

2021-03-24 Thread Michal Hocko
On Tue 23-03-21 11:51:04, Mike Kravetz wrote: > On 3/22/21 11:10 AM, Roman Gushchin wrote: > > On Mon, Mar 22, 2021 at 10:42:23AM -0700, Mike Kravetz wrote: > >> Cc: Roman, Christoph > >> > >> On 3/22/21 1:41 AM, Peter Zijlstra wrote: > >>> On Fri, Mar 19, 2021 at 03:42:08PM -0700, Mike Kravetz

Re: [RFC PATCH 7/8] hugetlb: add update_and_free_page_no_sleep for irq context

2021-03-23 Thread Roman Gushchin
On Tue, Mar 23, 2021 at 11:51:04AM -0700, Mike Kravetz wrote: > On 3/22/21 11:10 AM, Roman Gushchin wrote: > > On Mon, Mar 22, 2021 at 10:42:23AM -0700, Mike Kravetz wrote: > >> Cc: Roman, Christoph > >> > >> On 3/22/21 1:41 AM, Peter Zijlstra wrote: > >>> On Fri, Mar 19, 2021 at 03:42:08PM -0700,

Re: [RFC PATCH 7/8] hugetlb: add update_and_free_page_no_sleep for irq context

2021-03-23 Thread Mike Kravetz
On 3/22/21 11:10 AM, Roman Gushchin wrote: > On Mon, Mar 22, 2021 at 10:42:23AM -0700, Mike Kravetz wrote: >> Cc: Roman, Christoph >> >> On 3/22/21 1:41 AM, Peter Zijlstra wrote: >>> On Fri, Mar 19, 2021 at 03:42:08PM -0700, Mike Kravetz wrote: The locks acquired in free_huge_page are irq

Re: [RFC PATCH 7/8] hugetlb: add update_and_free_page_no_sleep for irq context

2021-03-22 Thread Peter Zijlstra
On Mon, Mar 22, 2021 at 10:42:23AM -0700, Mike Kravetz wrote: > Cc: Roman, Christoph > > On 3/22/21 1:41 AM, Peter Zijlstra wrote: > > On Fri, Mar 19, 2021 at 03:42:08PM -0700, Mike Kravetz wrote: > >> The locks acquired in free_huge_page are irq safe. However, in certain > >> circumstances the

Re: [RFC PATCH 7/8] hugetlb: add update_and_free_page_no_sleep for irq context

2021-03-22 Thread Roman Gushchin
On Mon, Mar 22, 2021 at 10:42:23AM -0700, Mike Kravetz wrote: > Cc: Roman, Christoph > > On 3/22/21 1:41 AM, Peter Zijlstra wrote: > > On Fri, Mar 19, 2021 at 03:42:08PM -0700, Mike Kravetz wrote: > >> The locks acquired in free_huge_page are irq safe. However, in certain > >> circumstances the

Re: [RFC PATCH 7/8] hugetlb: add update_and_free_page_no_sleep for irq context

2021-03-22 Thread Mike Kravetz
Cc: Roman, Christoph On 3/22/21 1:41 AM, Peter Zijlstra wrote: > On Fri, Mar 19, 2021 at 03:42:08PM -0700, Mike Kravetz wrote: >> The locks acquired in free_huge_page are irq safe. However, in certain >> circumstances the routine update_and_free_page could sleep. Since >> free_huge_page can be

Re: [RFC PATCH 7/8] hugetlb: add update_and_free_page_no_sleep for irq context

2021-03-22 Thread Michal Hocko
On Mon 22-03-21 15:42:27, Michal Hocko wrote: [...] > Besides that the changelog doesn't really say anything about changed > user visible behavior change. Now if somebody decreases the GB huge pool > from the userspace the real effect on the freed up memory will be > postponed to some later time.

Re: [RFC PATCH 7/8] hugetlb: add update_and_free_page_no_sleep for irq context

2021-03-22 Thread Michal Hocko
On Fri 19-03-21 15:42:08, Mike Kravetz wrote: > The locks acquired in free_huge_page are irq safe. However, in certain > circumstances the routine update_and_free_page could sleep. Since > free_huge_page can be called from any context, it can not sleep. > > Use a waitqueue to defer freeing of

Re: [RFC PATCH 7/8] hugetlb: add update_and_free_page_no_sleep for irq context

2021-03-22 Thread Peter Zijlstra
On Fri, Mar 19, 2021 at 03:42:08PM -0700, Mike Kravetz wrote: > The locks acquired in free_huge_page are irq safe. However, in certain > circumstances the routine update_and_free_page could sleep. Since > free_huge_page can be called from any context, it can not sleep. > > Use a waitqueue to

[RFC PATCH 7/8] hugetlb: add update_and_free_page_no_sleep for irq context

2021-03-19 Thread Mike Kravetz
The locks acquired in free_huge_page are irq safe. However, in certain circumstances the routine update_and_free_page could sleep. Since free_huge_page can be called from any context, it can not sleep. Use a waitqueue to defer freeing of pages if the operation may sleep. A new routine