linux

19 posts

meta

Modernizing the Meta Ads Service With an Open-Source Kernel Scheduler (opens in new tab)

At Meta’s scale, small latency regressions can materially affect ad relevance, ranking, and revenue. When Linux kernel 6.9’s EEVDF scheduler reduced ad-serving performance, Meta used sched_ext to deploy a workload-specific BPF scheduler without modifying the kernel. The solution reduced p99 ads-retrieval latency by 28%, saved 3.28 MW of power, increased ads ranked by 1.1%, and enabled further improvements through rapid user-space updates. ## Why Ads Latency Matters - Meta’s ads platform processes more than 5 million requests per second, or over 400 billion requests daily. - Lower p99 latency allows more relevant ads to be retrieved and ranked within each request. - General-purpose schedulers such as CFS and EEVDF balance CPU usage without understanding which threads are most important to ad delivery. - Ads-specific scheduling can prioritize work on the critical request path while deferring less-sensitive tasks. ## The Kernel Upgrade Problem - During a move from Linux 6.4 to 6.9, Meta found that EEVDF introduced a latency regression. - The regression reduced the number of ads ranked in responses. - Some servers had to remain on Linux 6.4, creating operational fragmentation and technical debt. - sched_ext provided a way to address the regression without waiting for another kernel release. ## How sched_ext Customizes Scheduling - sched_ext is an upstream, BPF-based framework that entered Linux 6.12. - It lets developers implement scheduling policies in BPF programs responding to events such as: - Thread wake-ups - Run-queue insertion - Dispatching the next thread - CPU idle-state transitions - Meta’s policy divides CPUs into two dynamically sized pools: - Latency-critical request-path threads - Less latency-sensitive background work - Keeping related work on the same CPUs improves L3 cache locality and reduces DRAM access. - The scheduler is loaded by a user-space binary, so new policies can be deployed by restarting the scheduler process rather than rebuilding the kernel. ## Performance and Operational Results The initial deployment on the largest ads-serving server type achieved: - 28% lower p99 latency on the ads retrieval path - 1.1% more weighted ads ranked - 3.28 MW of fleet-wide power savings Two subsequent policy updates produced additional gains: - A further 60% reduction in service p99 latency - 18% fewer timeout errors on the critical path - Delivery in days instead of the months typically required for kernel changes ## From Fix to Optimization Platform - sched_ext gives Meta an independent scheduling-development path alongside upstream Linux evolution. - BPF updates support rapid experimentation with: - Cache-aware thread placement - ROI-based executor routing - NUMA-aware scheduling - Because sched_ext is upstream, other organizations can implement workload-specific policies without maintaining a Linux kernel fork. - Meta plans to use application-level hints, such as request importance, to adjust scheduling slices and queue priority dynamically. sched_ext demonstrates that application-aware scheduling can produce measurable business, latency, and energy benefits. For workloads with priorities that general-purpose schedulers cannot see, an extensible BPF-based scheduler offers a practical way to optimize continuously without coupling improvements to kernel release cycles.

discord

Discord Patch Notes: July 7, 2026 (opens in new tab)

Discord’s July 7, 2026 patch focuses on performance improvements, cross-platform reliability, usability fixes, and bug cleanup. Notable changes include nearly 20% faster typical iOS startup times through React Native’s Fabric architecture, faster session connections, Linux looping-media fixes, silent message forwarding, and channel pinning for all servers. The remaining changes address a wide range of interface, profile, notification, search, and platform-specific issues. ## Performance and Reliability - iOS migration to React Native’s New Architecture, Fabric, produced nearly 20% improvements in typical app initialization times. - A session-start configuration change reduced p95 and p99 connection times by approximately 100 milliseconds. - Linux GIFs and videos now loop correctly after a deep media-stack fix. - Linux no longer gradually leaks X11 connections on NVIDIA systems, which could eventually prevent other applications from opening. - Windows startup now launches Discord quietly in the background instead of stealing focus from games. - Desktop clients no longer stop accepting mouse clicks after two rapid refreshes. ## Messaging and Server Features - Message forwarding now supports `@silent`, allowing users to forward messages without notifying recipients. - Channel Pinning is now available on all servers, rather than only Community-enabled servers. - Invites to servers a user already belongs to now open the server directly instead of incorrectly starting Server Tag Adoption. - Invalid search filters such as `has: hello` are no longer treated as valid filters on Android and iOS. ## Desktop Interface Fixes - Profile cards, custom-status hover bars, and other elements now have corrected corner shapes, positioning, and overflow behavior. - Long searches no longer cause “No results” text to overflow searchable dropdowns. - Small login windows no longer show an unexpected scrollbar or misaligned sign-in box. - Adding widgets while editing a profile no longer discards unsaved changes. - Badge links now close the profile modal before opening Nitro Home or the Shop. - The “24 hours” custom-status expiration now lasts a full 24 hours instead of clearing at midnight. - Spelling suggestions now appear when right-clicking misspelled text in fields such as display names, poll questions, and channel names. - Search filter dates no longer shift forward by a day when reopening the filters modal. - The Inbox keybind no longer locks the client when another modal is open. - Nitro items in a user’s own wishlist now open the subscription modal instead of offering an impossible self-gift. ## iOS Improvements - Channel-list scrolling is smoother and no longer jitters or jumps. - Notification settings correctly recognize already-enabled push notifications without requiring the page to be reopened. - Profile previews now reflect pending display-name style changes. - Scheduled event and Live channel location text truncates correctly within cards. - iPad browser invites now preserve the invite code and display the invite properly in Discord. - Profile-tab scrolling no longer causes content clipping. - Shop item previews no longer make profile text flash and disappear. - Nitro perk descriptions are easier to scroll when system text is enlarged. - Various visual issues were corrected, including theme-colored boxes, unclear channel-list banners, and invisible or overflowing elements. ## Android Improvements - Nitro carousel indicators are now visible across default themes. - Incomplete server-application alerts can be dismissed by tapping outside them or pressing Back. - Profile-picture editor labels and sliders for “Scale” and “Rotate” now appear correctly on affected themes. - Profile Call and Message buttons now render at consistent sizes after accepting a friend request. Overall, the update is primarily a broad maintenance release: users should see faster startup and connections, more consistent media and navigation behavior, and fewer platform-specific interface bugs.

gitlab

What's new in Git 2.55.0? (opens in new tab)

Git 2.55.0 introduces improvements focused on stacked-branch workflows, large repositories, multi-remote setups, and clearer history visualization. Highlights include `git history fixup`, a built-in Linux filesystem monitor, remote-group pushing, and a configurable width limit for `git log --graph`. The release also continues Git’s Rust adoption and improves performance for partial clones. ## `git history fixup` - Adds `git history fixup <commit-id>`. - Takes staged changes and amends them directly into an existing commit. - Avoids creating a separate fixup commit and running an interactive autosquash rebase. - Automatically updates other local branches containing the amended commit, making it useful for stacked branches. ## Built-in fsmonitor support for Linux - Git’s filesystem monitor speeds up `git status` by tracking changed files instead of scanning the entire worktree. - Git 2.55 extends the built-in `core.fsmonitor=true` daemon from Windows and macOS to GNU/Linux. - Linux support uses `inotify`, avoiding the elevated privileges required by `fanotify`. - The daemon needs a watcher for every repository directory, so large repositories may require increasing `fs.inotify.max_user_watches`. ## Pushing to remote groups - Remote groups were previously supported by `git fetch` but not `git push`. - Configure a group, for example: ```bash git config set remotes.forks "origin upstream" ``` - Push to every remote in the group with: ```bash git push forks main ``` - Each remote is handled independently and follows its own `remote.<name>.push` mappings and mirror settings. ## Limiting `git log --graph` width - `git log --graph` can become difficult to read in repositories with many parallel branches. - Git 2.55 adds a way to limit the graph’s lane width, preventing the ASCII history from expanding indefinitely. - This is particularly useful for large projects such as Git itself, where the graph can become many lanes wide after only a few commits. ## Rust adoption and partial-clone performance - The release continues the gradual evolution of Rust within Git’s codebase. - `git grep` and `git cherry` receive performance improvements when operating in partial clones. Git 2.55 is especially useful for developers working in large monorepos or stacked-branch workflows. Enabling the Linux fsmonitor, using `git history fixup`, and configuring remote groups can provide immediate productivity benefits, while graph-width limits make complex histories easier to inspect.

discord

How to Manage Your Discord Desktop Notifications: A Complete Guide (opens in new tab)

Discord offers fine-grained notification controls so users can manage alerts at the server, channel, sound, status, and desktop-system levels. Notifications can be limited to mentions, muted for specific channels or categories, or silenced entirely with Do Not Disturb. Individual sounds and desktop pop-ups can also be disabled without turning off every in-app alert. ## Types of Discord Notifications - Notifications may be triggered by: - Regular channel messages - Direct @mentions - @everyone and @here mentions - Mentions of roles the user belongs to - Replies to the user’s messages - Separate sounds may indicate: - Messages in the channel currently being viewed - Incoming voice or video calls - Someone launching an Activity - Soundboard effects ## Server, Channel, and Category Controls - Server settings are available by right-clicking a server and selecting **Notification Settings**. - Server-wide options include: - **All Messages** - **Only @mentions** - **Nothing** - Suppressing @everyone, @here, role mentions, and new event notifications - Muting the entire server - Individual channels can override the server default with their own notification setting. - Categories can also be muted, greying out and collapsing their channels. - These controls allow users to keep a server active while silencing noisy channels such as memes, off-topic, or announcements. ## Do Not Disturb - **Do Not Disturb** silences Discord notification sounds across the app. - It can be enabled from the avatar status menu and configured for a specific duration. - Online is the normal status, while Idle and Invisible mainly affect how the user appears to others. - DND syncs between desktop and mobile, although mobile push notifications may still appear. ## Individual Notification Sounds - Under **User Settings > Notifications > Sounds**, users can toggle many sounds independently. - Available controls cover messages, mentions, mute and deafen actions, call rings, voice-channel joins and leaves, and more. - Users may want to disable message sounds while keeping important alerts such as incoming calls enabled. - Soundboard configuration is handled separately. ## Desktop Notification Pop-ups - **User Settings > Notifications > Enable Desktop Notifications** controls system pop-ups on Windows, macOS, and Linux. - Disabling this option removes desktop pop-ups but does not stop sounds played within Discord. - Users who want complete silence should combine desktop notification controls with server, channel, DND, or sound settings. The most effective setup is to use server and channel settings for routine filtering, individual sound toggles for prioritizing important events, and DND when uninterrupted focus is needed.

google

A low-carbon computing platform from your retired phones (opens in new tab)

Retired smartphones can become low-carbon cloud infrastructure by reusing their still-capable motherboards instead of manufacturing new servers. Researchers at UC San Diego, with Google’s support, are developing clusters of stripped-down Pixel phones managed by Kubernetes. Their planned 2,000-phone datacenter aims to provide affordable computing for education and research while reducing hardware-related emissions. ## The Carbon Case for Reusing Smartphones - Computing emissions come from: - **Operational carbon**, produced by electricity consumed during use. - **Embodied carbon**, produced during hardware manufacturing and raw-material extraction. - Reusing phones primarily addresses embodied carbon by extending the life of components that remain functional. - Since people typically replace phones every four years, many retired devices still contain capable processors, accelerators, memory, and storage. ## Smartphone Performance and Limitations - Modern smartphone performance cores can match or exceed the per-core performance of some data-center servers. - Smartphones have significant limitations compared with servers: - Fewer, heterogeneous processor cores. - Only 8–12 GB of memory. - Less capacity for large, multithreaded workloads. - The platform therefore targets workloads that fit on a phone or can be distributed across multiple devices. ## Converting Phones into Datacenter Hardware - Unmodified phones are unsuitable for datacenters because they include unnecessary and potentially hazardous components such as: - Displays and cameras. - Batteries not designed for sustained datacenter operation. - Consumer-oriented chassis and peripherals. - Researchers remove everything except the motherboard, which accounts for roughly 50% of a phone’s embodied carbon. - Android’s mobile userspace is replaced with a general-purpose Linux distribution. - This removes mobile-specific restrictions such as Android’s “low memory killer” and enables broader server-style programmability. - Kubernetes manages containerized applications across clusters of approximately 25–50 phones, equivalent to roughly one conventional server. ## Applications for Education and Research - Many university workloads—including Jupyter notebooks, grading systems, and research applications—require modest resources that a single smartphone can provide. - Early tests showed that a 20-phone cluster could handle peak grading demand for a class of more than 75 students while achieving latency below a typical AWS backend. - The planned 2,000-phone cluster could support around 100 comparable classes simultaneously. - The deployment would provide approximately 50 server-equivalents at substantially lower cost. ## Testing Computing at Scale - The project will evaluate whether consumer smartphone hardware can operate reliably under sustained datacenter workloads. - It will also serve as a large-scale testbed for distributed smartphone computing. - The system is expected to launch at UC San Diego in fall 2026. Repurposing retired phones offers a practical way to reduce demand for newly manufactured computing hardware, especially for lightweight academic and cloud workloads. The approach is most promising when applications can tolerate distributed resources and the reliability challenges of consumer-grade components.

discord

Discord Patch Notes: May 4, 2026 (opens in new tab)

Discord’s May 4, 2026 patch focuses on reliability, performance, usability, and server administration. Major improvements include nearly 5% faster Android video startup, reorganized desktop settings, faster Soundboard access, and self-updating Linux support. The release also fixes numerous bugs across account profiles, search, payments, moderation, notifications, and mobile platforms. ## Performance and Platform Improvements - Android video startup improved by 4.89%, bringing average feed startup time below 600 milliseconds. - Soundboard data now loads when users join a voice channel rather than when they first open the Soundboard, reducing initial access time. - Linux now uses Discord’s Rust-based automatic updater, eliminating the need for manual update installation. - Linux installation now supports `.rpm` and `.pkg.tar.zst` packages. ## Server Administration and Moderation - Discord fixed several issues affecting server administrators and moderators. - Fixes covered permissions, user states, and interactions with account-safety systems. - Discord encouraged administrators to report remaining problems through its community bug megathread. ## Desktop Settings and Organization - Desktop settings were consolidated into three pages: - Appearance - Accessibility - Developer - The former Appearance, Accessibility, Chat, Streamer Mode, and Advanced sections were reorganized. - Several settings received clearer wording and improved layouts. - Fixed problems involving theme synchronization, profile editing, unsaved-change warnings, currency labels, and server administration prompts. ## General User Interface Fixes - “GODLIKE!!” and “BEYOND GODLIKE!!” copy-username messages now have opaque backgrounds. - The Quick Switcher can now accept invite links, join the associated server, and navigate to it. - Fixed display problems involving long nicknames, search filters, avatar controls, profile links, status indicators, and Nitro badges. - French users can now search for “sondage” without the search term being incorrectly split. - Android search filters now correctly display their active blue state. - Fixed several modal, button-spacing, and navigation issues across desktop and mobile. ## Profiles, Avatars, and Customization - Per-server avatar links now copy correctly instead of copying the main profile avatar link. - Clearing per-server pronouns no longer repopulates them from the main profile; the main pronouns appear only as a placeholder. - iOS no longer switches unexpectedly to a per-server profile after copying a username. - Recent-avatar delete controls now appear correctly. - Custom Status editing opens above the full profile instead of replacing it. - Fixed an issue where clicking outside profile editing discarded changes without warning. ## Notifications, Search, and Media - Desktop Inbox no longer crashes when many notifications are cleared rapidly. - Mobile search tabs for Media, Pins, Files, and Links no longer spam errors or retry repeatedly after a connection loss. - Expired public image links in the Inbox preview now behave more reliably. - Fixed an issue where long mobile search-result nicknames obscured timestamps. ## Payments and Server Boosting - Server Boost marketing audio now stops when users enter the purchase flow. - Pressing Escape during payment no longer closes the underlying Server Boost page instead of the payment window. - Nitro trial recipient checkboxes now select friends correctly. - Fixed overlapping controls in Profile Settings and spacing issues on the domain-connection page. - GBP subscription settings now show the currency’s full name. Discord’s changes combine small interface corrections with measurable performance and platform improvements. Users should receive the fixes progressively, since deployment may still be rolling out across platforms.

gitlab

curl removed from Omnibus-GitLab FIPS packages in 19.0 (opens in new tab)

GitLab will remove its bundled curl from Omnibus-GitLab FIPS packages beginning with version 19.0 and use the customer’s Linux distribution package instead. The change is driven by curl 8.18.0 dropping support for OpenSSL 1.x and extends GitLab’s existing approach of relying on distribution-provided cryptographic libraries. GitLab instances should continue working normally, but customers will become responsible for keeping curl updated. ## Change to FIPS Packages - Starting with Omnibus-GitLab 19.0, FIPS packages will no longer include a GitLab-built curl. - The package will use curl supplied by the customer’s Linux distribution. - The change applies to all FIPS customers and will also be included in patch releases for existing supported versions. - GitLab 19.0 is scheduled for May 21, 2026. ## Why GitLab Is Making the Change - curl 8.18.0 deprecated compilation against OpenSSL 1.x. - This prevents GitLab’s previous curl-building approach on: - Amazon Linux 2 - AlmaLinux 8 - RHEL 8 environments - FIPS packages already use distribution-provided OpenSSL rather than bundled cryptographic libraries. - GitLab is extending that model to curl for maintainability and security, including on systems using OpenSSL 3.0 or newer. ## Customer Responsibilities - No immediate configuration or migration action is required. - Customers must keep their operating system’s curl package updated to receive security fixes. - Security scanners will report the host OS curl version instead of a GitLab-bundled version. - GitLab will no longer ship curl-specific security updates for FIPS packages. Customers experiencing problems should report them in the Omnibus-GitLab issue tracker.

discord

Discord Patch Notes: April 6, 2026 (opens in new tab)

Discord’s April 6, 2026 patch focuses on performance, accessibility, media sharing, and a broad set of usability fixes across desktop, iOS, Android, and Linux. The most notable improvements reduce desktop voice-channel deadlocks by about 30% and reduce iOS image-upload sizes by 17% and latency by 12%. Discord also continues a major accessibility audit while addressing numerous navigation, layout, search, and platform-specific bugs. ## Performance and Media Sharing - Desktop changes reduced deadlocked Voice threads by approximately 30%, making users less likely to remain stuck on “Connecting.” - iOS image uploads now use files roughly 17% smaller and complete about 12% faster. - Mobile landscape mode was improved by calculating padding on a screen-by-screen basis rather than relying on global padding rules. - Android server reordering now scrolls more smoothly. ## Accessibility Improvements - Discord is continuing a large accessibility audit across its clients. - Fixes addressed keyboard focus rings, button alignment, text overflow, and controls becoming inaccessible in longer languages. - Desktop profile buttons, settings controls, and the Server Invite modal received layout and focus improvements. - Discord encourages users to report remaining accessibility problems through its bug-reporting channels. ## Search, Navigation, and Account Behavior - Search negation now works correctly with filters such as `has:-image`. - The desktop `CMD/CTRL+F` shortcut no longer opens server search while a modal is active. - Browser-style back and forward navigation now behaves correctly after switching accounts. - Opening a Discord link from a browser no longer replaces the current channel without preserving a usable way to return. - Fixed several Settings and modal-navigation problems, including unexpected jumps to the bottom of the page. ## Desktop and Settings Fixes - Corrected keybind-button alignment and keyboard focus positioning. - Fixed profile buttons extending beyond the visible area in languages with longer text. - Shop item modals can now be closed by clicking outside them at minimum window height. - Profile bio changes are properly cleared by the Reset button. - Removed a persistent “NEW” badge from the `@time` command. - Corrected outdated role designs in Server Template previews. - Fixed visual issues involving nameplates, profile banners, Nitro perk badges, and Shop error-message spacing. - The Desktop update indicator no longer appears clickable while an update is still downloading. ## Mobile and Platform-Specific Fixes - Wayland now properly detects when Linux users become active or go AFK. - Android now provides visual confirmation after sending a friend request through a QR code. - Android theme changes update the entire Settings interface immediately. - Android QR-code login buttons now appear active when usable. - Android’s In-App Browser setting correctly opens links inside Discord. - iOS users can now switch out of Invisible status reliably. - iOS server lists no longer jump when switching servers. - iOS Server Guide progress bars and welcome messages now display and dismiss correctly. - Fixed an iOS crash that could occur when canceling a Nitro Classic subscription. - iOS search results now display images in bot-message containers at the correct size. ## Messaging, Profiles, and Social Features - Removed duplicate friend suggestions for users who had already received a request. - Fixed incorrect profile connection icons for external links. - Corrected duplicate usernames shown in pending friend-request tooltips. - Channel-name inputs no longer incorrectly offer custom emoji, which channel names do not support. - Student Hub join-method filtering now works properly. - Server Tags and badges received alignment fixes on Android. - The Nitro gift emoji picker’s “Add Emoji” button now functions correctly. Discord recommends updating as fixes reach each platform, with additional early testing available through the iOS TestFlight release.

meta

Investing in Infrastructure: Meta’s Renewed Commitment to jemalloc (opens in new tab)

Meta is renewing its commitment to jemalloc, recognizing its long-term role in delivering reliable and efficient infrastructure alongside the Linux kernel and compilers. After acknowledging that short-term decisions created technical debt and slowed development, Meta has unarchived the original repository and begun rebuilding a long-term roadmap. The effort will focus on modernization, reduced maintenance, hardware adaptation, and closer collaboration with the open-source community. ## Why jemalloc Matters - jemalloc is a high-performance memory allocator used as a foundational component of Meta’s software stack. - It has adapted to changing hardware and workloads over time. - Its impact is comparable to other core infrastructure components such as the Linux kernel and compilers. ## Reflecting on Technical Debt - Meta says recent development gradually moved away from the rigorous engineering principles needed for foundational software. - Some changes provided short-term benefits but introduced technical debt. - That debt increased maintenance burdens and slowed future progress. - Community feedback, including discussions with jemalloc founder Jason Evans, prompted Meta to reassess its stewardship. ## Renewed Development Priorities - **Technical debt reduction:** Clean up, refactor, and improve the codebase to make jemalloc more efficient, reliable, and maintainable. - **Huge-page allocation:** Continue improving the hugepage allocator (HPA) and its use of transparent hugepages (THP) to improve CPU efficiency. - **Memory efficiency:** Optimize memory packing, caching, and purging mechanisms. - **AArch64 support:** Improve out-of-the-box performance on ARM64 systems. - **Hardware and workload adaptation:** Continue evolving jemalloc for current and emerging platforms. ## Open-Source Collaboration - The original jemalloc repository has been unarchived. - Meta intends to work with the open-source community on the project’s future. - The company acknowledges that renewed trust must come through measurable improvements and sustained development. - Community members are invited to provide feedback, contributions, and collaboration. Meta’s practical next step is to demonstrate its renewed commitment through code cleanup, performance improvements, and transparent collaboration. The project’s long-term health will depend on consistent execution rather than statements alone.

discord

Discord Patch Notes: February 4, 2026 (opens in new tab)

Discord’s February 4, 2026 patch focuses on performance, streaming, permissions, mobile consistency, and bug fixes across desktop, iOS, and Android. The largest improvements include faster desktop rendering, zoomable screenshares, a new Slowmode bypass permission, and continued migration of Discord’s audio/video backend to Rust. The update also adds usability refinements and resolves numerous interface, profile, notification, and stability issues. ## Performance and Infrastructure - Desktop navigation and interaction are significantly faster, especially on systems with limited processing capacity. - The improvements were primarily achieved by replacing slow CSS selectors rather than optimizing APIs or components. - More than 80% of Discord’s audio/video traffic now runs through the Rust-based backend. - Stream previews load substantially faster during the start-stream process. ## Screensharing and Media - Users can zoom and pan screenshares and game streams with a mouse wheel or laptop trackpad. - Android now correctly plays videos containing multiple audio tracks, such as microphone and game audio. - Currently playing voice messages stop correctly when users log out. - Android Group DM notifications now show the group name instead of the sender’s name, matching iOS behavior. ## Server Permissions and Time Formatting - A new **Bypass Slowmode** permission lets server administrators trust selected members to bypass slowmode restrictions. - The permission can be integrated into existing roles through Role Settings until February 23. - Desktop now includes an `@time` command for generating localized Linux timestamps that automatically adapt to each viewer’s time zone. ## General Usability Improvements - Vibing Wumpus has been updated to version 2.0 and can be summoned with: - `Ctrl+Alt+Shift+W` on Windows/Linux - `Cmd+Option+Shift+W` on macOS - Pressing Escape while editing a desktop profile no longer closes the entire profile modal. - Copying with nothing selected no longer clears the clipboard. - Browse Channels on mobile has officially left beta. - Clicking role mentions now shows users assigned to that role for all stable users. - Invite Friends to Server supports both usernames and display names. - Ignoring a friend request correctly changes the action from “Accept Friend Request” to “Add Friend.” ## Profile, Themes, and Server Interface Fixes - Fixed cursor-jumping while editing the About Me section. - Avatar Decorations now render correctly in per-server profile editing. - Profile Theme gradients fill their modal correctly. - Server tags now appear accurately in desktop profile previews. - Fixed alignment and styling issues in Members, Emoji, Connections, and Display Name Styles interfaces. - iOS Client Themes no longer scroll at extremely high speed. - Channel categories on iOS no longer resemble unread channels. - Android no longer displays an extra bottom bar that blocks interaction. ## Stability and Bug Fixes - Fixed crashes involving related stickers in servers without text channels. - Prevented duplicate Checkpoint and gift-reception modals. - Emoji editing no longer creates duplicates when Finish is clicked twice quickly. - Desktop Inbox filtering works correctly again. - Fixed a desktop lockup that could occur after adding a game to a profile without saving. - Mobile Community setup now renders properly. - The Shop displays multiple columns correctly on affected Android devices. - Keybinds involving keys above F10 now persist correctly. - Event previews properly render Markdown. - On iOS, GIF avatars selected through the GIF picker remain animated instead of becoming static images. - Additional fixes address onboarding overlays, dangerous-download modal spacing, role selection transparency, event buttons, server uploads, and localized status text. Discord’s update is primarily a quality and performance release. Users should see the greatest immediate benefits from faster desktop interactions, improved streaming controls, better mobile behavior, and more precise server administration tools, although individual fixes may continue rolling out by platform.

datadog

Scaling real-time file monitoring with eBPF: How we filtered billions of kernel events per minute (opens in new tab)

File integrity monitoring must provide more than proof that a file changed: security teams need to know how, why, and by whom it changed. Datadog found that filesystem scans, inotify, and auditd could not provide sufficient context, reliability, or scalability. An eBPF-based approach delivered kernel-level visibility into processes and containers, but required extensive filtering and edge processing to handle more than 10 billion events per minute. ## Why Traditional Monitoring Falls Short - Periodic scans can miss changes that are made and reverted between scans. - Scans show that a file changed, but not the process, container, or mechanism responsible. - `inotify` lacks the system-level context needed to correlate file events with processes and containers. - `auditd` offers richer information but can impose significant performance overhead and struggle under heavy load. ## eBPF for Context-Rich File Monitoring - eBPF observes file activity directly in the Linux kernel in real time. - Events can include: - The modified file - The process that triggered the change - The container in which the process ran - Additional security-relevant metadata - This context makes events more useful for investigations than simple “file changed” notifications. ## Scaling at the Agent and Backend - Datadog observed more than 10 billion file-related events per minute across its infrastructure. - Each serialized event was approximately 5 KB, making unrestricted transmission infeasible—potentially several terabytes per second. - Sending every event would also overload Agents through excessive CPU, memory, serialization, and network usage. - Agent-side rules filter events locally, discarding noise before transmission. - This reduced the stream to roughly one million events per minute while preserving detection coverage. ## Filtering Events in the Kernel - A basic architecture loads eBPF programs into the Agent, observes system activity, writes events to a ring buffer, and evaluates them in user space. - Sensitive workloads can generate up to 5,000 relevant syscalls per second. - Initial implementations risked ring-buffer backlogs and dropped events, creating security blind spots. - Datadog moved as much evaluation as possible into eBPF programs to reduce the number of events reaching user space. - The Agent could then perform a deeper second-stage evaluation before forwarding events to the backend. ## Two-Stage Evaluation: Approvers and Discarders - eBPF’s safety constraints limit computation, especially on older Linux kernels. - The system therefore separates evaluation into: - **In-kernel filtering:** Lightweight decisions that quickly approve or discard events. - **User-space evaluation:** More complex analysis using richer context, correlations, and logic unsuitable for the kernel. - This design balances kernel safety and performance with the need for detailed security detection. Datadog’s approach shows that scalable FIM requires combining eBPF’s deep visibility with aggressive filtering at the edge and in the kernel. The practical recommendation is to keep expensive analysis in user space while rejecting irrelevant events as early as possible.

datadog

How we tracked down a Go 1.24 memory regression across hundreds of pods (opens in new tab)

Go 1.24 initially caused an unexpected ~20% increase in memory usage across several services, despite its Swiss Tables implementation being expected to reduce memory consumption. The increase appeared in system-level RSS metrics but not in Go’s runtime metrics or heap profiles. Investigation showed that a runtime allocator refactor likely caused more of the Go heap’s virtual memory to be committed to physical RAM. ## The Unexpected Go 1.24 Memory Increase - The issue emerged during an internal rollout of Go 1.24. - Multiple environments showed approximately 20% higher memory usage. - A staging bisect directly linked the increase to the Go 1.24 upgrade. - The behavior was surprising because Go 1.24’s headline Swiss Tables feature promised lower CPU and memory overhead. ## Ruling Out Swiss Tables and Mutex Changes - Swiss Tables were disabled with: ```bash GOEXPERIMENT=noswissmap ``` - Memory usage did not improve, ruling out the new map implementation as the cause. - The new spin-bit mutex implementation was disabled with: ```bash GOEXPERIMENT=nospinbitmutex ``` - The memory increase remained, eliminating this runtime change as the likely culprit. ## System Metrics vs. Go Runtime Metrics - Go runtime metrics showed almost no change after the upgrade. - System metrics reported a significant increase in resident set size (RSS). - RSS measures physical memory currently used in RAM, while Go’s runtime accounting primarily reflects allocated virtual memory. - This discrepancy matters operationally because systems such as Kubernetes and the Linux OOM Killer rely on physical-memory metrics. ## Examining the Go Heap with `/proc/[pid]/smaps` - Linux’s `/proc/[pid]/smaps` exposed memory usage for individual mappings. - In Go 1.24, the main Go heap mapping had roughly: - 1.28 GiB of virtual memory allocated - 1.26 GiB resident in physical RAM - In Go 1.23, a similarly sized heap mapping had about 300 MiB less RSS than its virtual size. - Other memory regions were not significantly affected, indicating that the increased RSS was isolated to the Go heap. - Upstream changes to label Go-allocated memory regions should make future `maps` and `smaps` investigations easier. ## The Suspected Allocator Regression - The evidence suggested Go 1.24 was not requesting substantially more virtual memory. - Instead, previously uncommitted virtual memory was being committed to physical RAM, increasing RSS without changing Go’s internal memory totals. - A major refactoring of the runtime’s `mallocgc` function stood out in the Go 1.24 changelog. - The investigation therefore focused on this allocator change as the likely source of the regression. Go 1.24’s memory increase was caused not by Swiss Tables or mutex changes, but likely by altered heap allocation behavior in the runtime. Comparing RSS with Go’s runtime metrics—and inspecting `/proc/[pid]/smaps`—was essential for identifying the allocator-related discrepancy.

discord

How to Stream Games and Applications to Discord from Desktop or Mobile (opens in new tab)

Discord lets users stream games, applications, or entire screens from desktop and mobile while in a voice call. Desktop users can choose between sharing a specific application or their whole screen, while mobile users can only share everything displayed on their device. Stream quality, audio support, and available features vary by platform, with Nitro offering higher-resolution streaming options. ## Streaming from Desktop - Works on Windows, macOS, and Linux. - Join a voice call in a server channel or DM. - Select the screen-sharing button, then choose: - A specific application or game - The entire screen - A capture device - Adjust stream quality and select **Go Live**. ## Streaming from Mobile - Available on iOS and Android smartphones and tablets. - Open a voice call and expand the bottom options menu. - Tap **Share Your Screen** and confirm using the device’s streaming controls. - Mobile streaming shares the entire screen, including notifications and device audio. - Users should mute notifications to avoid exposing private information. ## Sharing an Application vs. the Entire Screen - **Share Application** - Shows only the selected game or application. - Can include audio from that application without sharing sounds from other apps. - Helps keep unrelated content and notifications private. - **Share Entire Screen** - Shows everything visible on the display. - Can share system audio from all applications. - Viewers may see notifications, messages, or other sensitive content. - Mobile devices only support full-screen sharing. ## Audio Support by Platform - Windows, the mobile app, and Chrome support application audio sharing without additional setup. - macOS supports audio streaming on macOS Ventura or later. - Audio sharing is unavailable through non-Chrome browsers and on Linux at the time of publication. ## Choosing Stream Quality - **Smoother Video** prioritizes frame rate by reducing resolution, making it better for fast-moving games. - **Better Text Readability** preserves the application’s resolution while lowering frame rate, which is useful for documents, artwork, or homework. - Discord Nitro provides HD streaming at higher resolutions and up to 60 frames per second. Choose application sharing when privacy and focused audio matter; use full-screen sharing when viewers need to see everything. On mobile, review notifications and other visible content before starting because the entire device screen will be broadcast.

discord

Discord Patch Notes: February 3, 2025 (opens in new tab)

