15 Nov 2023 |
| NixOS Moderation Botchanged room power levels. | 18:11:54 |
| NixOS Moderation Botchanged room power levels. | 18:11:54 |
19 Nov 2023 |
| ZXGU joined the room. | 11:02:52 |
21 Nov 2023 |
| Eelco changed their display name from niksnut to Eelco. | 16:37:41 |
23 Nov 2023 |
nyanbinary | Pre-RFC: Gradual Transition of NixOS x86_64 Baseline to x86-64-v3 with an Intermediate Step to x86-64-v2
Summary
This pre-RFC proposes a phased update of NixOS's x86_64 baseline architecture, transitioning to x86-64-v2 in 2024 and subsequently to x86-64-v3 in 2027. This strategy is designed to gradually optimize NixOS for modern CPU architectures, balancing performance improvements with compatibility and transition challenges.
Background
NixOS currently supports a broad range of x86_64 processors. However, this extensive compatibility limits the utilization of advancements in newer CPU architectures. A gradual transition would allow NixOS to progressively adopt modern CPU features while maintaining broader hardware support.
Phase 1: Transition to x86-64-v2 (2024)
Implementation
Compiler Updates: Shift compiler flags to -march=x86-64-v2, targeting CPUs supporting up to SSE4.2 and SSSE3.
Evaluation: Assess compatibility and performance impacts on the existing package ecosystem.
Rationale
Intermediate Compatibility: x86-64-v2 offers improved performance over the current baseline while maintaining broader compatibility, including with some older CPUs.
Building Foundations for Phase 3: This phase sets the stage for the subsequent transition to x86-64-v3, allowing time for testing and community adaptation.
Phase 2: Transition to x86-64-v3 (2027)
Implementation
Compiler Adjustments: Update to -march=x86-64-v3, optimizing for CPUs with support for AVX2 and additional bit-manipulation instructions.
Legacy Support Strategy: Develop and maintain strategies for supporting systems incompatible with x86-64-v3.
Rationale
Maximizing Performance: The shift to x86-64-v3 aims to fully leverage modern CPU capabilities, significantly boosting performance for various applications.
Alignment with Industry Trends: The transition aligns NixOS with industry trends towards utilizing more advanced CPU features.
Drawbacks and Challenges
Compatibility
Reduced Compatibility: Each phase might render NixOS incompatible with some older systems, potentially impacting a subset of the user base.
System Types vs. Features: There's an ongoing discussion about whether these architectural levels should be system types or features within NixOS, with implications for package compatibility and system configuration.
Migration Complexity
Implementation Challenges: The phased approach requires meticulous planning, testing, and execution.
Toolchain and Build System Adjustments: Accommodating new compiler flags and architecture levels in the NixOS toolchain and build systems.
Maintenance Workload
Increased Burden: Switching architectures adds to the maintenance workload.
Contingency Plan
Staged Rollouts with Community Feedback: Implement changes in stages, with active monitoring and adjustments based on feedback.
Enhanced Testing and Validation: Prioritize extensive testing and validation before each phase.
Community-Led Support for Legacy Systems: Develop initiatives for supporting users with older, incompatible hardware.
Transparent Communication: Continuous communication with the community on transition status and issues.
Adaptation Rather Than Reversion: Focus on adapting the approach based on encountered issues.
Alternatives
Single-Step Transition to x86-64-v3: Potential for greater compatibility issues.
Extended Support Periods: Prolonging support for each architecture level for smoother community adaptation.
Unresolved Questions
Community Engagement: How to effectively communicate and implement the transition plan within the NixOS community?
Hardware Compatibility Checks: Mechanisms for users to easily determine the compatibility of their hardware with each new baseline.
Support Mechanisms: Strategies to support users and maintainers during each transition phase, especially those with older hardware.
| 16:28:07 |
nyanbinary | Scuffed pre-rfc draft I wrote up | 16:28:25 |
nyanbinary | Question is on my contingency plan would this be possible? | 16:28:42 |
@piegames:matrix.org | I think this would be better suited as a forum post for now | 16:43:13 |
25 Nov 2023 |
nyanbinary | Redacted or Malformed Event | 21:30:24 |
nyanbinary | Redacted or Malformed Event | 21:30:26 |
11 Dec 2023 |
| raitobezarius joined the room. | 21:02:20 |
| infinisil joined the room. | 22:59:41 |
17 Dec 2023 |
| Dandellion joined the room. | 23:58:51 |
23 Dec 2023 |
| raitobezarius changed their display name from raitobezarius to raitobezarius (DECT 2128). | 22:22:23 |
28 Dec 2023 |
| @piegames:matrix.org changed their display name from piegames to piegames [☎ 9712]. | 01:33:37 |
30 Dec 2023 |
| raitobezarius changed their display name from raitobezarius (DECT 2128) to raitobezarius. | 19:52:57 |
31 Dec 2023 |
| @piegames:matrix.org changed their display name from piegames [☎ 9712] to piegames. | 12:40:47 |
9 Jan 2024 |
| @andar1an:matrix.org joined the room. | 20:30:00 |
11 Jan 2024 |
| @andar1an:matrix.org left the room. | 11:43:53 |
29 Feb 2024 |
| @federicodschonborn:matrix.org joined the room. | 02:41:41 |
1 Mar 2024 |
| tomberek set a profile picture. | 15:20:40 |
7 Mar 2024 |
| Qyriad joined the room. | 17:06:42 |
10 Mar 2024 |
| @5m5z3q888q5prxkg:chat.lightnovel-dungeon.de joined the room. | 06:56:54 |
14 Mar 2024 |
| @federicodschonborn:matrix.org left the room. | 02:04:40 |
| NixOS Moderation Botchanged room power levels. | 18:44:17 |
19 Mar 2024 |
| NixOS Moderation Botchanged room power levels. | 00:29:44 |
21 Mar 2024 |
| NixOS Moderation Botchanged room power levels. | 18:02:41 |
23 Mar 2024 |
| @federicodschonborn:matrix.org joined the room. | 00:39:14 |
29 Mar 2024 |
| SebTM joined the room. | 05:38:44 |
9 Apr 2024 |
| @5m5z3q888q5prxkg:chat.lightnovel-dungeon.de changed their profile picture. | 23:12:30 |