Messages in this thread | | | Subject | Re: [PATCHv3 01/50] kallsyms/printk: Add loglvl to print_ip_sym() | From | Dmitry Safonov <> | Date | Mon, 20 Apr 2020 18:25:32 +0100 |
| |
Hi Joe,
On 4/18/20 9:40 PM, Joe Perches wrote: > On Sat, 2020-04-18 at 21:18 +0100, Dmitry Safonov wrote: >> print_ip_sym() needs to have a log level parameter to comply with other >> parts being printed. Otherwise, half of the expected backtrace would be >> printed and other may be missing with some logging level. > > I'd rather create another extension to %ps that also emits > the [<address>] along with the symbol lookup and retire > print_ip_sym altogether.
Makes sense. Would you mind if I'll do it on the top of these patches? [not to mix new printk-format with patches those add loglvl parameter]
> > Something like: > --- > lib/vsprintf.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/lib/vsprintf.c b/lib/vsprintf.c > index 7c488a..8fce8f 100644 > --- a/lib/vsprintf.c > +++ b/lib/vsprintf.c > @@ -2072,6 +2072,8 @@ char *fwnode_string(char *buf, char *end, struct fwnode_handle *fwnode, > * - 'S' For symbolic direct pointers (or function descriptors) with offset > * - 's' For symbolic direct pointers (or function descriptors) without offset > * - '[Ss]R' as above with __builtin_extract_return_addr() translation > + * - '[Ss]B' [<address>] and symbolic direct pointers as above > + * (was used previously used as print_ip_sym) > * - '[Ff]' %pf and %pF were obsoleted and later removed in favor of > * %ps and %pS. Be careful when re-using these specifiers. > * - 'B' For backtraced symbolic direct pointers with offset > @@ -2183,6 +2185,8 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr, > case 'S': > case 's': > ptr = dereference_symbol_descriptor(ptr); > + if (fmt[1] == 'B') > + buf += vsprintf(buf, end, "[<%px>] ", ptr); > /* Fallthrough */ > case 'B': > return symbol_string(buf, end, ptr, spec, fmt); > >
Thanks, Dmitry
| |