On Wed, Feb 16, 2022 at 9:04 PM Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > > [ Added David Hildenbrand to the participants. David, see > > https://bugzilla.kernel.org/show_bug.cgi?id=215616 > > for details ] > > On Wed, Feb 16, 2022 at 8:59 AM Oded Gabbay <oded.gabbay@xxxxxxxxx> wrote: > > > > All the details are in the bug, but the bottom line is that somehow, > > this patch causes corruption when the numa balancing feature is > > enabled AND we don't use process affinity AND we use GUP to pin pages > > so our accelerator can DMA to/from system memory. > > Hmm. I thought all the remaining issues were related to THP - and > David Hildenbrand had a series to fix those up. > > The fact that it also shows up with numa balancing is a bit > unfortunate, because I think that means that that patch series may not > have caught that case. > > That said - what does "we use GUP to pin pages" mean? Does it actually > use the pinning logic, or just regular old GUP? > > I'm assuming this is just the existing pin_user_pages_fast() (ie a > proper pin) in drivers/misc/habanalabs/common/memory.c. But I wanted > to confirm that it's not some other situation. > > Linus > [Adding dave hansen as we chatted about it in irc] It uses the pinning logic, simply calling pin_user_pages_fast with the relevant gup flags to pin the userspace memory so we can after that dma map it and give the bus address to the h/w. And afaik, the gup flags combination we use (FOLL_FORCE | FOLL_WRITE | FOLL_LONGTERM) is the correct combination, at least according to the last time it was discussed with Daniel, Jason and other people. Oded