Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp1411190ybi; Wed, 3 Jul 2019 15:26:25 -0700 (PDT) X-Google-Smtp-Source: APXvYqyoiq3vUaVDpSJSdbv82L+8YKokEiDuNA1KCT/qlaotPnmJzn9XajuHPJj/7AYSpIV0Tk8a X-Received: by 2002:a63:7a06:: with SMTP id v6mr39928538pgc.115.1562192785796; Wed, 03 Jul 2019 15:26:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1562192785; cv=none; d=google.com; s=arc-20160816; b=z7DTo7gbgw7WnQTDCHJGsEvFaGY9tvSvSIpft6djxFMiNUMB/RrGJonNh4+yZyQYlr wlMsb8UaR7Ao3O4E7aUg5tP1MzO8stdRxqEhjb9YF1XGSh3SJY0UQpynYeCh2/1mtyd4 4rGpWKj5xafeg/qVyZy7DpLq+uquUbvdTq4Lo6aigj0m2dMUPxh5mcMmjavbeP8T1CGq ZDhb2GWlUpRIgX1sQ61hvkqNen2YNRDs/8W72tm/3K9/4tGC8qKlKFNMGQOI/2C8bPyU MBgs2WckrzGEsaNGPt7nwTgt3mybpYgnHTXAJnPMFGQ/6DuQ9CMzCAMYW1iflSIURG8w ICmw== 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; bh=AMF1uoTlMkX+Pls3mTFK6YLj3hEtQWezkWxmNqd6HjU=; b=VYhfs98ZjxP7IQJv4rnDbtRKTDJpr3J2Qdv79CIwCC05NZD3aoGUT5okZOBWxOJzq7 6TZunijSNYXJM/IXiIqMpLNqYePSbXpOrMiw2H7MLcWuOZj8oKTo1RJBrTzpj0yXHAv2 IJvE6KDnkHb+Ym/IqWizJJGELnzYu6CNuadvktpTjUu6cSHbK8TONrjsO7Eluyms0D6B TcNK88K5YwgaUOxYIrzczDMgSzyJXO7D3XlmtBNLjTgZhcp8tbsqzRm8v7wwzgr3nP/X RALshbB8FiYBlWtiVDkfbkf90OFbteu01YOfc8vrX1zg4kJ/8a2C/VVidcejnI11VomM gJbA== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f13si3260202plj.115.2019.07.03.15.26.10; Wed, 03 Jul 2019 15:26:25 -0700 (PDT) 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727193AbfGCWZg (ORCPT + 99 others); Wed, 3 Jul 2019 18:25:36 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:41549 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726902AbfGCWZg (ORCPT ); Wed, 3 Jul 2019 18:25:36 -0400 Received: by mail-pf1-f194.google.com with SMTP id m30so1933012pff.8; Wed, 03 Jul 2019 15:25:35 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=AMF1uoTlMkX+Pls3mTFK6YLj3hEtQWezkWxmNqd6HjU=; b=qvLRqHdYQFZAWeJFtDXlWL+8Ry7MEIttfsb3mooLfI0hn2Mrh5C4dZ2qen44WCV2IG fOnv9iVFDFr5lsi7QiT0c8VshQc42zSan60++OVO3q9L3+dAYl/pQoq1gQ0OqL+GxRzZ A0kflYMUImSA0QaWVYx4cPvfjKJcury6qYQjlo6uTUPLRzgzbTIe/bRLBnkrAyt3mu+u bxekoe2NdULb62sl5Yx19kZdsDtOQJFHAzfvKTrmieFFjc9g04q9kc01pSctCRGataxs F0LwyGLTyzPwfaV1LuRw475iPOc0rF+KEfMqVh4+RsNChe9fUhc6DthNFVSTvR05qxit 288A== X-Gm-Message-State: APjAAAWus9Xq198Bc3etM5IL+ADDA7xTNzo90SUF9+dmkh296l/Rsax3 kmQxkeqTaD0ktnu8zqMBIvg= X-Received: by 2002:a63:4518:: with SMTP id s24mr40294724pga.123.1562192734914; Wed, 03 Jul 2019 15:25:34 -0700 (PDT) Received: from 42.do-not-panic.com (42.do-not-panic.com. [157.230.128.187]) by smtp.gmail.com with ESMTPSA id f186sm3376178pfb.5.2019.07.03.15.25.32 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Wed, 03 Jul 2019 15:25:32 -0700 (PDT) Received: by 42.do-not-panic.com (Postfix, from userid 1000) id B489E402AC; Wed, 3 Jul 2019 22:25:31 +0000 (UTC) Date: Wed, 3 Jul 2019 22:25:31 +0000 From: Luis Chamberlain To: Greg Kroah-Hartman Cc: Christoph Hellwig , Brendan Higgins , Cristina Moraru , "vegard.nossum@gmail.com" , Valentin Rothberg , Hannes Reinecke , Sam Ravnborg , Michal Marek , "linux-kernel@vger.kernel.org" , Tom Gundersen , Kay Sievers , Rusty Russell , Andrew Morton , backports@vger.kernel.org, Guenter Roeck , "rafael.j.wysocki" , Dmitry Torokhov , Takashi Iwai , Mauro Carvalho Chehab , Johannes Berg , Hauke Mehrtens , Paul Bolle , Paul Gortmaker , Alexey Khoroshilov , Sathya Prakash Veerichetty , "Martin K. Petersen" , Laurence Oberman , Johannes Thumshirn , Tejun Heo , Jej B , Theodore Ts'o , Daniel Jonsson , Andrzej Wasowski Subject: Re: [RFC PATCH 0/5] Add CONFIG symbol as module attribute Message-ID: <20190703222531.GX19023@42.do-not-panic.com> References: <20160825201919.GE3296@wotan.suse.de> <20190627045052.GA7594@lst.de> <20190629084257.GA1227@kroah.com> <20190702205106.GR19023@42.do-not-panic.com> <20190703074048.GH3033@kroah.com> <20190703165020.GV19023@42.do-not-panic.com> <20190703185758.GB14336@kroah.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190703185758.GB14336@kroah.com> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jul 03, 2019 at 08:57:58PM +0200, Greg Kroah-Hartman wrote: > On Wed, Jul 03, 2019 at 04:50:20PM +0000, Luis Chamberlain wrote: > > On Wed, Jul 03, 2019 at 09:40:48AM +0200, Greg Kroah-Hartman wrote: > > > On Tue, Jul 02, 2019 at 08:51:06PM +0000, Luis Chamberlain wrote: > > > > On Sat, Jun 29, 2019 at 10:42:57AM +0200, Greg Kroah-Hartman wrote: > > > > > On Fri, Jun 28, 2019 at 11:40:22AM -0700, Luis Chamberlain wrote: > > > > > > On Wed, Jun 26, 2019 at 9:51 PM Christoph Hellwig wrote: > > > > > > > > > > > > > > On Wed, Jun 26, 2019 at 03:21:08PM -0700, Luis Chamberlain wrote: > > > > > > > > On Tue, Feb 5, 2019 at 2:07 PM Luis Chamberlain wrote: > > > > > > > > > In lieu of no Luke Skywalker, if you will, for a large kconfig revamp > > > > > > > > > on this, I'm inclined to believe *at least* having some kconfig_symb > > > > > > > > > exposed for some modules is better than nothing. Christoph are you > > > > > > > > > totally opposed to this effort until we get a non-reverse engineered > > > > > > > > > effort in place? It just seems like an extraordinary amount of work > > > > > > > > > and I'm not quite sure who's volunteering to do it. > > > > > > > > > > > > > > > > > > Other stakeholders may benefit from at least having some config --> > > > > > > > > > module mapping for now. Not just backports or building slimmer > > > > > > > > > kernels. > > > > > > > > > > > > > > > > Christoph, *poke* > > > > > > > > > > > > > > Yes, I'm still totally opposed to a half-backed hack like this. > > > > > > > > > > > > The solution puts forward a mechanism to add a kconfig_symb where we > > > > > > are 100% certain we have a direct module --> config mapping. > > > > > > > > > > > > This is *currently* determined when the streamline_config.pl finds > > > > > > that an object has only *one* associated config symbol associated. As > > > > > > Cristina noted, of 62 modules on a running system 58 of them ended up > > > > > > getting the kconfig_symb assigned, that is 93.5% of all modules on the > > > > > > system being tested. For the other modules, if they did want this > > > > > > association, we could allow a way for modules to define their own > > > > > > KBUILD_KCONF variable so that this could be considered as well, or > > > > > > they can look at their own kconfig stuff to try to fit the model that > > > > > > does work. To be clear, the heuristics *can* be updated if there is > > > > > > confidence in alternative methods for resolution. But since it is > > > > > > reflective of our current situation, I cannot consider it a hack. > > > > > > > > > > > > This implementation is a reflection of our reality in the kernel, and > > > > > > as has been discussed in this thread, if we want to correct the gaps > > > > > > we need to do a lot of work. And *no one* is working towards these > > > > > > goals. > > > > > > > > > > > > That said, even if you go forward with an intrusive solution like the > > > > > > one you proposed we could still use the same kconfig_symb... > > > > > > > > > > > > So no, I don't see this as a hack. It's a reflection as to our current > > > > > > reality. And I cannot see how the kconfig_symb can lie or be > > > > > > incorrect. So in fact I think that pushing this forward also makes the > > > > > > problem statement clearer for the future of what semantics needs to be > > > > > > addressed, and helps us even annotate the problematic areas of the > > > > > > kernel. > > > > > > > > > > > > What negative aspects do you see with this being merged in practice? > > > > > > > > > > I'm trying to see what the actual problem that you are wanting to solve > > > > > here with this. What exactly is it? > > > > > > > > The problem is that there is no current maping of a module to respective > > > > kconfig symbol. > > > > > > That's because it is not just "one" symbol per module. > > > > This is true. But it is not the case for all modules. In fact it seems > > its true that most modules do have *one* main symbol. > > You mean "one unique symbol from all other modules", right? I mean that in the typical case you have *one* main *parent* symbol defining one device driver for one piece of hardware. > That is much different than just "one" symbol, given that almost > every driver depends on something else being enabled as well (bus type, > platform type, arch, etc.) Yes but that is different than what is trying to be addressed. > And I would argue, that finding that "one" symbol is easy, just parse > the Makefiles. But I would also state that this "one" symbol doesn't > really help you much as those are the "simple" things. It's how to > turn on all of the required symbols to get to that "one" symbol that is > the hard part. Absolutely, but *that* is a different problem! But I am glad you brought that up and acknowledge it. Addressing that problem will take time and folks are working towards it. Addressing that problem will still however not address the problem being addressed here. > And conversely, if you disable that "one" symbol, does that also mean > you can disable the symbols it depended on? If so, how far back? Right.. > And what about functionality? If my usb-storage device is "enabled" in > the build, yet all filesystems are not, or the needed dm module is not, > it is useless. Yes. The localmodconfig approach is to keep enabled as modules *all* currently enabled modules, that covers that. But again, this is a separate problem. The one I am addressing, on behalf of Cristina, is a subspace, dedicated towards *hardware* functionality. > Hardware requires usually more than one real "symbol" in > order to work properly, as you know. Right. This does not mean that this information of parent main symbol is not useful. And having it available on the modules can help with multiple goals, without requiring kernel sources. > And of course, what does this really matter to anyone? If you build > "all modules" and you only load the modules you actually use for your > hardware (based on auto-loading), then your system uses the same amount > of memory as if you disabled all of the modules you did not need. For backports it means you can enable only what you need, or at least show users what modules in a backports release could be upgraded and let you enable / disable them. For other users, people can care about build time. And not everyone has fancy systems to build all modules; and sometimes you may just want to enable a small qemu system and build locally on it, enabling all modules on such systems would just be extremely silly. > Yes, it's faster to build, but is that what you are trying to optimize > for here? Particularly for me, yes. Others have other needs and I have already stated clearly what the gains are. > Anyway, if this is just an acidemic thing, have fun, but I would not be > adding anything else to the module image that is not really going to be > useful to anyone. The academic consensus is kconfig semantics are poo and we need to do slowly start addressing this. I believe that striving towards having one kconfig symbol per hw component can help long term, and in the meantime, this also will help with the 'make localmodconfig' and backport users. > good luck! This is not about luck. If you don't want to address these problems, that's fine, but please provide objective considerations rather than right out rejection without a reasonable basis. Or even better, provide alternative recommendations. The alternative Christoph recommended is hugely instrusive, no one is working on it, and the simple solution proposed in this thread at least gets us a small step forward in helping to enable a few more users, while also postulating if we should strive towards having one main kconfig for each hw component. Since it seems this is already the case, and there are only a few outliers, this effort should help spot outliers and address them to help with our semantics. Luis