mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Arnd Bergmann <arnd@arndb.de>,
	kernel test robot <oliver.sang@intel.com>,
	oe-lkp@lists.linux.dev, kernel test robot <lkp@intel.com>,
	linux-kernel@vger.kernel.org, John Stultz <jstultz@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Stephen Boyd <sboyd@kernel.org>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
	Peter Zijlstra <peterz@infradead.org>
Subject: [RFC PATCH 0/15] x86: Remove support for TSC-less and CX8-less CPUs
Date: Thu, 24 Apr 2025 19:54:03 +0200	[thread overview]
Message-ID: <aAp6u9ylKCpvMJRF@gmail.com> (raw)
In-Reply-To: <CAHk-=wi6k0wk89u+8vmOhcLHPmapK13DDsL2m+xeqEwR9iTd9A@mail.gmail.com>


* Linus Torvalds <torvalds@linux-foundation.org> wrote:

> I really get the feeling that it's time to leave i486 support behind. 
> There's zero real reason for anybody to waste one second of 
> development effort on this kind of issue.

Fully agreed!

And to turn this idea into code, here's a very raw RFC series that 
starts removing non-TSC 586 and 486 code and related support code from 
the x86 architecture, with the goal to make TSC and CX8 (CMPXCHG8B) 
support unconditionally available:

   git://git.kernel.org/pub/scm/linux/kernel/git/mingo/tip.git WIP.x86/cpu

The full diffstat is nice, primarily due to the removal of the math-emu 
library:

   83 files changed, 30 insertions(+), 14683 deletions(-)

But even without the math-emu/ removal and the drivers/ pruning it's a 
substantial simplification:

   20 files changed, 29 insertions(+), 629 deletions(-)

The patches most relevant to this discussion should be:

      x86/cpu: Remove M486/M486SX/ELAN support
      ...
      x86/cpu: Remove TSC-less CONFIG_M586 support
      x86/cpu: Make CONFIG_X86_TSC unconditional
      x86/cpu: Make CONFIG_X86_CX8 unconditional
      x86/percpu: Remove !CONFIG_X86_CX8 methods
      x86/atomics: Remove !CONFIG_X86_CX8 methods

If there's no big objections about the scope of removal I'll finish it 
by removing the non-TSC complications as well, and send out the series 
to lkml for further review.

( Note that some of the patches in there are still WIP, as the branch 
  name suggests. )

Thanks,

	Ingo

================>

Ingo Molnar (17):
      x86/cpu: Remove M486/M486SX/ELAN support
      x86/cpu: Remove the CONFIG_X86_INVD_BUG quirk
      x86/cpu, cpufreq: Remove AMD ELAN support
      x86/fpu: Remove MATH_EMULATION and related glue code
      x86/fpu: Remove the 'no387' boot option
      x86/fpu: Remove the math-emu/ FPU emulation library
      x86/platform: Remove CONFIG_X86_RDC321X support
      arch/x86, gpio: Remove GPIO_RDC321X support
      arch/x86, watchdog: Remove the RDC321X_WDT watchdog driver
      arch/x86, mfd: Remove MFD_RDC321X support
      x86/reboot: Remove the RDC321X reboot quirk
      x86/cpu: Remove CPU_SUP_UMC_32 support
      x86/cpu: Remove TSC-less CONFIG_M586 support
      x86/cpu: Make CONFIG_X86_TSC unconditional
      x86/cpu: Make CONFIG_X86_CX8 unconditional
      x86/percpu: Remove !X86_CX8 methods
      x86/atomics: Remove !CONFIG_X86_CX8 methods

 Documentation/admin-guide/kernel-parameters.txt |    4 -
 arch/x86/Kconfig                                |   71 +-
 arch/x86/Kconfig.cpu                            |   73 +-
 arch/x86/Kconfig.cpufeatures                    |    2 -
 arch/x86/Makefile                               |    1 -
 arch/x86/Makefile_32.cpu                        |    6 -
 arch/x86/include/asm/asm-prototypes.h           |    4 -
 arch/x86/include/asm/atomic64_32.h              |   17 +-
 arch/x86/include/asm/cmpxchg_32.h               |   86 +-
 arch/x86/include/asm/fpu/api.h                  |    6 -
 arch/x86/include/asm/percpu.h                   |    6 +-
 arch/x86/include/asm/vermagic.h                 |    8 -
 arch/x86/kernel/cpu/common.c                    |    7 -
 arch/x86/kernel/cpu/umc.c                       |   26 -
 arch/x86/kernel/fpu/core.c                      |    5 -
 arch/x86/kernel/fpu/init.c                      |    9 +-
 arch/x86/kernel/reboot_fixups_32.c              |   14 -
 arch/x86/kernel/traps.c                         |   21 -
 arch/x86/lib/Makefile                           |    4 -
 arch/x86/lib/atomic64_386_32.S                  |  195 ---
 arch/x86/lib/cmpxchg8b_emu.S                    |   97 --
 arch/x86/math-emu/Makefile                      |   30 -
 arch/x86/math-emu/README                        |  427 ------
 arch/x86/math-emu/control_w.h                   |   46 -
 arch/x86/math-emu/div_Xsig.S                    |  367 -----
 arch/x86/math-emu/div_small.S                   |   48 -
 arch/x86/math-emu/errors.c                      |  686 ----------
 arch/x86/math-emu/exception.h                   |   51 -
 arch/x86/math-emu/fpu_arith.c                   |  153 ---
 arch/x86/math-emu/fpu_asm.h                     |   32 -
 arch/x86/math-emu/fpu_aux.c                     |  267 ----
 arch/x86/math-emu/fpu_emu.h                     |  218 ---
 arch/x86/math-emu/fpu_entry.c                   |  718 ----------
 arch/x86/math-emu/fpu_etc.c                     |  136 --
 arch/x86/math-emu/fpu_proto.h                   |  157 ---
 arch/x86/math-emu/fpu_system.h                  |  130 --
 arch/x86/math-emu/fpu_tags.c                    |  116 --
 arch/x86/math-emu/fpu_trig.c                    | 1649 -----------------------
 arch/x86/math-emu/get_address.c                 |  401 ------
 arch/x86/math-emu/load_store.c                  |  322 -----
 arch/x86/math-emu/mul_Xsig.S                    |  179 ---
 arch/x86/math-emu/poly.h                        |  115 --
 arch/x86/math-emu/poly_2xm1.c                   |  146 --
 arch/x86/math-emu/poly_atan.c                   |  209 ---
 arch/x86/math-emu/poly_l2.c                     |  245 ----
 arch/x86/math-emu/poly_sin.c                    |  379 ------
 arch/x86/math-emu/poly_tan.c                    |  213 ---
 arch/x86/math-emu/polynom_Xsig.S                |  137 --
 arch/x86/math-emu/reg_add_sub.c                 |  334 -----
 arch/x86/math-emu/reg_compare.c                 |  479 -------
 arch/x86/math-emu/reg_constant.c                |  123 --
 arch/x86/math-emu/reg_constant.h                |   26 -
 arch/x86/math-emu/reg_convert.c                 |   47 -
 arch/x86/math-emu/reg_divide.c                  |  183 ---
 arch/x86/math-emu/reg_ld_str.c                  | 1220 -----------------
 arch/x86/math-emu/reg_mul.c                     |  116 --
 arch/x86/math-emu/reg_norm.S                    |  150 ---
 arch/x86/math-emu/reg_round.S                   |  711 ----------
 arch/x86/math-emu/reg_u_add.S                   |  169 ---
 arch/x86/math-emu/reg_u_div.S                   |  474 -------
 arch/x86/math-emu/reg_u_mul.S                   |  150 ---
 arch/x86/math-emu/reg_u_sub.S                   |  274 ----
 arch/x86/math-emu/round_Xsig.S                  |  142 --
 arch/x86/math-emu/shr_Xsig.S                    |   89 --
 arch/x86/math-emu/status_w.h                    |   68 -
 arch/x86/math-emu/version.h                     |   12 -
 arch/x86/math-emu/wm_shrx.S                     |  207 ---
 arch/x86/math-emu/wm_sqrt.S                     |  472 -------
 drivers/cpufreq/Kconfig.x86                     |   26 -
 drivers/cpufreq/Makefile                        |    2 -
 drivers/cpufreq/elanfreq.c                      |  227 ----
 drivers/cpufreq/sc520_freq.c                    |  137 --
 drivers/gpio/Kconfig                            |    8 -
 drivers/gpio/Makefile                           |    1 -
 drivers/gpio/gpio-rdc321x.c                     |  197 ---
 drivers/mfd/Kconfig                             |    9 -
 drivers/mfd/Makefile                            |    1 -
 drivers/mfd/rdc321x-southbridge.c               |   96 --
 drivers/watchdog/Kconfig                        |   11 -
 drivers/watchdog/Makefile                       |    1 -
 drivers/watchdog/rdc321x_wdt.c                  |  281 ----
 include/linux/mfd/rdc321x.h                     |   27 -
 lib/atomic64_test.c                             |    4 +-
 83 files changed, 30 insertions(+), 14683 deletions(-)
 delete mode 100644 arch/x86/kernel/cpu/umc.c
 delete mode 100644 arch/x86/lib/atomic64_386_32.S
 delete mode 100644 arch/x86/lib/cmpxchg8b_emu.S
 delete mode 100644 arch/x86/math-emu/Makefile
 delete mode 100644 arch/x86/math-emu/README
 delete mode 100644 arch/x86/math-emu/control_w.h
 delete mode 100644 arch/x86/math-emu/div_Xsig.S
 delete mode 100644 arch/x86/math-emu/div_small.S
 delete mode 100644 arch/x86/math-emu/errors.c
 delete mode 100644 arch/x86/math-emu/exception.h
 delete mode 100644 arch/x86/math-emu/fpu_arith.c
 delete mode 100644 arch/x86/math-emu/fpu_asm.h
 delete mode 100644 arch/x86/math-emu/fpu_aux.c
 delete mode 100644 arch/x86/math-emu/fpu_emu.h
 delete mode 100644 arch/x86/math-emu/fpu_entry.c
 delete mode 100644 arch/x86/math-emu/fpu_etc.c
 delete mode 100644 arch/x86/math-emu/fpu_proto.h
 delete mode 100644 arch/x86/math-emu/fpu_system.h
 delete mode 100644 arch/x86/math-emu/fpu_tags.c
 delete mode 100644 arch/x86/math-emu/fpu_trig.c
 delete mode 100644 arch/x86/math-emu/get_address.c
 delete mode 100644 arch/x86/math-emu/load_store.c
 delete mode 100644 arch/x86/math-emu/mul_Xsig.S
 delete mode 100644 arch/x86/math-emu/poly.h
 delete mode 100644 arch/x86/math-emu/poly_2xm1.c
 delete mode 100644 arch/x86/math-emu/poly_atan.c
 delete mode 100644 arch/x86/math-emu/poly_l2.c
 delete mode 100644 arch/x86/math-emu/poly_sin.c
 delete mode 100644 arch/x86/math-emu/poly_tan.c
 delete mode 100644 arch/x86/math-emu/polynom_Xsig.S
 delete mode 100644 arch/x86/math-emu/reg_add_sub.c
 delete mode 100644 arch/x86/math-emu/reg_compare.c
 delete mode 100644 arch/x86/math-emu/reg_constant.c
 delete mode 100644 arch/x86/math-emu/reg_constant.h
 delete mode 100644 arch/x86/math-emu/reg_convert.c
 delete mode 100644 arch/x86/math-emu/reg_divide.c
 delete mode 100644 arch/x86/math-emu/reg_ld_str.c
 delete mode 100644 arch/x86/math-emu/reg_mul.c
 delete mode 100644 arch/x86/math-emu/reg_norm.S
 delete mode 100644 arch/x86/math-emu/reg_round.S
 delete mode 100644 arch/x86/math-emu/reg_u_add.S
 delete mode 100644 arch/x86/math-emu/reg_u_div.S
 delete mode 100644 arch/x86/math-emu/reg_u_mul.S
 delete mode 100644 arch/x86/math-emu/reg_u_sub.S
 delete mode 100644 arch/x86/math-emu/round_Xsig.S
 delete mode 100644 arch/x86/math-emu/shr_Xsig.S
 delete mode 100644 arch/x86/math-emu/status_w.h
 delete mode 100644 arch/x86/math-emu/version.h
 delete mode 100644 arch/x86/math-emu/wm_shrx.S
 delete mode 100644 arch/x86/math-emu/wm_sqrt.S
 delete mode 100644 drivers/cpufreq/elanfreq.c
 delete mode 100644 drivers/cpufreq/sc520_freq.c
 delete mode 100644 drivers/gpio/gpio-rdc321x.c
 delete mode 100644 drivers/mfd/rdc321x-southbridge.c
 delete mode 100644 drivers/watchdog/rdc321x_wdt.c
 delete mode 100644 include/linux/mfd/rdc321x.h

  reply	other threads:[~2025-04-24 17:54 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-21  8:12 [linus:master] [x86/cpu] f388f60ca9: BUG:soft_lockup-CPU##stuck_for#s![swapper:#] kernel test robot
2025-04-22 10:16 ` Arnd Bergmann
2025-04-24  2:12   ` Oliver Sang
2025-04-24  7:59     ` Arnd Bergmann
2025-04-24 16:07       ` Linus Torvalds
2025-04-24 17:54         ` Ingo Molnar [this message]
2025-04-24 18:01           ` [RFC PATCH 0/15] x86: Remove support for TSC-less and CX8-less CPUs Ingo Molnar
2025-04-24 21:27           ` Arnd Bergmann
2025-04-25  7:40             ` Ingo Molnar
2025-04-25  9:30               ` Arnd Bergmann
2025-04-26  4:06         ` [linus:master] [x86/cpu] f388f60ca9: BUG:soft_lockup-CPU##stuck_for#s![swapper:#] H. Peter Anvin
2025-04-27  5:48       ` Oliver Sang
2025-04-27 12:07         ` Arnd Bergmann
2025-04-27 16:39         ` Linus Torvalds
2025-04-27 21:19           ` H. Peter Anvin
2025-04-25  8:41 [RFC PATCH 0/15] x86: Remove support for TSC-less and CX8-less CPUs Ingo Molnar
2025-04-25 11:13 ` Arnd Bergmann
2025-04-26  8:26 ` Pavel Machek
2025-05-05  8:53 ` Maciej W. Rozycki
2025-05-05 12:48   ` H. Peter Anvin
2025-05-05 13:04     ` Maciej W. Rozycki
2025-05-05 19:57       ` H. Peter Anvin
2025-05-05 20:54         ` Borislav Petkov
2025-05-06 13:51           ` Maciej W. Rozycki
2025-05-06 14:16             ` Borislav Petkov
2025-05-08 14:51               ` Maciej W. Rozycki
2025-05-08 20:11                 ` Borislav Petkov
2025-05-12 12:55                   ` Maciej W. Rozycki
2025-05-12 13:48                     ` Borislav Petkov
2025-05-12 17:29                       ` Maciej W. Rozycki
2025-05-13  2:00                         ` Linus Torvalds
2025-05-13  3:48                           ` H. Peter Anvin
2025-05-13  5:43                           ` John Paul Adrian Glaubitz
2025-05-13 21:55                             ` Maciej W. Rozycki
2025-05-13 22:02                               ` Linus Torvalds
2025-05-13 22:06                                 ` H. Peter Anvin
2025-05-15 16:32                                 ` Maciej W. Rozycki
2025-05-06 13:48         ` Maciej W. Rozycki
2025-05-06 13:54           ` John Paul Adrian Glaubitz
2025-05-05 15:59   ` Linus Torvalds
2025-05-06 13:53     ` Maciej W. Rozycki
2025-05-06 16:44       ` H. Peter Anvin
2025-05-06 17:11         ` Linus Torvalds
2025-05-06 17:51           ` H. Peter Anvin
2025-05-08 14:54             ` Maciej W. Rozycki
2025-05-08 14:53           ` Maciej W. Rozycki
2025-05-08 14:51         ` Maciej W. Rozycki

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=aAp6u9ylKCpvMJRF@gmail.com \
    --to=mingo@kernel.org \
    --cc=arnd@arndb.de \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=jstultz@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=oe-lkp@lists.linux.dev \
    --cc=oliver.sang@intel.com \
    --cc=peterz@infradead.org \
    --cc=sboyd@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome