Thread (5 messages) read the whole thread 5 messages, 3 authors, 2021-06-22

Re: [PATCH v3] media: uvc: don't do DMA on stack

From: 'Alan Stern' <stern@rowland.harvard.edu>
Date: 2021-06-22 19:58:40
Also in: linux-media, lkml, stable

On Tue, Jun 22, 2021 at 02:21:27PM +0000, David Laight wrote:
From: Alan Stern
quoted
Sent: 22 June 2021 14:29
...
quoted
quoted
Thought...

Is kmalloc(1, GFP_KERNEL) guaranteed to return a pointer into
a cache line that will not be accessed by any other code?
(This is slightly weaker than requiring a cache-line aligned
pointer - but very similar.)
As I understand it, on architectures that do not have cache-coherent
I/O, kmalloc is guaranteed to return a buffer that is
cacheline-aligned and whose length is a multiple of the cacheline
size.

Now, whether that buffer ends up being accessed by any other code
depends on what your driver does with the pointer it gets from
kmalloc.  :-)
Thanks for the clarification.

Most of the small allocates in the usb stack are for transmits
where it is only necessary to ensure a cache write-back.

I know there has been some confusion because one of the
allocators can add a small header to every allocation.
This can lead to unexpectedly inadequately aligned pointers.
If it is updated when the preceding block is freed (as some
user-space mallocs do) then it would need to be in a
completely separate cache line.
If you really want to find out what the true story is, you should ask 
on the linux-mm mailing list.  The rest of us are not experts on this 
stuff.

Alan Stern
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help