Thread (13 messages) 13 messages, 6 authors, 2011-09-23

Re: [PATCH 3/3] seq_file: convert seq buffer to vmalloc

From: Peter Zijlstra <peterz@infradead.org>
Date: 2011-09-22 21:20:25
Also in: lkml

On Thu, 2011-09-22 at 14:07 -0700, Joe Perches wrote:
On Thu, 2011-09-22 at 13:57 -0700, Colin Cross wrote:
quoted
seq_files are often used for debugging.  When things are going wrong
due to failed physically contiguous allocations, the exponentially
growing physically contiguous allocations in seq_read can make things
worse.  There is no need for physically contiguous memory, so switch
to virtually contiguous memory instead.
vmalloc's are relatively expensive.
And very limited on certain archs..
Perhaps use kmalloc when appropriate instead?

[]
quoted
-	/* don't ask for more than the kmalloc() max size */
-	if (size > KMALLOC_MAX_SIZE)
-		size = KMALLOC_MAX_SIZE;
-
-	buf = kmalloc(size, GFP_KERNEL);
+	buf = vmalloc(size);
 	if (!buf)
 		return -ENOMEM;
	if (size > KMALLOC_MAX_SIZE)
		buf = vmalloc(size, GFP_KERNEL)
	else
		buf = kmalloc(size, GFP_KERNEL)
There's wrappers for this stuff IIRC, that said all this is a horrible
idea. Just avoid the situation instead of coping with it.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help