Received: by 10.223.185.116 with SMTP id b49csp6888301wrg; Wed, 28 Feb 2018 18:09:07 -0800 (PST) X-Google-Smtp-Source: AG47ELs9jKRAV/dRj49tMSKZIWr7FdiaDc2VNXRJuLfWNpeUCrfBopFjtxe37vrU5rLDF3Ie+ym6 X-Received: by 10.99.169.10 with SMTP id u10mr179281pge.163.1519870147546; Wed, 28 Feb 2018 18:09:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519870147; cv=none; d=google.com; s=arc-20160816; b=IXVf5ZQdoNeagak2lyHubD/a6aKE0kmI0MXUyvsUqy2+wOKqfDrht+Wn4681ujK+cY JAgDv3VR2goJOLCz7MJUtt4l82TlIyCm1QRddxhpT+IEP5M90cqarti2w8snijIjWZLo tA86vRuKYmhT3dwj//+4Fd91gwreJH5HI3wAUzK2sABJeqEGoQcKJllFT5sFVTnVmQeI sAsRR8xUSEs6uO0ciawVr57OpCgs1k5BPsENnw3Zeef+K0ZceM4a3skj3xTUGy3o6iNW KHv7yJDaHmx6YtOz59Q3o+9bVKXMDnVt7EAPhAZnEJxbDKjeiE9hHp6naQ1lQnJdFA2X Y/IA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:arc-authentication-results; bh=xNyITEFrbO2Yg4OkNQ8bl5nlBx7KevcoTO0g0w+QvGs=; b=lKlG74kfKg7oOFynDkjN4/EHHxObIcp1J/cw6UWNgSh+L/8YaarFsllTbLOQXSHwsq oHz39yLZ+fX8mcS+eDbM43gUcbdPl8jZH25v3DRZ1x3fABTWiz1VTTUaw20wOYJqreg0 sI0BEmvRX7gWGOmOmpWQXwuPI7gYblUHwGyEExQR2uWnnRhziFXIWwvvT4FIr9OoC6xv W8SYRyTeoIc/Fwe90UvifL1s05A+8DFSHPlcSVrvITxMB4MLdIcGnJfGqTTg9ooUazsk hfJsUDHKJlELcGRLjxariJFrE779moyRkQDiUo3SXUmoHg+LZt5N3AfxEkBc3Tis4Cig Oebg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y11-v6si939344plg.498.2018.02.28.18.08.52; Wed, 28 Feb 2018 18:09:07 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935727AbeCACIO (ORCPT + 99 others); Wed, 28 Feb 2018 21:08:14 -0500 Received: from exmail.andestech.com ([59.124.169.137]:65513 "EHLO ATCSQR.andestech.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932134AbeCACIN (ORCPT ); Wed, 28 Feb 2018 21:08:13 -0500 Received: from mail.andestech.com (atcpcs16.andestech.com [10.0.1.222]) by ATCSQR.andestech.com with ESMTP id w2125Nao048859; Thu, 1 Mar 2018 10:05:23 +0800 (GMT-8) (envelope-from alankao@andestech.com) Received: from andestech.com (10.0.1.85) by ATCPCS16.andestech.com (10.0.1.222) with Microsoft SMTP Server id 14.3.123.3; Thu, 1 Mar 2018 10:07:52 +0800 Date: Thu, 1 Mar 2018 10:05:08 +0800 From: Alan Kao To: Steven Rostedt CC: Palmer Dabbelt , Albert Ou , "sw-dev@groups.riscv.org" , "linux-kernel@vger.kernel.org" , "Greentime Ying-Han =?utf-8?B?SHUo6IOh6Iux5ryiKQ==?=" , "Zong Zong-Xian =?utf-8?B?TGko5p2O5a6X5oayKQ==?=" Subject: Re: ftrace: Proposal for an Alternative RecordMcount framework Message-ID: <20180301020507.GA24550@andestech.com> References: <20180227100425.GB20904@andestech.com> <20180227161252.25162d81@vmware.local.home> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20180227161252.25162d81@vmware.local.home> User-Agent: Mutt/1.5.24 (2015-08-30) X-Originating-IP: [10.0.1.85] X-DNSRBL: X-MAIL: ATCSQR.andestech.com w2125Nao048859 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Feb 28, 2018 at 05:12:52AM +0800, Steven Rostedt wrote: > On Tue, 27 Feb 2018 18:04:26 +0800 > Alan Kao wrote: > > > 1. During the final linking stages, do "objdump vmlinux.o | grep ..." [2] > > Note, doing it at that stage takes the longest time. It makes small > changes much longer to compile. That said... > What if we can have some option to *disable* all the recordmcount.pl lauches after every .o? There will be only an oneshot grep for a near-complete vmlinux binary. > > 2. Form the output as an ELF objecj > > 3. Link the object to __mcount_loc_start symbol > > 4. Done > > > > With the similar reason as the patch [3], we should mark _mcount to be > > a weak symbol to prevent it from being relaxed later. > > > > We would like to know your opinion and comments on this. > > Thanks! > > What about just having your arch use recordmcount.c instead? It doesn't > do any grepping. It is an elf reader and modifier and modifies the .o > file directly. Thanks for the hint. But after a quick scan, it seems that recordmcount.c processes .o files in a per-file basis, which means that we will still suffer from the linker relaxation problem. > > Note, I will be rewriting that code in the near future too, to > consolidate it with objtool. > > -- Steve Please allow me to state the problem more clearly here. I hope this helps. 1. locations of mcount are recorded in a per-file basis. 2. to optimize the binary, the linker turns on some aggressive options, including relaxation. 3. the optimizations changes the original offset. 4. already recorded mcount call-sites no longer point to their real positions. 5. still a linked vmlinux is made. 6. dynamic ftrace breaks the real logic in the kernel space, panics happen. Thanks, Alan