Messages in this thread | | | Subject | Re: [PATCH v6 02/11] mm/gup: Use functions to track lockless pgtbl walks on gup_pgd_range | From | Leonardo Bras <> | Date | Mon, 17 Feb 2020 17:55:49 -0300 |
| |
Hello John, comments inline;
On Fri, 2020-02-07 at 14:54 -0800, John Hubbard wrote: > On 2/5/20 7:25 PM, Leonardo Bras wrote: > > On Thu, 2020-02-06 at 00:08 -0300, Leonardo Bras wrote: > > > gup_pgd_range(addr, end, gup_flags, pages, &nr); > > > - local_irq_enable(); > > > + end_lockless_pgtbl_walk(IRQS_ENABLED); > > > ret = nr; > > > } > > > > > > > Just noticed IRQS_ENABLED is not available on other archs than ppc64. > > I will fix this for v7. > > > > What's the fix going to look like, approximately?
I am not sure what is the best approach yet.
1. On irq_mask == 0, always enable irq on end_lockless_pgtbl_walk(). Not sure how bat would that affect other archs.
2. Add another function like end_lockless_pgtbl_walk_irqen() that always enables IRQ.
3. Add another parameter in end_lockless_pgtbl_walk(), so that caller can choose ii IRQ must be enabled.
Also, not sure if internal_get_user_pages_fast() can possibly be called with IRQ disabled, and then return with it enabled. Maybe just saving/restoring should be fine.
Other suggestions are welcome.
> > > thanks,
Best regards,
Leonardo Bras [unhandled content-type:application/pgp-signature] | |