From: Thomas Gleixner <tglx@linutronix.de> To: LKML <linux-kernel@vger.kernel.org> Cc: x86@kernel.org, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Mark Gross <mgross@linux.intel.com>, Tony Luck <tony.luck@intel.com>, Paolo Bonzini <pbonzini@redhat.com>, Darren Hart <dvhart@infradead.org>, Andy Shevchenko <andy@infradead.org>, "Rafael J. Wysocki" <rjw@rjwysocki.net>, Len Brown <lenb@kernel.org>, linux-acpi@vger.kernel.org, Viresh Kumar <viresh.kumar@linaro.org>, linux-pm@vger.kernel.org, Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>, linux-edac@vger.kernel.org, platform-driver-x86@vger.kernel.org, Jean Delvare <jdelvare@suse.com>, Guenter Roeck <linux@roeck-us.net>, linux-hwmon@vger.kernel.org, Zhang Rui <rui.zhang@intel.com>, Daniel Lezcano <daniel.lezcano@linaro.org>, Amit Kucheria <amit.kucheria@verdurent.com>, Chanwoo Choi <cw00.choi@samsung.com>, Jacob Pan <jacob.jun.pan@linux.intel.com>, Adrian Hunter <adrian.hunter@intel.com>, Ulf Hansson <ulf.hansson@linaro.org>, linux-mmc@vger.kernel.org, Bjorn Helgaas <bhelgaas@google.com>, linux-pci@vger.kernel.org, Takashi Iwai <tiwai@suse.com>, alsa-devel@alsa-project.org, Herbert Xu <herbert@gondor.apana.org.au>, "David S. Miller" <davem@davemloft.net>, linux-crypto@vger.kernel.org Subject: [patch 00/22] x86/treewide: Consolidate CPU match macro maze and get rid of C89 (sic!) initializers Date: Fri, 20 Mar 2020 14:13:45 +0100 [thread overview] Message-ID: <20200320131345.635023594@linutronix.de> (raw) The x86 CPU matching based on struct x86_cpu_id: - is using an inconsistent macro mess with pointlessly duplicated and slightly different local macros. Finding the places is an art as there is no consistent name space at all. - is still mostly based on C89 struct initializers which rely on the ordering of the struct members. That's proliferated forever as every new driver just copies the mess from some exising one. A recent offlist conversation about adding more match criteria to the CPU matching logic instead of creating yet another set of horrors, reminded me of a pile of scripts and patches which I hacked on a few years ago when I tried to add something to struct x86_cpu_id. That stuff was finally not needed and ended up in my ever growing todo list and collected dust and cobwebs, but (un)surprisingly enough most of it still worked out of the box. The copy & paste machinery still works as it did years ago. There are a few places which needed extra care due to new creative macros, new check combinations etc. and surprisingly ONE open coded proper C99 initializer. It was reasonably simple to make it at least compile and pass a quick binary equivalence check. The result is a X86_MATCH prefix based set of macros which are reflecting the needs of the usage sites and shorten the base macro which takes all possible parameters (vendor, family, model, feature, data) and uses proper C99 initializers. So extensions of the match logic are trivial after that. The patch set is against Linus tree and has trivial conflicts against linux-next. The diffstat is: 71 files changed, 525 insertions(+), 472 deletions(-) but the extra lines are pretty much kernel-doc documentation which I added to each of the new macros. The usage sites diffstat is: 70 files changed, 393 insertions(+), 471 deletions(-) Thoughts? Thanks, tglx
WARNING: multiple messages have this Message-ID (diff)
From: Thomas Gleixner <tglx@linutronix.de> To: LKML <linux-kernel@vger.kernel.org> Cc: x86@kernel.org, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Mark Gross <mgross@linux.intel.com>, Tony Luck <tony.luck@intel.com>, Paolo Bonzini <pbonzini@redhat.com>, Darren Hart <dvhart@infradead.org>, Andy Shevchenko <andy@infradead.org>, "Rafael J. Wysocki" <rjw@rjwysocki.net>, Len Brown <lenb@kernel.org>, linux-acpi@vger.kernel.org, Viresh Kumar <viresh.kumar@linaro.org>, linux-pm@vger.kernel.org, Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>, linux-edac@vger.kernel.org, platform-driver-x86@vger.kernel.org, Jean Delvare <jdelvare@suse.com>, Guenter Roeck <linux@roeck-us.net>, linux-hwmon@vger.kernel.org, Zhang Rui <rui.zhang@intel.com>, Daniel Lezcano <daniel.lezcano@linaro.org>, Amit Kucheria <amit.kucheria@verdurent.com>, Chanw Subject: [patch 00/22] x86/treewide: Consolidate CPU match macro maze and get rid of C89 (sic!) initializers Date: Fri, 20 Mar 2020 14:13:45 +0100 [thread overview] Message-ID: <20200320131345.635023594@linutronix.de> (raw) The x86 CPU matching based on struct x86_cpu_id: - is using an inconsistent macro mess with pointlessly duplicated and slightly different local macros. Finding the places is an art as there is no consistent name space at all. - is still mostly based on C89 struct initializers which rely on the ordering of the struct members. That's proliferated forever as every new driver just copies the mess from some exising one. A recent offlist conversation about adding more match criteria to the CPU matching logic instead of creating yet another set of horrors, reminded me of a pile of scripts and patches which I hacked on a few years ago when I tried to add something to struct x86_cpu_id. That stuff was finally not needed and ended up in my ever growing todo list and collected dust and cobwebs, but (un)surprisingly enough most of it still worked out of the box. The copy & paste machinery still works as it did years ago. There are a few places which needed extra care due to new creative macros, new check combinations etc. and surprisingly ONE open coded proper C99 initializer. It was reasonably simple to make it at least compile and pass a quick binary equivalence check. The result is a X86_MATCH prefix based set of macros which are reflecting the needs of the usage sites and shorten the base macro which takes all possible parameters (vendor, family, model, feature, data) and uses proper C99 initializers. So extensions of the match logic are trivial after that. The patch set is against Linus tree and has trivial conflicts against linux-next. The diffstat is: 71 files changed, 525 insertions(+), 472 deletions(-) but the extra lines are pretty much kernel-doc documentation which I added to each of the new macros. The usage sites diffstat is: 70 files changed, 393 insertions(+), 471 deletions(-) Thoughts? Thanks, tglx
next reply other threads:[~2020-03-20 13:17 UTC|newest] Thread overview: 161+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-03-20 13:13 Thomas Gleixner [this message] 2020-03-20 13:13 ` [patch 00/22] x86/treewide: Consolidate CPU match macro maze and get rid of C89 (sic!) initializers Thomas Gleixner 2020-03-20 13:13 ` [patch 01/22] x86/devicetable: Move x86 specific macro out of generic code Thomas Gleixner 2020-03-20 13:13 ` Thomas Gleixner 2020-03-20 14:33 ` Andy Shevchenko 2020-03-20 14:33 ` Andy Shevchenko 2020-03-20 14:33 ` Andy Shevchenko 2020-03-20 20:24 ` Thomas Gleixner 2020-03-20 20:24 ` Thomas Gleixner 2020-03-20 20:24 ` Thomas Gleixner 2020-03-24 22:32 ` [tip: x86/cpu] " tip-bot2 for Thomas Gleixner 2020-03-20 13:13 ` [patch 02/22] x86/cpu: Add conistent CPU match macros Thomas Gleixner 2020-03-20 13:13 ` Thomas Gleixner 2020-03-20 14:29 ` Bjorn Helgaas 2020-03-20 14:29 ` Bjorn Helgaas 2020-03-20 14:29 ` Bjorn Helgaas 2020-03-20 14:39 ` Andy Shevchenko 2020-03-20 14:39 ` Andy Shevchenko 2020-03-20 14:39 ` Andy Shevchenko 2020-03-20 20:27 ` Thomas Gleixner 2020-03-20 20:27 ` Thomas Gleixner 2020-03-20 20:27 ` Thomas Gleixner 2020-03-24 22:32 ` [tip: x86/cpu] x86/cpu: Add consistent " tip-bot2 for Thomas Gleixner 2020-03-20 13:13 ` [patch 03/22] x86/cpu/bugs: Convert to new matching macros Thomas Gleixner 2020-03-20 13:13 ` Thomas Gleixner 2020-03-24 22:32 ` [tip: x86/cpu] " tip-bot2 for Thomas Gleixner 2020-03-20 13:13 ` [patch 04/22] x86/perf/events: Convert to new CPU match macros Thomas Gleixner 2020-03-20 13:13 ` Thomas Gleixner 2020-03-24 22:32 ` [tip: x86/cpu] " tip-bot2 for Thomas Gleixner 2020-03-20 13:13 ` [patch 05/22] x86/kvm: " Thomas Gleixner 2020-03-20 13:13 ` Thomas Gleixner 2020-03-24 22:32 ` [tip: x86/cpu] " tip-bot2 for Thomas Gleixner 2020-03-20 13:13 ` [patch 06/22] x86/kernel: " Thomas Gleixner 2020-03-20 13:13 ` Thomas Gleixner 2020-03-24 22:32 ` [tip: x86/cpu] " tip-bot2 for Thomas Gleixner 2020-03-20 13:13 ` [patch 07/22] x86/platform: " Thomas Gleixner 2020-03-20 13:13 ` Thomas Gleixner 2020-03-24 22:32 ` [tip: x86/cpu] " tip-bot2 for Thomas Gleixner 2020-03-20 13:13 ` [patch 08/22] ACPI: Convert to new X86 " Thomas Gleixner 2020-03-20 13:13 ` Thomas Gleixner 2020-03-20 14:47 ` Andy Shevchenko 2020-03-20 14:47 ` Andy Shevchenko 2020-03-20 14:47 ` Andy Shevchenko 2020-03-20 20:32 ` Thomas Gleixner 2020-03-20 20:32 ` Thomas Gleixner 2020-03-20 20:32 ` Thomas Gleixner 2020-03-23 16:38 ` mark gross 2020-03-23 16:38 ` mark gross 2020-03-23 16:38 ` mark gross 2020-03-24 22:32 ` [tip: x86/cpu] " tip-bot2 for Thomas Gleixner 2020-03-20 13:13 ` [patch 09/22] cpufreq: " Thomas Gleixner 2020-03-20 13:13 ` Thomas Gleixner 2020-03-20 14:50 ` Andy Shevchenko 2020-03-20 14:50 ` Andy Shevchenko 2020-03-20 14:50 ` Andy Shevchenko 2020-03-20 20:30 ` Thomas Gleixner 2020-03-20 20:30 ` Thomas Gleixner 2020-03-20 20:30 ` Thomas Gleixner 2020-03-20 21:52 ` Andy Shevchenko 2020-03-20 21:52 ` Andy Shevchenko 2020-03-20 21:52 ` Andy Shevchenko 2020-03-20 22:18 ` Thomas Gleixner 2020-03-20 22:18 ` Thomas Gleixner 2020-03-20 22:18 ` Thomas Gleixner 2020-03-24 6:01 ` [cpufreq] 06c4d00466: will-it-scale.per_process_ops -53.4% regression kernel test robot 2020-03-24 6:01 ` kernel test robot 2020-03-24 6:01 ` kernel test robot 2020-03-24 6:01 ` kernel test robot 2020-03-24 10:24 ` Andy Shevchenko 2020-03-24 10:24 ` Andy Shevchenko 2020-03-24 10:24 ` Andy Shevchenko 2020-03-24 10:24 ` Andy Shevchenko 2020-03-24 15:38 ` Srinivas Pandruvada 2020-03-24 15:38 ` Srinivas Pandruvada 2020-03-24 15:38 ` Srinivas Pandruvada 2020-03-24 15:38 ` Srinivas Pandruvada 2020-03-25 7:51 ` Rong Chen 2020-03-25 7:51 ` Rong Chen 2020-03-25 7:51 ` Rong Chen 2020-03-25 7:51 ` Rong Chen 2020-03-25 7:50 ` Rong Chen 2020-03-25 7:50 ` Rong Chen 2020-03-25 7:50 ` Rong Chen 2020-03-25 7:50 ` Rong Chen 2020-03-25 10:32 ` Thomas Gleixner 2020-03-25 10:32 ` Thomas Gleixner 2020-03-25 10:32 ` Thomas Gleixner 2020-03-25 10:32 ` Thomas Gleixner 2020-03-26 8:33 ` kernel test robot 2020-03-26 8:33 ` kernel test robot 2020-03-26 8:33 ` kernel test robot 2020-03-26 8:33 ` kernel test robot 2020-03-25 12:41 ` [tip: x86/cpu] cpufreq/intel_pstate: Fix wrong macro conversion tip-bot2 for Thomas Gleixner 2020-03-24 13:51 ` [patch V2 09/22] cpufreq: Convert to new X86 CPU match macros Thomas Gleixner 2020-03-24 13:51 ` Thomas Gleixner 2020-03-24 13:51 ` Thomas Gleixner 2020-03-24 15:37 ` Rafael J. Wysocki 2020-03-24 15:37 ` Rafael J. Wysocki 2020-03-24 15:37 ` Rafael J. Wysocki 2020-03-24 22:32 ` [tip: x86/cpu] " tip-bot2 for Thomas Gleixner 2020-03-20 13:13 ` [patch 10/22] EDAC: " Thomas Gleixner 2020-03-20 13:13 ` Thomas Gleixner 2020-03-24 19:31 ` Luck, Tony 2020-03-24 19:31 ` Luck, Tony 2020-03-24 19:31 ` Luck, Tony 2020-03-24 22:32 ` [tip: x86/cpu] " tip-bot2 for Thomas Gleixner 2020-03-20 13:13 ` [patch 11/22] platform/x86: Convert to new " Thomas Gleixner 2020-03-20 13:13 ` Thomas Gleixner 2020-03-20 14:52 ` Andy Shevchenko 2020-03-20 14:52 ` Andy Shevchenko 2020-03-20 14:52 ` Andy Shevchenko 2020-03-24 22:32 ` [tip: x86/cpu] " tip-bot2 for Thomas Gleixner 2020-03-20 13:13 ` [patch 12/22] hwmon: Convert to new X86 " Thomas Gleixner 2020-03-20 13:13 ` Thomas Gleixner 2020-03-24 22:32 ` [tip: x86/cpu] " tip-bot2 for Thomas Gleixner 2020-03-20 13:13 ` [patch 13/22] thermal: " Thomas Gleixner 2020-03-20 13:13 ` Thomas Gleixner 2020-03-24 22:32 ` [tip: x86/cpu] " tip-bot2 for Thomas Gleixner 2020-03-20 13:13 ` [patch 14/22] extcon: axp288: " Thomas Gleixner 2020-03-20 13:13 ` Thomas Gleixner 2020-03-24 22:32 ` [tip: x86/cpu] " tip-bot2 for Thomas Gleixner 2020-03-20 13:14 ` [patch 15/22] intel_idle: " Thomas Gleixner 2020-03-20 13:14 ` Thomas Gleixner 2020-03-24 22:32 ` [tip: x86/cpu] " tip-bot2 for Thomas Gleixner 2020-03-20 13:14 ` [patch 16/22] mmc: sdhci-acpi: " Thomas Gleixner 2020-03-20 13:14 ` Thomas Gleixner 2020-03-24 22:32 ` [tip: x86/cpu] " tip-bot2 for Thomas Gleixner 2020-03-20 13:14 ` [patch 17/22] PCI: intel-mid: " Thomas Gleixner 2020-03-20 13:14 ` Thomas Gleixner 2020-03-20 14:30 ` Bjorn Helgaas 2020-03-20 14:30 ` Bjorn Helgaas 2020-03-20 14:30 ` Bjorn Helgaas 2020-03-24 22:32 ` [tip: x86/cpu] " tip-bot2 for Thomas Gleixner 2020-03-20 13:14 ` [patch 18/22] powercap/intel_rapl: " Thomas Gleixner 2020-03-20 13:14 ` Thomas Gleixner 2020-03-24 22:32 ` [tip: x86/cpu] " tip-bot2 for Thomas Gleixner 2020-03-20 13:14 ` [patch 19/22] ASoC: Intel: " Thomas Gleixner 2020-03-20 13:14 ` Thomas Gleixner 2020-03-20 14:58 ` Andy Shevchenko 2020-03-20 14:58 ` Andy Shevchenko 2020-03-20 14:58 ` Andy Shevchenko 2020-03-24 22:32 ` [tip: x86/cpu] " tip-bot2 for Thomas Gleixner 2020-03-20 13:14 ` [patch 20/22] crypto: Convert to new " Thomas Gleixner 2020-03-20 13:14 ` Thomas Gleixner 2020-03-24 22:32 ` [tip: x86/cpu] " tip-bot2 for Thomas Gleixner 2020-03-20 13:14 ` [patch 21/22] hwrng: via_rng - Convert to new X86 " Thomas Gleixner 2020-03-20 13:14 ` Thomas Gleixner 2020-03-24 22:32 ` [tip: x86/cpu] hwrng: via_rng: " tip-bot2 for Thomas Gleixner 2020-03-20 13:14 ` [patch 22/22] x86/cpu: Cleanup the now unused " Thomas Gleixner 2020-03-20 13:14 ` Thomas Gleixner 2020-03-24 22:32 ` [tip: x86/cpu] " tip-bot2 for Thomas Gleixner 2020-03-20 14:31 ` [patch 00/22] x86/treewide: Consolidate CPU match macro maze and get rid of C89 (sic!) initializers Andy Shevchenko 2020-03-20 14:31 ` Andy Shevchenko 2020-03-20 14:31 ` Andy Shevchenko 2020-03-20 14:59 ` Greg Kroah-Hartman 2020-03-20 14:59 ` Greg Kroah-Hartman 2020-03-20 14:59 ` Greg Kroah-Hartman 2020-03-24 18:58 ` [PATCH 23/22] x86/smpboot: Remove the last ICPU() macro Borislav Petkov 2020-03-24 18:58 ` Borislav Petkov 2020-03-24 18:58 ` Borislav Petkov 2020-04-13 8:40 ` [tip: x86/cleanups] " tip-bot2 for Borislav Petkov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200320131345.635023594@linutronix.de \ --to=tglx@linutronix.de \ --cc=adrian.hunter@intel.com \ --cc=alsa-devel@alsa-project.org \ --cc=amit.kucheria@verdurent.com \ --cc=andy@infradead.org \ --cc=bhelgaas@google.com \ --cc=cw00.choi@samsung.com \ --cc=daniel.lezcano@linaro.org \ --cc=davem@davemloft.net \ --cc=dvhart@infradead.org \ --cc=gregkh@linuxfoundation.org \ --cc=herbert@gondor.apana.org.au \ --cc=jacob.jun.pan@linux.intel.com \ --cc=jdelvare@suse.com \ --cc=lenb@kernel.org \ --cc=linux-acpi@vger.kernel.org \ --cc=linux-crypto@vger.kernel.org \ --cc=linux-edac@vger.kernel.org \ --cc=linux-hwmon@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mmc@vger.kernel.org \ --cc=linux-pci@vger.kernel.org \ --cc=linux-pm@vger.kernel.org \ --cc=linux@roeck-us.net \ --cc=mgross@linux.intel.com \ --cc=pbonzini@redhat.com \ --cc=platform-driver-x86@vger.kernel.org \ --cc=rjw@rjwysocki.net \ --cc=rui.zhang@intel.com \ --cc=srinivas.pandruvada@linux.intel.com \ --cc=tiwai@suse.com \ --cc=tony.luck@intel.com \ --cc=ulf.hansson@linaro.org \ --cc=viresh.kumar@linaro.org \ --cc=x86@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.