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.3 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham 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 55D92C43461 for ; Tue, 8 Sep 2020 09:09:11 +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 B766221741 for ; Tue, 8 Sep 2020 09:09:10 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="TivFRrjD" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B766221741 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com 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:In-Reply-To:MIME-Version:References:Message-ID: Subject:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=3MeLyyk+rXalCa9odzoRssaNso40DeCrRQ5Jozkf3BM=; b=TivFRrjDMU3yXPmsS7jykNYc7 DkgYNT5ZTAsmH2BLKVRag7chF896sJUCsJeu1pU8ZGu7tjwjsdNMsAK4czCPVNhdKj+bBKeOok3hy esRiNmvldn/zpbrphuUMvJqfIlLdX1Te9rPHToN68PH1S6Id33xAkWVLVs90c03vLuaTnoeGGFpEf OIrpiOhpVmdiHcumRGn92yZnUTj2uf/WOweKvf1UTMv9ykKUgiBUtFk06V3FKJXjjbEZLZhWXj1uq UuFXTpYrikdlks6ID1Lwu+AV4/hpGDfa58MRZqBJkfh5GVMxWAFIm2GvJ3ieQ9G3jnGdQCv/M5mao RmBaMCDDw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kFZbW-0005Ml-0b; Tue, 08 Sep 2020 09:07:54 +0000 Received: from foss.arm.com ([217.140.110.172]) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kFZbT-0005LO-4m for linux-arm-kernel@lists.infradead.org; Tue, 08 Sep 2020 09:07:52 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 747901045; Tue, 8 Sep 2020 02:07:49 -0700 (PDT) Received: from e119603-lin.cambridge.arm.com (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 62D583F66E; Tue, 8 Sep 2020 02:07:48 -0700 (PDT) Date: Tue, 8 Sep 2020 10:08:44 +0100 From: Cristian Marussi To: Sudeep Holla Subject: Re: [PATCH v2 0/4] firmware: arm_scmi: Enable building SCMI as module Message-ID: <20200908090844.GA30729@e119603-lin.cambridge.arm.com> References: <20200907195046.56615-1-sudeep.holla@arm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20200907195046.56615-1-sudeep.holla@arm.com> User-Agent: Mutt/1.5.24 (2015-08-30) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200908_050751_296820_5D7731A9 X-CRM114-Status: GOOD ( 19.38 ) 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: Mikhail Golubev , Igor Skalkin , Peter Hilber , linux-arm-kernel@lists.infradead.org, cristian.marussi@arm.com, Anton Yakovlev 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 Sudeep On Mon, Sep 07, 2020 at 08:50:42PM +0100, Sudeep Holla wrote: > Hi, > > Though it was initially developed as module, so some reason(I can't > recollect why apart from some structuring arounf the way bus and > protocols were initialised), it was merged as a built-in only driver. > > Now, there is a need to build this as modules. This is mainly needed > by virtio transport. This also aligns well with GKI modularisation > efforts. > > Regards, > Sudeep > I re-tested this v2 (also regarding some interactions with notifications) and works generally fine for me, both builtin or modularized, BUT I've seen an issue on core module load/unload/load. Basically doing this: (debian-arm64)root@debarm64:~# insmod ./scmi-module.ko (debian-arm64)root@debarm64:~# insmod ./scmi-cpufreq.ko (debian-arm64)root@debarm64:~# rmmod ./scmi-cpufreq.ko (debian-arm64)root@debarm64:~# rmmod ./scmi-module.ko (debian-arm64)root@debarm64:~# lsmod Module Size Used by (debian-arm64)root@debarm64:~# insmod ./scmi-module.ko I've got this: [ 146.982413] mhu 2b1f0000.mhu: Channel in use [ 146.982433] arm-scmi firmware:scmi: failed to request SCMI Tx mailbox [ 146.982472] arm-scmi: probe of firmware:scmi failed with error -16 and SCMI is broken then after reloading. Now this is an issue I've seen already in my ongoing WIP on full SCMI Protocols modularization for custom protocols, and it is related to the fact the the underlying transport init is bound to the SCMI device creation and not the protocol initialization, and we are not destroying and re-creating such devices properly. (things that I'm going to address in that WIP) Given that the solution to this is not so simple as of now, and given that unloading of the core as a whole module does not make so much sense anyway (while it will be needed for single custom protocols modules), couldn't we just make scmi-module a permanent by droppping module_exit() ? Thanks Cristian > v1[1]->v2: > - Added missing smccc functions exports > - Moved scmi_driver_init to subsys_initcall > - Reorder exit function calls > - Renamed protocol_init/exit to register/unregister > - Rebased on [2] > > [1] https://lore.kernel.org/r/20200907112920.34275-1-sudeep.holla@arm.com/ > [2] git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux.git for-next/scmi > (contains system protocol implementation) > > Sudeep Holla (4): > firmware: smccc: export both smccc functions > firmware: arm_scmi: Move scmi bus init and exit calls into the driver > firmware: arm_scmi: Move scmi protocols registration into the driver > firmware: arm_scmi: Enable building as a single module > > drivers/firmware/Kconfig | 2 +- > drivers/firmware/Makefile | 2 +- > drivers/firmware/arm_scmi/Makefile | 4 +++- > drivers/firmware/arm_scmi/bus.c | 6 ++---- > drivers/firmware/arm_scmi/clock.c | 7 +------ > drivers/firmware/arm_scmi/common.h | 24 +++++++++++++++++++++++ > drivers/firmware/arm_scmi/driver.c | 30 ++++++++++++++++++++++++++++- > drivers/firmware/arm_scmi/perf.c | 7 +------ > drivers/firmware/arm_scmi/power.c | 7 +------ > drivers/firmware/arm_scmi/reset.c | 7 +------ > drivers/firmware/arm_scmi/sensors.c | 7 +------ > drivers/firmware/arm_scmi/system.c | 7 +------ > drivers/firmware/smccc/smccc.c | 2 ++ > include/linux/scmi_protocol.h | 2 +- > 14 files changed, 69 insertions(+), 45 deletions(-) > > -- > 2.17.1 > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel