On 05/17/2011 01:56 AM, Joe Perches wrote: > On Mon, 2011-05-16 at 16:10 -0700, John Stultz wrote: >> On Mon, 2011-05-16 at 23:54 +0200, Jiri Slaby wrote: >>>> In my attempt to clean up unprotected comm access, I've noticed >>>> most comm access is done for printk output. To simplify correct >>>> locking in these cases, I've introduced a new %ptc format, >>>> which will print the corresponding task's comm. >>>> Example use: >>>> printk("%ptc: unaligned epc - sending SIGBUS.\n", current); >>>> diff --git a/lib/vsprintf.c b/lib/vsprintf.c > [] >>>> +static noinline_for_stack >>> Actually, why noinline? Did your previous version have there some >>> TASK_COMM_LEN buffer or anything on stack which is not there anymore? >> No, I was just following how almost all of the pointer() called >> functions were declared. >> But with two pointers and a long, I add more then ip6_string() has on >> the stack, which uses the same notation. >> But I can drop that bit if there's really no need for it. > > vsprintf can be recursive, I think you should keep it. Why? pointer is marked as noinline. The others in pointer are marked as noinline because they really have buffers on stack. There is no reason to have noinline for task_comm_string though. I guess all tsk, ret and flags will be optimized that way so they will be in registers, not on stack at all. thanks, -- js -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>