On Mon, Jan 23, 2023 at 03:07:48PM -0800, John Hubbard wrote: > On 1/23/23 08:11, Jan Kara wrote: > > > For cifs RDMA, do I need to make it pass in FOLL_LONGTERM? And does that need > > > a special cleanup? > > > > FOLL_LONGTERM doesn't need a special cleanup AFAIK. It should be used > > whenever there isn't reasonably bound time after which the page is > > unpinned. So in case CIFS sets up RDMA and then it is up to userspace how > > long the RDMA is going to be running it should be using FOLL_LONGTERM. The > > Yes, we have been pretty consistently deciding that RDMA generally > implies FOLL_LONGTERM. (And furthermore, FOLL_LONGTERM implies > FOLL_PIN--that one is actually enforced by the gup/pup APIs.) That's weird. For storage or file systems, pages are pinnen just as long when using RDMA as when using local DMA, in fact if you do RDMA to really fast remote media vs slow local media (e.g. SSD vs disk) you might pin it shorter when using RDMA. I think FOLL_LONGTERM makes sense for non-ODP user space memory registrations for RDMA, which will last basically forever. It does not really make much sense at all for in-kernel memory registration for RDMA that are very short term.