Thread (21 messages) flat view 21 messages, 4 authors, 6d ago

Re: [PATCH 2/4] char: xillybus: replace __get_free_pages() with kmalloc()

From: Mike Rapoport <rppt@kernel.org>
Date: 2026-09-01 07:59:37
Also in: linux-mm, linuxppc-dev, lkml

On Mon, Aug 31, 2026 at 12:39:37PM +0100, David Laight wrote:
On Mon, 31 Aug 2026 12:13:08 +0200
Eli Billauer [off-list ref] wrote:
quoted
On 30/08/2026 9:47, Mike Rapoport (Microsoft) wrote:
quoted
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.

Eli, what do you think?
 
David
-- 
Sincerely yours,
Mike.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help