Re: [PATCH 1/1] function tracing: fix wrong position computing ofstack_trace

From: Steven Rostedt
Date: Fri Nov 21 2008 - 08:14:32 EST



On Fri, 21 Nov 2008, Liming Wang wrote:

> Impact: make output of stack_trace complete if buffer overflow
>
> When read buffer overflows, the output of stack_trace isn't complete.
>
> When printing records with seq_printf in t_show, if the read buffer
> has overflowed by the current record, then this record won't be printed
> to user space through read buffer, it will just be dropped in this printing.
>
> When next printing, t_start should return the "*pos"th record, which is the one
> dropped by previous printing, but it just returns (m->private + *pos)th record.
>
> Here we use a more sane method to implement seq_operations which can be found
> in kernel code. Thus we needn't initialize m->private.
>
> About testing, it's not easy to overflow read buffer, but we can use
> seq_printf to print more padding bytes in t_show, then it's easy to check
> whether or not records are lost.
>
> This commit has been tested on both condition of overflow and non overflow.
>
> Signed-off-by: Liming Wang <liming.wang@xxxxxxxxxxxxx>

Acked-by: Steven Rostedt <srostedt@xxxxxxxxxx>

-- Steve

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/