On Fri, Dec 18, 2020 at 05:16:56PM -0800, John Stultz wrote: > On Fri, Dec 18, 2020 at 6:36 AM Daniel Vetter <daniel@xxxxxxxx> wrote: > > On Thu, Dec 17, 2020 at 11:06:11PM +0000, John Stultz wrote: > > > Reuse/abuse the pagepool code from the network code to speed > > > up allocation performance. > > > > > > This is similar to the ION pagepool usage, but tries to > > > utilize generic code instead of a custom implementation. > > > > We also have one of these in ttm. I think we should have at most one of > > these for the gpu ecosystem overall, maybe as a helper that can be plugged > > into all the places. > > > > Or I'm kinda missing something, which could be since I only glanced at > > yours for a bit. But it's also called page pool for buffer allocations, > > and I don't think there's that many ways to implement that really :-) > > Yea, when I was looking around the ttm one didn't seem quite as > generic as the networking one, which more easily fit in here. Oops, I didn't look that closely and didn't realize you're reusing the one from net/core/. > The main benefit for the system heap is not so much the pool itself > (the normal page allocator is pretty good), as it being able to defer > the free and zero the pages in a background thread, so the pool is > effectively filled with pre-zeroed pages. > > But I'll take another look at the ttm implementation and see if it can > be re-used or the shared code refactored and pulled out somehow. I think moving the page_pool from net into lib and using it in ttm might also be an option. Lack of shrinker in the networking one might be a bit a problem. Also I guess the real fun will start if you pre-flush pages (after zeroing) or use write-combined mode (which tends to be a real pain to allocate). So for those I think we likely need more than just reusing the one net/core has already. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch