From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 24CEAC433E4 for ; Mon, 20 Jul 2020 21:09:54 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D45A7207DF for ; Mon, 20 Jul 2020 21:09:53 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="DzSlEaSt"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="lnGWNFYS" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D45A7207DF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=yfOYmgtwPnW81FQ+ETOXD4saf4OVM1RKNic3twjP2E4=; b=DzSlEaStq/D0KJM/P4l6ENRFo looA3yGt2gOOCZyJMwWrszTcWjLUiA1ZUfi6WAjOqwgrNiaDh4MQkVCz57mbQyIjuemEGDVk+76Li o9IJSdH8t6OLH3Ak7XCJsfzmpG+W2MJbwD8iGwlJjYA0aZ2KkW0ZslOmo2dC7TTDw3UDi3BKA/w/N h3DcVlTccuGlmwd4kbN7ubWJT0YgUDp7bybPzyZrCkaK1rOa3uam78tLM7GTPPr8iMvB25zitJYys Fy5CCStL+MNr8p57UqT+RXdTj1kolren2eBIo+BwofM/IwS05wyIYmxKea4M3ne3ps/QnTqhsioE7 jJQKAoW9g==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jxd0r-0007LB-RD; Mon, 20 Jul 2020 21:07:53 +0000 Received: from mail-ej1-x641.google.com ([2a00:1450:4864:20::641]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jxd0o-0007G0-1O for linux-arm-kernel@lists.infradead.org; Mon, 20 Jul 2020 21:07:51 +0000 Received: by mail-ej1-x641.google.com with SMTP id ga4so19487968ejb.11 for ; Mon, 20 Jul 2020 14:07:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=2tMCXjYsWrGo5zwdCjpaAbv6qKlF96rKNHphmrpOWUc=; b=lnGWNFYSSaEU6vR7eIOSnqWzKSuaO3wzkEUj/OspCfuupiEk5othtP/zhmP3zKOxHb rr/UFcYev2n2qMJiw9Ww/1tZafdC2rPdechTxqea42oZkrbSmZ/4Vwz2YTCXjOBJeG6x n+BnOyZjfINQLwB6TigvlceyRI+2VJf5NHqNprx0bdqALDa9UFpyeTrUhISlTcZuMV09 SLK9mONJzX5LD5XVE8speJFHS2Eaxk7BfVKz5oCxLZEsExPZ3RLwvpAX4c+0WapgqUGb XCpQdegLWmZwB4i+X6NjYse621RpyPBHkzxnkYOsl7FvR+H1lSINlVUiWbB09xlnwguM TOkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=2tMCXjYsWrGo5zwdCjpaAbv6qKlF96rKNHphmrpOWUc=; b=HeW5VumJ6duRUuhPbHtT8ghOIaxC0MkrTeS1GQ/XUSCkB/eh9kXveZdiUP/3kkU5ms AGu6iOMbWeEn24neLu78l3jCJ+GgEMt82PIw3+uQla3BBYbTnr+zIpE/ApO5DUP7mYao SuGJE8L9Oc41n3yNTIU1Mb2v2CzbRgCf8o3YuVZ3sZ89eaYkWeCfj0e6QkDHMQ0mecRf 6Z4ilM6QG/xa6p7kWpJ8SEoEEQtCqwGEEfW01pUWwcKrWJCWCe2wYSF3FI37INBwgL6q 1eh0OUNG89Z6Ba1jk1UwRs7TkhFsbAyUblebGzDwGppVdroaBJF0VyuiV5D/0qnsvSsJ aeOA== X-Gm-Message-State: AOAM531LH74D+w99qNBSg+JAKOxDStjG4lMfopGvyedMYuFtfpkKLHGE uXv4c1Hfih2tVsNlhGQZLX672YRLZdgnH2BmD/bpVA== X-Google-Smtp-Source: ABdhPJyXTcNIvjGRztgF77NBmMTmXU8trd+xaE71KkBq50WLXpV0mXjSAr0GtkzabUFwb0q6UbLJDpQJC9GgIQs6oiA= X-Received: by 2002:a17:906:c0da:: with SMTP id bn26mr23269806ejb.359.1595279268409; Mon, 20 Jul 2020 14:07:48 -0700 (PDT) MIME-Version: 1.0 References: <20200717054536.7052-1-tingwei@codeaurora.org> <20200717054536.7052-17-tingwei@codeaurora.org> In-Reply-To: From: Mike Leach Date: Mon, 20 Jul 2020 22:07:37 +0100 Message-ID: Subject: Re: [PATCH v3 16/20] coresight: allow cti to be built as a module To: Tingwei Zhang X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200720_170750_393410_4E729475 X-CRM114-Status: GOOD ( 35.08 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: tsoni@codeaurora.org, Sai Prakash Ranjan , Kim Phillips , Mathieu Poirier , Suzuki K Poulose , Alexander Shishkin , Greg Kroah-Hartman , Coresight ML , Mao Jinlong , Mian Yousaf Kaukab , Russell King , Randy Dunlap , Leo Yan , linux-arm-kernel Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi, I've further looked into this - there is a bug in the CTI driver cleanup that is unrelated to the module work. I will issue a patch to fix. Regards Mike On Mon, 20 Jul 2020 at 18:00, Mike Leach wrote: > > Hi, > > Once again testing on DB410c. > > The following sequence:- > > root@linaro-developer:/home/linaro/cs-mods# insmod coresight.ko > root@linaro-developer:/home/linaro/cs-mods# insmod coresight-etm4x.ko > root@linaro-developer:/home/linaro/cs-mods# insmod coresight-cti.ko > root@linaro-developer:/home/linaro/cs-mods# rmmod coresight-cti.ko > > results in:- > > This in my command console:- > > Message from syslogd@linaro-developer at Jul 20 16:51:40 ... > kernel:[ 188.838141] Internal error: Oops: 96000004 [#1] SMP > Segmentation fault > root@linaro-developer:/home/linaro/cs-mods# > Message from syslogd@linaro-developer at Jul 20 16:51:40 ... > kernel:[ 189.063920] Code: aa0203f6 aa0103f7 aa1e03e0 d503201f (7940e260) > > AND this in the boot console:- > > root@linaro-developer:~# [ 188.804340] Unable to handle kernel paging > request at virtual address 97e3327491382070 > [ 188.804370] Mem abort info: > [ 188.811217] ESR = 0x96000004 > [ 188.813832] EC = 0x25: DABT (current EL), IL = 32 bits > [ 188.817009] SET = 0, FnV = 0 > [ 188.822448] EA = 0, S1PTW = 0 > [ 188.825284] Data abort info: > [ 188.828346] ISV = 0, ISS = 0x00000004 > [ 188.831471] CM = 0, WnR = 0 > [ 188.835029] [97e3327491382070] address between user and kernel address ranges > [ 188.838141] Internal error: Oops: 96000004 [#1] SMP > [ 188.845252] Modules linked in: coresight_cti(-) coresight_etm4x coresight > [ 188.849947] CPU: 2 PID: 4233 Comm: rmmod Not tainted > 5.8.0-rc5cs-modscs-mods-00021-gcac254d1f7cc-dirty #284 > [ 188.856890] Hardware name: Qualcomm Technologies, Inc. APQ 8016 SBC (DT) > [ 188.866439] pstate: 60000005 (nZCv daif -PAN -UAO BTYPE=--) > [ 188.873387] pc : kernfs_find_ns+0x28/0x120 > [ 188.878673] lr : kernfs_find_and_get_ns+0x44/0x68 > [ 188.882838] sp : ffff000034e77b00 > [ 188.887611] x29: ffff000034e77b00 x28: ffff000034d50d80 > [ 188.890912] x27: 0000000000000000 x26: 0000000000000000 > [ 188.896294] x25: 0000000000000000 x24: ffff0000382aa898 > [ 188.901589] x23: ffff800008d84938 x22: 0000000000000000 > [ 188.906883] x21: ffff800008d84938 x20: 97e3327491382000 > [ 188.912179] x19: 97e3327491382000 x18: ffffffffffffffff > [ 188.917473] x17: 0000000000000000 x16: 0000000000000000 > [ 188.922770] x15: ffff800011609948 x14: 0000000000000040 > [ 188.928064] x13: 0000000000000228 x12: 0000000000000008 > [ 188.933360] x11: 0101010101010101 x10: 7f7f7f7f7f7f7f7f > [ 188.938654] x9 : 0000001d9cd9e3a6 x8 : 0000b790773d66d4 > [ 188.943950] x7 : 0000000000000002 x6 : ffff0000382a8ed4 > [ 188.949244] x5 : 0000000000000000 x4 : ffff0000382a8ed4 > [ 188.954540] x3 : 0000000000000000 x2 : 0000000000000000 > [ 188.959836] x1 : ffff800008d84938 x0 : ffff8000103609fc > [ 188.965131] Call trace: > [ 188.970428] kernfs_find_ns+0x28/0x120 > [ 188.972596] kernfs_find_and_get_ns+0x44/0x68 > [ 188.976419] sysfs_remove_link_from_group+0x34/0x60 > [ 188.980857] coresight_remove_sysfs_link+0x4c/0x88 [coresight] > [ 188.985541] cti_device_release+0x7c/0x170 [coresight_cti] > [ 188.991435] device_release+0x34/0x90 > [ 188.996905] kobject_put+0x70/0x200 > [ 189.000634] device_unregister+0x30/0x78 > [ 189.003942] coresight_unregister+0x60/0x70 [coresight] > [ 189.008107] cti_remove+0x14/0x20 [coresight_cti] > [ 189.013050] amba_remove+0x34/0x1a0 > [ 189.017910] device_release_driver_internal+0x100/0x1b8 > [ 189.021210] driver_detach+0xa8/0x178 > [ 189.026417] bus_remove_driver+0x64/0x100 > [ 189.030237] driver_unregister+0x34/0x60 > [ 189.034228] amba_driver_unregister+0x20/0x30 > [ 189.038228] cti_exit+0x1c/0xd60 [coresight_cti] > [ 189.042478] __arm64_sys_delete_module+0x1c0/0x280 > [ 189.047167] el0_svc_common.constprop.3+0xc8/0x170 > [ 189.051765] do_el0_svc+0x34/0xc0 > [ 189.056538] el0_sync_handler+0x144/0x1c0 > [ 189.059923] el0_sync+0x140/0x180 > [ 189.063920] Code: aa0203f6 aa0103f7 aa1e03e0 d503201f (7940e260) > [ 189.067218] ---[ end trace 05494e5d41cb7242 ]--- > > Message from syslogd@linaro-developer at Jul 20 16:51:40 ... > kernel:[ 188.838141] Internal error: Oops: 96000004 [#1] SMP > > Message from syslogd@linaro-developer at Jul 20 16:51:40 ... > kernel:[ 189.063920] Code: aa0203f6 aa0103f7 aa1e03e0 d503201f (7940e260) > > Looks to be in the code that maintains the sysfs connections between > the devices. I haven't looked deeper than that. > > Regards > > Mike > > On Fri, 17 Jul 2020 at 06:49, Tingwei Zhang wrote: > > > > Allow to build coresight-cti as a module, for ease of development. > > > > - Kconfig becomes a tristate, to allow =m > > - append -core to source file name to allow module to > > be called coresight-cti by the Makefile > > - add an cti_remove function, for module unload > > - add a MODULE_DEVICE_TABLE for autoloading on boot > > > > Signed-off-by: Tingwei Zhang > > --- > > drivers/hwtracing/coresight/Kconfig | 5 ++++- > > drivers/hwtracing/coresight/Makefile | 4 ++-- > > .../{coresight-cti.c => coresight-cti-core.c} | 14 ++++++++++++++ > > drivers/hwtracing/coresight/coresight-platform.c | 1 + > > drivers/hwtracing/coresight/coresight.c | 1 + > > 5 files changed, 22 insertions(+), 3 deletions(-) > > rename drivers/hwtracing/coresight/{coresight-cti.c => coresight-cti-core.c} (98%) > > > > diff --git a/drivers/hwtracing/coresight/Kconfig b/drivers/hwtracing/coresight/Kconfig > > index f31778dd0b5d..b04aae2ceecc 100644 > > --- a/drivers/hwtracing/coresight/Kconfig > > +++ b/drivers/hwtracing/coresight/Kconfig > > @@ -136,7 +136,7 @@ config CORESIGHT_CPU_DEBUG > > module will be called coresight-cpu-debug. > > > > config CORESIGHT_CTI > > - bool "CoreSight Cross Trigger Interface (CTI) driver" > > + tristate "CoreSight Cross Trigger Interface (CTI) driver" > > depends on ARM || ARM64 > > help > > This driver provides support for CoreSight CTI and CTM components. > > @@ -147,6 +147,9 @@ config CORESIGHT_CTI > > halt compared to disabling sources and sinks normally in driver > > software. > > > > + To compile this driver as a module, choose M here: the > > + module will be called coresight-cti. > > + > > config CORESIGHT_CTI_INTEGRATION_REGS > > bool "Access CTI CoreSight Integration Registers" > > depends on CORESIGHT_CTI > > diff --git a/drivers/hwtracing/coresight/Makefile b/drivers/hwtracing/coresight/Makefile > > index f2a568b969c4..0359d5a1588f 100644 > > --- a/drivers/hwtracing/coresight/Makefile > > +++ b/drivers/hwtracing/coresight/Makefile > > @@ -19,6 +19,6 @@ coresight-etm4x-y := coresight-etm4x-core.o coresight-etm4x-sysfs.o > > obj-$(CONFIG_CORESIGHT_STM) += coresight-stm.o > > obj-$(CONFIG_CORESIGHT_CPU_DEBUG) += coresight-cpu-debug.o > > obj-$(CONFIG_CORESIGHT_CATU) += coresight-catu.o > > -obj-$(CONFIG_CORESIGHT_CTI) += coresight-cti.o \ > > - coresight-cti-platform.o \ > > +obj-$(CONFIG_CORESIGHT_CTI) += coresight-cti.o > > +coresight-cti-y := coresight-cti-core.o coresight-cti-platform.o \ > > coresight-cti-sysfs.o > > diff --git a/drivers/hwtracing/coresight/coresight-cti.c b/drivers/hwtracing/coresight/coresight-cti-core.c > > similarity index 98% > > rename from drivers/hwtracing/coresight/coresight-cti.c > > rename to drivers/hwtracing/coresight/coresight-cti-core.c > > index 289b356a64a5..0f8fbe41363a 100644 > > --- a/drivers/hwtracing/coresight/coresight-cti.c > > +++ b/drivers/hwtracing/coresight/coresight-cti-core.c > > @@ -817,6 +817,14 @@ static void cti_device_release(struct device *dev) > > if (drvdata->csdev_release) > > drvdata->csdev_release(dev); > > } > > +static int __exit cti_remove(struct amba_device *adev) > > +{ > > + struct cti_drvdata *drvdata = dev_get_drvdata(&adev->dev); > > + > > + coresight_unregister(drvdata->csdev); > > + > > + return 0; > > +} > > > > static int cti_probe(struct amba_device *adev, const struct amba_id *id) > > { > > @@ -957,6 +965,7 @@ static const struct amba_id cti_ids[] = { > > CS_AMBA_UCI_ID(0x000bb9ed, uci_id_cti), /* Coresight CTI (SoC 600) */ > > { 0, 0}, > > }; > > +MODULE_DEVICE_TABLE(amba, cti_ids); > > > > static struct amba_driver cti_driver = { > > .drv = { > > @@ -965,6 +974,7 @@ static struct amba_driver cti_driver = { > > .suppress_bind_attrs = true, > > }, > > .probe = cti_probe, > > + .remove = cti_remove, > > .id_table = cti_ids, > > }; > > > > @@ -987,3 +997,7 @@ static void __exit cti_exit(void) > > > > module_init(cti_init); > > module_exit(cti_exit); > > + > > +MODULE_AUTHOR("Mike Leach "); > > +MODULE_DESCRIPTION("Arm CoreSight CTI Driver"); > > +MODULE_LICENSE("GPL v2"); > > diff --git a/drivers/hwtracing/coresight/coresight-platform.c b/drivers/hwtracing/coresight/coresight-platform.c > > index e4912abda3aa..70477a256be3 100644 > > --- a/drivers/hwtracing/coresight/coresight-platform.c > > +++ b/drivers/hwtracing/coresight/coresight-platform.c > > @@ -76,6 +76,7 @@ coresight_find_csdev_by_fwnode(struct fwnode_handle *r_fwnode) > > } > > return csdev; > > } > > +EXPORT_SYMBOL_GPL(coresight_find_csdev_by_fwnode); > > > > #ifdef CONFIG_OF > > static inline bool of_coresight_legacy_ep_is_input(struct device_node *ep) > > diff --git a/drivers/hwtracing/coresight/coresight.c b/drivers/hwtracing/coresight/coresight.c > > index b814ca54acc9..55b699aca9ec 100644 > > --- a/drivers/hwtracing/coresight/coresight.c > > +++ b/drivers/hwtracing/coresight/coresight.c > > @@ -273,6 +273,7 @@ void coresight_set_assoc_ectdev_mutex(struct coresight_device *csdev, > > csdev->ect_dev = ect_csdev; > > mutex_unlock(&coresight_mutex); > > } > > +EXPORT_SYMBOL_GPL(coresight_set_assoc_ectdev_mutex); > > > > static int coresight_enable_sink(struct coresight_device *csdev, > > u32 mode, void *data) > > -- > > The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, > > a Linux Foundation Collaborative Project > > > > > > _______________________________________________ > > linux-arm-kernel mailing list > > linux-arm-kernel@lists.infradead.org > > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > > > > -- > Mike Leach > Principal Engineer, ARM Ltd. > Manchester Design Centre. UK -- Mike Leach Principal Engineer, ARM Ltd. Manchester Design Centre. UK _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel