From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751780AbdIUJiP (ORCPT ); Thu, 21 Sep 2017 05:38:15 -0400 Received: from mail-pf0-f178.google.com ([209.85.192.178]:44853 "EHLO mail-pf0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751550AbdIUJiN (ORCPT ); Thu, 21 Sep 2017 05:38:13 -0400 X-Google-Smtp-Source: AOwi7QBsTWS8y8UGOiF0O8i/NmBv8US/o5uqzCJMM0OSbaycrA1McOsW0mCFt/KyDEQWB+2V2/ceog== Date: Thu, 21 Sep 2017 18:38:08 +0900 From: Sergey Senozhatsky To: Sergey Senozhatsky Cc: Tony Luck , Fenghua Yu , Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , James Bottomley , Helge Deller , Petr Mladek , Steven Rostedt , Andrew Morton , Jessica Yu , Alexei Starovoitov , linux-ia64@vger.kernel.org, linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: Re: [RFC][PATCH v2 6/7] symbol lookup: use new kernel and module dereference functions Message-ID: <20170921093808.GE773@jagdpanzerIV.localdomain> References: <20170920162910.32053-1-sergey.senozhatsky@gmail.com> <20170920162910.32053-7-sergey.senozhatsky@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170920162910.32053-7-sergey.senozhatsky@gmail.com> User-Agent: Mutt/1.9.0 (2017-09-02) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On (09/21/17 01:29), Sergey Senozhatsky wrote: [..] > + %pS versatile_init+0x0/0x110 > + %ps versatile_init > %pF versatile_init+0x0/0x110 > %pf versatile_init > - %pS versatile_init+0x0/0x110 > %pSR versatile_init+0x9/0x110 > (with __builtin_extract_return_addr() translation) > - %ps versatile_init > %pB prev_fn_of_versatile_init+0x88/0x88 > > -The ``F`` and ``f`` specifiers are for printing function pointers, > -for example, f->func, &gettimeofday. They have the same result as > -``S`` and ``s`` specifiers. But they do an extra conversion on > -ia64, ppc64 and parisc64 architectures where the function pointers > -are actually function descriptors. > - > The ``S`` and ``s`` specifiers can be used for printing symbols > from direct addresses, for example, __builtin_return_address(0), > (void *)regs->ip. They result in the symbol name with (``S``) or > without (``s``) offsets. If KALLSYMS are disabled then the symbol > address is printed instead. > > +Note, that the ``F`` and ``f`` specifiers are identical to ``S`` (``s``) > +and thus deprecated. JFI, I have updated this part. it's probably too early to completely wipe out pF/pf info. the updated Doc goes like this: +Note, that the ``F`` and ``f`` specifiers are identical to ``S`` (``s``) +and thus deprecated. We have ``F`` and ``f`` because on ia64, ppc64 and +parisc64 function pointers are indirect and, in fact, are function +descriptors, which require additional dereferencing before we can lookup +the symbol. As of now, ``S`` and ``s`` perform dereferencing on those +platforms (when needed), so ``F`` and ``f`` exist for compatibility +reasons only. -ss