Discord’s February 3, 2025 patch focuses on faster startup, more reliable infrastructure, improved notifications, and extensive usability fixes across desktop and mobile. Major changes include a roughly 20% improvement in median Android launch times, a Rust rewrite of the Media Proxy service that reduced aggregate latency by about 22%, and substantially improved push-notification delivery. The release also adds desktop DM Apps, redesigns Privacy & Safety settings, and addresses numerous platform-specific bugs. ## Performance and Reliability - Android app initialization improvements reduced launch times by approximately 20% on the median Android device. - Discord rewrote its Media Proxy service from Go to Rust and modernized its infrastructure: - Aggregate latency improved by about 22%. - Latency at the 90th percentile improved by more than 40%. - Service reliability also improved. - Push-notification reliability increased across server sizes: - Servers with fewer than 2,500 users now achieve a 99.98% delivery rate within 30 seconds. - Discord can notify approximately 20 million users on large servers such as Midjourney within 15 minutes of an `@everyone` mention. - Android 13 and earlier received fixes for layout failures caused by device rotation and incorrect screen-size calculations. ## New Features and Interface Updates - Desktop users can now launch Apps directly in DMs. - A quick-launch bar displays recently used Apps at the top of the DM list. - Privacy & Safety settings were redesigned with: - A new tab structure. - Better grouping and clearer descriptions. - Improvements intended to support future Trust settings. - macOS desktop notifications now use native operating-system APIs: - Message sounds respect Focus and Do Not Disturb modes. - Multiple notifications from the same channel can be grouped. - Desktop search now autocompletes `from:me` and `mentions:me`. - Linux now supports Soundshare and Wayland screen sharing, including video and audio support on Ubuntu 22 and later. - Mobile users can edit server invite links while inviting someone. - Push notifications now include user nicknames. ## General Bug Fixes - Fixed UI and layout problems involving: - Forum channel tag editing. - Overlapping channel-topic modals. - Incorrect friend-request layouts at narrow desktop widths. - Misaligned images, padding, borders, and animations across Shop, Quests, profiles, and reaction pickers. - Resolved Android issues involving duplicated channel-name letters, hidden confirmation dialogs, incorrect toast positioning, keyboard overlap, and navigation-bar padding. - Fixed mobile and iOS issues affecting: - Search-result counts and back-swipe navigation. - Text-entry scrolling during channel searches. - Excessive zooming. - Animated Emojis stopping after interaction. - Nitro Home back-swipe navigation. - Corrected problems with Privacy & Safety tabs being cropped or nonfunctional. - Improved reliability for the Claimed Quests interface, especially for users with many completed Quests. - Fixed profile customization issues related to Nitro Credit. - Corrected custom status duration behavior. - Resolved issues with mutual-friend and mutual-server views getting stuck loading. - Fixed Emoji picker server filters and enabled editing of Emoji forum tags whose associated Emoji had been deleted. - Corrected several Shop, tablet banner, profile-effect, and mobile DM layout issues. Overall, the patch combines measurable backend performance gains with a broad collection of cross-platform fixes. Users should see faster Android launches, more dependable media uploads and notifications, improved desktop and mobile navigation, and fewer layout and interface failures.

discord

Discord Patch Notes: November 1, 2024 (opens in new tab)

Discord’s November 1, 2024 patch focuses on improving performance, reliability, responsiveness, and cross-device usability. Major updates include stronger foldable-device support, better mobile multitasking and side-by-side views, macOS screen-sharing keybinds, and website performance gains of up to four seconds in average page-load time. The release also fixes a broad range of interface, messaging, theming, and platform-specific bugs. ## Foldable Devices and Multitasking - Foldable devices receive improved support designed to work more reliably without bespoke fixes. - Mobile Discord now handles resizing more intelligently for Sidecar, split-screen, and other multitasking layouts. - Users are encouraged to report remaining foldable-device issues through Discord’s bug megathread or support tickets. ## Desktop and Web Performance - Electron was upgraded from version 30 to version 32 on Windows, macOS, and Linux. - Discord.com received performance improvements that reduce average page-load times by up to four seconds. - Additional core web vitals and responsiveness were improved. - macOS 15 and later now support a keybind for toggling screen sharing, available under **User Settings > Keybinds**. - Friend links opened in a browser now properly communicate with the running desktop client. ## General Interface and Platform Fixes - Fixed missing profile-screen actions, incorrect profile banner zoom, navigation-bar rendering issues, and mobile layout shifts. - Corrected avatar decoration overlap with unread-message status indicators. - Fixed notification bubble shapes, emoji-picker category navigation, theme colors, keybinding icon colors, and long category-name handling. - Improved profile banners and Server Guide text rendering on foldable devices and iOS. - Fixed issues involving onboarding prompts, the App Launcher, Mod View, channel permissions, and role assignment through Simplified Profiles. - Corrected Shop problems involving banners, scrolling, collection tile shapes, and app-button icon colors. - Poll answers can now be selected and copied. - Fixed overlay custom-emoji visibility, profile-effect controls, Nitro gifting padding, and collectible purchase wording. - X.com embeds no longer incorrectly interpret embed content as Markdown. - Fixed several mobile and desktop rendering problems, including channel settings flashes, emoji alignment, and profile layout behavior. ## Chat and Messaging - Corrected oversized emoji rendering in chat. - Fixed mobile Voice Message tooltips, input placement, and animation behavior. - Deleted messages should no longer briefly remain in mobile DM previews. - Fixed an iOS issue where drafts persisted between channels and another where text scaling changed after the keyboard collapsed. - Users can open profiles by clicking names in reply previews. - Prevented rapidly renaming a newly created thread from creating duplicate threads. - Fixed thread-creation theming issues and swipe actions during chat animations. - Corrected mobile notification settings appearing incorrectly in DMs. - Fixed iOS emoji alignment problems in messages. Overall, the patch is primarily a quality-of-life release: users should see better performance across web and mobile, more dependable support for foldables and multitasking, and fewer visual and interaction bugs.