On Fri, May 9, 2025 at 2:58 PM Song Liu <s...@kernel.org> wrote: > > On Fri, May 9, 2025 at 2:43 PM T.J. Mercier <tjmerc...@google.com> wrote: > > > [...] > > > > > > Personally, I would prefer we just merge all the logic of > > > create_udmabuf() and create_sys_heap_dmabuf() > > > into create_test_buffers(). > > > > That's a lot of different stuff to put in one place. How about > > returning file descriptors from the buffer create functions while > > having them clean up after themselves: > > I do like this version better. Some nitpicks though. > > > > > -static int memfd, udmabuf; > > +static int udmabuf; > > About this, and ... > > > static const char udmabuf_test_buffer_name[DMA_BUF_NAME_LEN] = > > "udmabuf_test_buffer_for_iter"; > > static size_t udmabuf_test_buffer_size; > > static int sysheap_dmabuf; > > static const char sysheap_test_buffer_name[DMA_BUF_NAME_LEN] = > > "sysheap_test_buffer_for_iter"; > > static size_t sysheap_test_buffer_size; > > > > -static int create_udmabuf(int map_fd) > > +static int create_udmabuf(void) > > { > > struct udmabuf_create create; > > - int dev_udmabuf; > > - bool f = false; > > + int dev_udmabuf, memfd, udmabuf; > .. here. > > It is not ideal to have a global udmabuf and a local udmabuf. > If we want the global version, let's rename the local one.
Ok let me change up the name of the aliasing variable to local_udmabuf. > [...] > > > > > static int create_test_buffers(int map_fd) > > { > > - int ret; > > + bool f = false; > > + > > + udmabuf = create_udmabuf(); > > + sysheap_dmabuf = create_sys_heap_dmabuf(); > > > > - ret = create_udmabuf(map_fd); > > - if (ret) > > - return ret; > > + if (udmabuf < 0 || sysheap_dmabuf < 0) > > + return -1; > > We also need destroy_test_buffers() on the error path here, > or at the caller. The caller does currently check to decide if it should bother running the tests or not, and calls destroy_test_buffers() if not. > > - return create_sys_heap_dmabuf(map_fd); > > + return bpf_map_update_elem(map_fd, udmabuf_test_buffer_name, > > &f, BPF_ANY) || > > + bpf_map_update_elem(map_fd, sysheap_test_buffer_name, > > &f, BPF_ANY); > > } > > > > static void destroy_test_buffers(void) > > { > > close(udmabuf); > > - close(memfd); > > close(sysheap_dmabuf); > > For the two global fds, let's reset them to -1 right after close(). > > Thanks, > Song Will do, thanks.