Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp2666077pxu; Mon, 7 Dec 2020 12:12:43 -0800 (PST) X-Google-Smtp-Source: ABdhPJzaxTJo7dpLWqLNh6Pmke/fKz+gVIAEysJeI3aI0W70o/8oE5WgDsGvqVlCoVsb9YXs2xkX X-Received: by 2002:a17:906:d19b:: with SMTP id c27mr20895173ejz.234.1607371963441; Mon, 07 Dec 2020 12:12:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1607371963; cv=none; d=google.com; s=arc-20160816; b=BaUwKEOVIG5JtYWKGPSeUblDpauOQychwlKlgclU/q/2ti3XaGlKeIdHBwMW2rdqex mhVioeQsbq/FH0Rik0kid5ZzBjjAq9rzjO9EjPjiA0z6eChQROwEQNV0AmBmFzTvm8Is +UvJe3YXFHVhTSV8qbmRDU1i41moBA2YF5FdfAAZTbp8a4OMGhcPd56lhUxr4JvgHN0y vvcWBHsFIF117SKEiqSV6sZXTymQG4tCZ+JcTD5PfZqT8gwmlcdkW3SN0uI8N2mL8h6U uQw6dnA13j4XAIF/AxJ4DIDVbPQM3DW+LcJoEGl6uQoJpCwFRSO2A2y3z69on+z9Cv4p holQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:dkim-signature :date; bh=xUK7+FUNnlt/8QjC6147k1So940p7kqt3mXZxCU3ijo=; b=iIrapqKGuwx1n/RzWWOc1tGbc8TArggpAbfWIzRKfLc0tQiNuKlAr2E4IWDw9Pq6cT tGeoquUeyeP9AlWukeVla2wAtXo9epCq4licYOobq2OU0UwU4z/cG5MZb1/88qkfm4L1 M88OXcesuuQTyaghWSE0BgPZW47GCR+mRRITm+g+swq/ftFTs1ULY0DHEpsZwXgx88Kz K7dNwoRIHVVvne6QrYhS/JTz93DKz8V5X6raf9NPUEJUnSvdPI0NosURGApEXxK505Kl 4alsOQzhZ6oOiuVPV/8UPhtVEjg/RxqWOSepScqhBfqU20cHyaNzZxdoxRpLBOfJWZfY wcng== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=LZW20kQM; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id gs18si2959783ejb.435.2020.12.07.12.12.08; Mon, 07 Dec 2020 12:12:43 -0800 (PST) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=LZW20kQM; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726068AbgLGULL (ORCPT + 99 others); Mon, 7 Dec 2020 15:11:11 -0500 Received: from mail.kernel.org ([198.145.29.99]:39740 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725799AbgLGULL (ORCPT ); Mon, 7 Dec 2020 15:11:11 -0500 Date: Mon, 7 Dec 2020 12:10:29 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1607371830; bh=Nv+nH87OsGzg6a3Q4Ms19OI6MgoxNwsX5/xJwoNrx7Q=; h=From:To:Cc:Subject:In-Reply-To:References:From; b=LZW20kQME7p2pnAAq/VImy4ljRIweW1dZrDtrEBbBBA0NC4VimrGXbaROsIE3ujUm 0zo+lDxuEC8dbig0bVCTwJLU9ClcIyDFDOltOCz72NeexnEBEPwY9Y8Ph0LnCB+Ocn AtFEZGjQnqV9MkokWE5P0bxhDRbwE//W3DU3Tk4lCb0ZgQ8PsSVh9kFfrN7a2gfR6r L2RkMXbPbY41a3jgD17yVz+mIfCkMSGUroHMjegayiqRDOGqaydSd4nbiO5/h9Dz0T vwkqokjlq+iRM1tbygHFctV0n9V2ld7ocY/EKqSHBuK1h2jGA3SCuMDudK3GB7O2hc DCQKb0MCOdPtQ== From: Jakub Kicinski To: Brian Norris Cc: Kalle Valo , "" , linux-wireless Subject: Re: pull-request: wireless-drivers-next-2020-12-03 Message-ID: <20201207121029.77d48f2c@kicinski-fedora-pc1c0hjn.DHCP.thefacebook.com> In-Reply-To: References: <20201203185732.9CFA5C433ED@smtp.codeaurora.org> <20201204111715.04d5b198@kicinski-fedora-pc1c0hjn.DHCP.thefacebook.com> <87tusxgar5.fsf@codeaurora.org> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org On Mon, 7 Dec 2020 11:35:53 -0800 Brian Norris wrote: > On Mon, Dec 7, 2020 at 2:42 AM Kalle Valo wrote: > > Jakub Kicinski writes: > > > On Thu, 3 Dec 2020 18:57:32 +0000 (UTC) Kalle Valo wrote: > > > There's also a patch which looks like it renames a module parameter. > > > Module parameters are considered uAPI. > > > > Ah, I have been actually wondering that if they are part of user space > > API or not, good to know that they are. I'll keep an eye of this in the > > future so that we are not breaking the uAPI with module parameter > > changes. > > Is there some reference for this rule (e.g., dictate from on high; or > some explanation of reasons)? Or limitations on it? Because as-is, > this sounds like one could never drop a module parameter, or remove > obsolete features. TBH its one of those "widely accepted truth" in networking which was probably discussed before I started compiling kernels so I don't know the full background. But it seems pretty self-evident even without knowing the casus that made us institute the rule. Module parameters are certainly userspace ABI, since user space can control them either when loading the module or via sysfs. > It also suggests that debug-related knobs (which > can benefit from some amount of flexibility over time) should go > exclusively in debugfs (where ABI guarantees are explicitly not made), > even at the expense of usability (dropping a line into > /etc/modprobe.d/ is hard to beat). Indeed, debugfs seems more appropriate. > That's not to say I totally disagree with the original claim, but I'm > just interested in knowing precisely what it means. > > And to put a precise spin on this: what would this rule say about the following? > > http://git.kernel.org/linus/f06021a18fcf8d8a1e79c5e0a8ec4eb2b038e153 > iwlwifi: remove lar_disable module parameter > > Should that parameter have never been introduced in the first place, > never be removed, or something else? I think I've seen this sort of > pattern before, where features get phased in over time, with module > parameters as either escape hatches or as opt-in mechanisms. > Eventually, they stabilize, and there's no need (or sometimes, it's > actively harmful) to keep the knob around. > > Or the one that might (?) be in question here: > fc3ac64a3a28 rtw88: decide lps deep mode from firmware feature. > > The original module parameter was useful for enabling new power-saving > features, because the driver didn't yet know which chip(s)/firmware(s) > were stable with which power features. Now, the driver has learned how > to figure out the optimal power settings, so it's dropping the old > param and adding an "escape hatch", in case there are problems. > > I'd say this one is a bit more subtle than the lar_disable example, > but I'm still not sure that really qualifies as a "user-visible" > change. If I'm reading this right the pattern seems to be that module parameters are used as chicken bits. It's an interesting problem, I'm not sure this use case was discussed. My concern would be that there is no guarantee users will in fact report the new feature fails for them, and therefore grow to depend on the chicken bits. Since updating software is so much easier than re-etching silicon I'd personally not use chicken bits in software, especially with growing adoption of staggered update roll outs. Otherwise I'd think debugfs is indeed a better place for them.