Larry Finger <Larry.Finger@xxxxxxxxxxxx> writes: > On 2/23/23 02:12, Johannes Berg wrote: >> On Wed, 2023-02-22 at 14:49 -0600, Larry Finger wrote: >>> Commit dc09766c755c {"wifi: wireless: warn on most wireless extension >>> usage") introduces a warning when wireless extensions are used with >>> cfg80211 drivers. Although such a warning is desirable, the current >>> implementation overflows the dmesg buffer with thousands of warnings, >>> all of which are the same. >>> >> >> What are you seeing them from? >> >> This is rate-limited, so not sure why you're getting so many? >> >>> A WARN_ONCE() call is sufficient. >> >> I think a WARN is inappropriate (it's a userspace 'issue', not an in- >> kernel consistency problem), but I guess we could pr_once(). >> >> But that's not great because it only shows a single application that was >> still using it, not if there are multiple. >> >> Hmm. Not sure what to do. Let's start with "why are you getting it so >> much". Maybe we can somehow print it less, or try to do per application >> once, or something. > > Johannes, > > This patch has a magic number, but it does the job: > > diff --git a/net/wireless/wext-core.c b/net/wireless/wext-core.c > index 13a72b17248e..22a67172a163 100644 > --- a/net/wireless/wext-core.c > +++ b/net/wireless/wext-core.c > @@ -637,12 +637,27 @@ void wireless_send_event(struct net_device * dev, > EXPORT_SYMBOL(wireless_send_event); > > #ifdef CONFIG_CFG80211_WEXT > + > +#define ARRAY_MAX 15 > +static char name_array[ARRAY_MAX][TASK_COMM_LEN]; > +static int array_count = 0; > + > static void wireless_warn_cfg80211_wext(void) > { > char name[sizeof(current->comm)]; > + int i; > > - pr_warn_ratelimited("warning: `%s' uses wireless extensions > that are deprecated for modern drivers; use nl80211\n", > - get_task_comm(name, current)); > + get_task_comm(name, current); > + for (i = 0; i < array_count; i++) { > + if (!strncmp(name, name_array[i], TASK_COMM_LEN)) > + return; > + } > + /* Found new one - print warning and add to array */ > + strncpy(name_array[array_count], name, TASK_COMM_LEN); > + if (array_count < ARRAY_MAX) > + array_count++; > + pr_warn("warning: `%s' uses wireless extensions that are > deprecated for modern drivers; use nl80211\n", > + name); > } > #endif This looks a bit complicated. What about printing the warning once per boot using pr_warn_once()? That way we would not annoy people too much but hopefully still motivate the applications to switch to using nl80211. > Looking at my log, I do get only one for each application. > > finger@localhost:~>dmesg | grep warning | grep nl80211 > [ 8.826056] warning: `nspr-2' uses wireless extensions that are > deprecated for modern drivers; use nl80211 > [ 17.212260] warning: `kded5' uses wireless extensions that are > deprecated for modern drivers; use nl80211 > [ 17.252420] warning: `Qt bearer threa' uses wireless extensions > that are deprecated for modern drivers; use nl80211 > [ 22.664380] warning: `akonadi_notes_a' uses wireless extensions > that are deprecated for modern drivers; use nl80211 > [ 23.058001] warning: `akonadi_maildis' uses wireless extensions > that are deprecated for modern drivers; use nl80211 > [ 23.175135] warning: `akonadi_mailmer' uses wireless extensions > that are deprecated for modern drivers; use nl80211 > [ 23.329265] warning: `akonadi_followu' uses wireless extensions > that are deprecated for modern drivers; use nl80211 > [ 24.075119] warning: `akonadi_sendlat' uses wireless extensions > that are deprecated for modern drivers; use nl80211 > > I have no idea why most, if not all, of those applications even care > about wireless. As you can see, I get 8 messages in a relatively short > time, thus I selected 15 as the size of the array. Oh man, that's a lot of applications. Are these all KDE or QT applications, maybe libqt uses Wireless Extensions for something? Linus also reported that he is seeing spam from google-chrome: https://lore.kernel.org/all/CAHk-=wjTMgB0=PQt8synf1MRTfetVXAWWLOibnMKvv1ETn_1uw@xxxxxxxxxxxxxx/ So there are a lot more applications using the outdated Wireless Extension interface as we originally thought. It will take a long time to get rid of WE usage :( -- https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches