Re: [PATCH 1/1] lib, stackdepot: Add helper to print stack entries into buffer.

From: imran . f . khan
Date: Tue Sep 14 2021 - 00:27:09 EST




On 13/9/21 6:51 pm, Vlastimil Babka wrote:
On 9/10/21 16:10, Imran Khan wrote:
To print stack entries into a buffer, users of stackdepot,
first get a list of stack entries using stack_depot_fetch
and then print this list into a buffer using stack_trace_snprint.
Provide a helper in stackdepot for this purpose.
Also change above mentioned users to use this helper.

Signed-off-by: Imran Khan <imran.f.khan@xxxxxxxxxx>
Suggested-by: Vlastimil Babka <vbabka@xxxxxxx>

Acked-by: Vlastimil Babka <vbabka@xxxxxxx>


Thanks for the review.

A comment below:

--- a/lib/stackdepot.c
+++ b/lib/stackdepot.c
@@ -214,6 +214,29 @@ static inline struct stack_record *find_stack(struct stack_record *bucket,
return NULL;
}

[...]

+ */
+int stack_depot_snprint(depot_stack_handle_t handle, char *buf, size_t size,
+ int spaces)
+{
+ unsigned long *entries;
+ unsigned int nr_entries;
+
+ nr_entries = stack_depot_fetch(handle, &entries);
+ return stack_trace_snprint(buf, size, entries, nr_entries, 0);

stack_trace_snprint() has a WARN_ON(!entries).
So maybe we should not call it if nr_entries is 0 (because e.g. handle was
0) as the warnings are not useful in that case.

Agree. I have addressed this feedback in v2 of patch.


Thanks
-- Imran