4 Aug 2023 |
| @linus:schreibt.jetztchanged room power levels. | 06:55:58 |
| @admin:nixos.org invited NixOS Moderation Bot. | 11:27:24 |
| @admin:nixos.orgchanged room power levels. | 11:27:29 |
| Room Avatar Renderer. | 11:28:51 |
| NixOS Moderation Bot joined the room. | 11:29:04 |
@admin:nixos.org | added to #teams:nixos.org | 11:31:36 |
| @admin:nixos.orgchanged room power levels. | 11:32:07 |
| @admin:nixos.org left the room. | 11:32:14 |
| @linus:schreibt.jetztchanged room power levels. | 11:45:27 |
13 Aug 2023 |
| @10leej:matrix.org joined the room. | 01:27:40 |
14 Aug 2023 |
| Artturin joined the room. | 06:02:42 |
15 Aug 2023 |
| @10leej:matrix.org left the room. | 19:34:46 |
3 Sep 2023 |
| problems joined the room. | 21:34:18 |
21 Sep 2023 |
| dedmunwalk joined the room. | 23:10:10 |
24 Sep 2023 |
| mib š„ joined the room. | 12:23:51 |
27 Sep 2023 |
| mib š„ changed their display name from mib to mib š„. | 05:53:09 |
21 Oct 2023 |
| Dusk joined the room. | 04:54:10 |
28 Oct 2023 |
| nyanbinary joined the room. | 14:37:33 |
22 Oct 2023 |
| @janik0:matrix.org joined the room. | 21:05:17 |
30 Oct 2023 |
| Anthony Rsl joined the room. | 17:03:38 |
3 Nov 2023 |
| mib š„ changed their profile picture. | 13:55:12 |
6 Nov 2023 |
| @kfears:matrix.org changed their display name from KFears (bass arc) to KFears (filler human). | 22:34:19 |
10 Nov 2023 |
| globin joined the room. | 01:02:31 |
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 |