Messages in this thread | | | Date | Thu, 3 Dec 2020 15:36:07 -0400 | From | Jason Gunthorpe <> | Subject | Re: [PATCH 6/6] mm/gup: migrate pinned pages out of movable zone |
| |
On Thu, Dec 03, 2020 at 02:15:36PM -0500, Pavel Tatashin wrote:
> I studied some more, and I think this is not a race: > list_add_tail(&head->lru, &cma_page_list) is called only when > isolate_lru_page(head) succeeds. > isolate_lru_page(head) succeeds only when PageLRU(head) is true. > However, in this function we also clear LRU flag before returning > success. > This means, that if we race with another thread, the other thread > won't get to unprotected list_add_tail(&head->lru, &cma_page_list) > until head is is back on LRU list.
Oh interesting, I totally didn't see how that LRU stuff is working. So.. this creates a ridiculously expensive spin lock? Not broken, but yikes :|
Jason
| |