!kSKIrADSJJlBBppSjf:schreibt.jetzt

NixOS RFCs

47 Members
15 Servers

Load older messages


SenderMessageTime
4 Aug 2023
@linus:schreibt.jetzt@linus:schreibt.jetztchanged room power levels.06:55:58
@admin:nixos.org@admin:nixos.org invited @mjolnir:nixos.orgNixOS Moderation Bot.11:27:24
@admin:nixos.org@admin:nixos.orgchanged room power levels.11:27:29
Room Avatar Renderer.11:28:51
@mjolnir:nixos.orgNixOS Moderation Bot joined the room.11:29:04
@admin:nixos.org@admin:nixos.orgadded to #teams:nixos.org11:31:36
@admin:nixos.org@admin:nixos.orgchanged room power levels.11:32:07
@admin:nixos.org@admin:nixos.org left the room.11:32:14
@linus:schreibt.jetzt@linus:schreibt.jetztchanged room power levels.11:45:27
13 Aug 2023
@10leej:matrix.org@10leej:matrix.org joined the room.01:27:40
14 Aug 2023
@artturin:matrix.orgArtturin joined the room.06:02:42
15 Aug 2023
@10leej:matrix.org@10leej:matrix.org left the room.19:34:46
3 Sep 2023
@kity:kity.wtfproblems joined the room.21:34:18
21 Sep 2023
@dedmunwalk:matrix.orgdedmunwalk joined the room.23:10:10
24 Sep 2023
@mib:kanp.aimib 🄐 joined the room.12:23:51
27 Sep 2023
@mib:kanp.aimib 🄐 changed their display name from mib to mib 🄐.05:53:09
21 Oct 2023
@bb010g:matrix.orgDusk joined the room.04:54:10
28 Oct 2023
@niko:conduit.rsnyanbinary joined the room.14:37:33
22 Oct 2023
@janik0:matrix.org@janik0:matrix.org joined the room.21:05:17
30 Oct 2023
@anthonyrsl:matrix.orgAnthony Rsl joined the room.17:03:38
3 Nov 2023
@mib:kanp.aimib 🄐 changed their profile picture.13:55:12
6 Nov 2023
@kfears:matrix.org@kfears:matrix.org changed their display name from KFears (bass arc) to KFears (filler human).22:34:19
10 Nov 2023
@globin:toznenetl.chatglobin joined the room.01:02:31
15 Nov 2023
@mjolnir:nixos.orgNixOS Moderation Botchanged room power levels.18:11:54
@mjolnir:nixos.orgNixOS Moderation Botchanged room power levels.18:11:54
19 Nov 2023
@zxgu:matrix.orgZXGU joined the room.11:02:52
21 Nov 2023
@niksnut:matrix.orgEelco changed their display name from niksnut to Eelco.16:37:41
23 Nov 2023
@niko:conduit.rsnyanbinary
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
@niko:conduit.rsnyanbinaryScuffed pre-rfc draft I wrote up16:28:25
@niko:conduit.rsnyanbinaryQuestion is on my contingency plan would this be possible?16:28:42

Show newer messages


Back to Room ListRoom Version: 10