Re: [PATCH 2/4] char: xillybus: replace __get_free_pages() with kmalloc()
David Laight <[email protected]>
| Newsgroups | gmane.linux.ports.ppc.embedded,gmane.linux.ports.arm.kernel,gmane.linux.kernel,gmane.linux.kernel.mm |
|---|---|
| Message-ID | <20260901093735.3f5b2df2@pumpkin> |
On Tue, 1 Sep 2026 10:59:16 +0300 Mike Rapoport <[email protected]> wrote: > On Mon, Aug 31, 2026 at 12:39:37PM +0100, David Laight wrote: > > On Mon, 31 Aug 2026 12:13:08 +0200 > > Eli Billauer <[email protected]> wrote: > > > > > On 30/08/2026 9:47, Mike Rapoport (Microsoft) wrote: > > > > fifo_init() allocates the buffers backing the software FIFO and > > > > endpoint_alloc() allocates the transfer buffers of a USB endpoint. > > > > > > > > These buffers can be allocated with kmalloc() as there's nothing special > > > > about them to go directly to the page allocator. > > > > > > Except that they are a bit large. > > > > > > fifo_init() may be requested to allocate up to 256 MB of buffer memory. > > > This memory resource is split into an array of buffers (fifo->mem[i]), > > > each 64 kiB (or less, if there's trouble obtaining segments of this size). > > > > Would it really make sense to allocate the four buffers separately? > > And/or use vmalloc(). > > My understanding is that the buffers don't need to be physically > contiguous and vmalloc()ing the entire fifo->mem in one go should work. What is the minimum size? Remember PAGE_SIZE can be 64k. David > > Eli, what do you think? > > > David >