Message ID | 20210405230043.182734-1-mike.kravetz@oracle.com (mailing list archive) |
---|---|
Headers | show |
Series | make hugetlb put_page safe for all calling contexts | expand |
Hello Andrew, It has been suggested that this series be included before Oscar Salvador's series "Make alloc_contig_range handle Hugetlb pages". At a logical level, here is what I think needs to happen. However, I am not sure how you do tree management and I am open to anything you suggest. Please do not start until we get an Ack from Oscar as he will need to participate. Remove patches for this series in your tree from Mike Kravetz: - hugetlb: add lockdep_assert_held() calls for hugetlb_lock - hugetlb: fix irq locking omissions - hugetlb: make free_huge_page irq safe - hugetlb: change free_pool_huge_page to remove_pool_huge_page - hugetlb: call update_and_free_page without hugetlb_lock - hugetlb: create remove_hugetlb_page() to separate functionality /* * Technically, the following patches do not need to be removed as * they do not interact with Oscar's changes. However, they do * contain 'cover letter comments' in the commit messages which may * not make sense out of context. */ - hugetlb: add per-hstate mutex to synchronize user adjustment - hugetlb: no need to drop hugetlb_lock to call cma_release - mm/cma: change cma mutex to irq safe spinlock Remove patches for the series "Make alloc_contig_range handle Hugetlb pages" from Oscar Salvador. - mm,page_alloc: drop unnecessary checks from pfn_range_valid_contig - mm: make alloc_contig_range handle in-use hugetlb pages - mm: make alloc_contig_range handle free hugetlb pages /* * Technically, the following patches do not need to be removed as * they do not interact with Mike's changes. Again, they do * contain 'cover letter comments' in the commit messages which may * not make sense out of context. */ - mmcompaction-let-isolate_migratepages_rangeblock-return-error-codes-fix - mm,compaction: let isolate_migratepages_{range,block} return error codes - mm,page_alloc: bail out earlier on -ENOMEM in alloc_contig_migrate_range After removing patches above, Mike will provide updated versions of: /* If removed above */ - mm/cma: change cma mutex to irq safe spinlock - hugetlb: no need to drop hugetlb_lock to call cma_release - hugetlb: add per-hstate mutex to synchronize user adjustment /* end of If removed above */ - hugetlb: create remove_hugetlb_page() to separate functionality - hugetlb: call update_and_free_page without hugetlb_lock - hugetlb: change free_pool_huge_page to remove_pool_huge_page - hugetlb: make free_huge_page irq safe - hugetlb: add lockdep_assert_held() calls for hugetlb_lock With these patches in place, Oscar will provide updated versions of: /* If removed above */ - mm,page_alloc: bail out earlier on -ENOMEM in alloc_contig_migrate_range - mm,compaction: let isolate_migratepages_{range,block} return error codes /* end of If removed above */ - mm: make alloc_contig_range handle free hugetlb pages - mm: make alloc_contig_range handle in-use hugetlb pages - mm,page_alloc: drop unnecessary checks from pfn_range_valid_contig Sorry that things ended up in their current state as it will cause more work for you.
On Wed, Apr 07, 2021 at 05:56:55PM -0700, Mike Kravetz wrote: > Hello Andrew, > > It has been suggested that this series be included before Oscar Salvador's > series "Make alloc_contig_range handle Hugetlb pages". At a logical > level, here is what I think needs to happen. However, I am not sure how > you do tree management and I am open to anything you suggest. Please do > not start until we get an Ack from Oscar as he will need to participate. As I said, this is fine by me. I think it is the most straightforward way to proceed with this series as this is a problem that has been bugging us fore quite some time now. See below: > Remove patches for the series "Make alloc_contig_range handle Hugetlb pages" > from Oscar Salvador. > - mm,page_alloc: drop unnecessary checks from pfn_range_valid_contig > - mm: make alloc_contig_range handle in-use hugetlb pages > - mm: make alloc_contig_range handle free hugetlb pages Yes, those need to be removed > /* > * Technically, the following patches do not need to be removed as > * they do not interact with Mike's changes. Again, they do > * contain 'cover letter comments' in the commit messages which may > * not make sense out of context. > */ > - mmcompaction-let-isolate_migratepages_rangeblock-return-error-codes-fix > - mm,compaction: let isolate_migratepages_{range,block} return error codes Those could stay as well, but they mention a change in alloc_contig_range() and without the context of the whole patchset might be misleading, so I would pull those out as well. > - mm,page_alloc: bail out earlier on -ENOMEM in alloc_contig_migrate_range I think this one can stay. But if It is going to be easier for Andrew, just pull them all out and I will resend the whole series once this work goes in. Thanks!
On Thu, 8 Apr 2021 09:11:30 +0200 Oscar Salvador <osalvador@suse.de> wrote: > But if It is going to be easier for Andrew, just pull them all out and I > will resend the whole series once this work goes in. I think so. I shall drop these: mmpage_alloc-bail-out-earlier-on-enomem-in-alloc_contig_migrate_range.patch mmcompaction-let-isolate_migratepages_rangeblock-return-error-codes.patch mmcompaction-let-isolate_migratepages_rangeblock-return-error-codes-fix.patch mm-make-alloc_contig_range-handle-free-hugetlb-pages.patch mm-make-alloc_contig_range-handle-in-use-hugetlb-pages.patch mmpage_alloc-drop-unnecessary-checks-from-pfn_range_valid_contig.patch and these: mm-cma-change-cma-mutex-to-irq-safe-spinlock.patch hugetlb-no-need-to-drop-hugetlb_lock-to-call-cma_release.patch hugetlb-add-per-hstate-mutex-to-synchronize-user-adjustments.patch hugetlb-create-remove_hugetlb_page-to-separate-functionality.patch hugetlb-call-update_and_free_page-without-hugetlb_lock.patch hugetlb-change-free_pool_huge_page-to-remove_pool_huge_page.patch hugetlb-make-free_huge_page-irq-safe.patch hugetlb-make-free_huge_page-irq-safe-fix.patch hugetlb-add-lockdep_assert_held-calls-for-hugetlb_lock.patch Along with notes-to-self that this: https://lkml.kernel.org/r/YGwnPCPaq1xKh/88@hirez.programming.kicks-ass.net might need attention and that this: hugetlb-make-free_huge_page-irq-safe.patch might need updating.
On 4/8/21 10:05 PM, Andrew Morton wrote: > On Thu, 8 Apr 2021 09:11:30 +0200 Oscar Salvador <osalvador@suse.de> wrote: > >> But if It is going to be easier for Andrew, just pull them all out and I >> will resend the whole series once this work goes in. > > I think so. > > I shall drop these: > > mmpage_alloc-bail-out-earlier-on-enomem-in-alloc_contig_migrate_range.patch > mmcompaction-let-isolate_migratepages_rangeblock-return-error-codes.patch > mmcompaction-let-isolate_migratepages_rangeblock-return-error-codes-fix.patch > mm-make-alloc_contig_range-handle-free-hugetlb-pages.patch > mm-make-alloc_contig_range-handle-in-use-hugetlb-pages.patch > mmpage_alloc-drop-unnecessary-checks-from-pfn_range_valid_contig.patch > > and these: > > mm-cma-change-cma-mutex-to-irq-safe-spinlock.patch > hugetlb-no-need-to-drop-hugetlb_lock-to-call-cma_release.patch > hugetlb-add-per-hstate-mutex-to-synchronize-user-adjustments.patch > hugetlb-create-remove_hugetlb_page-to-separate-functionality.patch > hugetlb-call-update_and_free_page-without-hugetlb_lock.patch > hugetlb-change-free_pool_huge_page-to-remove_pool_huge_page.patch > hugetlb-make-free_huge_page-irq-safe.patch > hugetlb-make-free_huge_page-irq-safe-fix.patch > hugetlb-add-lockdep_assert_held-calls-for-hugetlb_lock.patch > > Along with notes-to-self that this: > > https://lkml.kernel.org/r/YGwnPCPaq1xKh/88@hirez.programming.kicks-ass.net > > might need attention and that this: > > hugetlb-make-free_huge_page-irq-safe.patch > > might need updating. > Thank you Andrew! I will send a v5 shortly based on dropping the above patch.