On Fri, Aug 30, 2019 at 10:49:25AM -0700, David Riley wrote: > Hi Gerd, > > On Fri, Aug 30, 2019 at 4:16 AM Gerd Hoffmann <kraxel@xxxxxxxxxx> wrote: > > > > Hi, > > > > > > > - kfree(vbuf->data_buf); > > > > > + kvfree(vbuf->data_buf); > > > > > > > > if (is_vmalloc_addr(vbuf->data_buf)) ... > > > > > > > > needed here I gues? > > > > > > > > > > kvfree() handles vmalloc/kmalloc/kvmalloc internally by doing that check. > > > > Ok. > > > > > - videobuf_vmalloc_to_sg in drivers/media/v4l2-core/videobuf-dma-sg.c, > > > assumes contiguous array of scatterlist and that the buffer being converted > > > is page aligned > > > > Well, vmalloc memory _is_ page aligned. > > True, but this function gets called for all potential enqueuings (eg > resource_create_3d, resource_attach_backing) and I was concerned that > some other usage in the future might not have that guarantee. The vmalloc_to_sg call is wrapped into "if (is_vmalloc())", so this should not be a problem. > > sg_alloc_table_from_pages() does alot of what you need, you just need a > > small loop around vmalloc_to_page() create a struct page array > > beforehand. > > That feels like an extra allocation when under memory pressure and > more work, to not gain much -- there still needs to be a function that > iterates through all the pages. But I don't feel super strongly about > it and can change it if you think that it will be less maintenance > overhead. Lets see how vmalloc_to_sg looks like when it assumes page-aligned memory. It's probably noticeable shorter then. cheers, Gerd _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization