Thread (25 messages) flat view 25 messages, 5 authors, 14d ago

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

From: Mike Rapoport <rppt@kernel.org>
Date: 2026-08-31 11:33:07
Also in: linux-arm-kernel, linux-mm, lkml

On Mon, Aug 31, 2026 at 12:13:08PM +0200, Eli Billauer wrote:
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).

Citing Documentation/core-api/memory-allocation.rst:

"The maximal size of a chunk that can be allocated with `kmalloc` is
limited. The actual limit depends on the hardware and the kernel
configuration, but it is a good practice to use `kmalloc` for objects
smaller than page size."
For large sizes kmalloc falls back to page allocator anyway.

And the doc is out of date unfortunately.
 
Regards,
   Eli
-- 
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