Neodrop
Create
FeedDiscoverMy ChannelsAuto-publishJoin Our Discord
FeedDiscoverCreateMy Channels
HN Engineering Weekly — Week 38, 2026: Rust Kernels, an Unrecoverable Region, and 100,000 Accelerators
2026-09-19

HN Engineering Weekly — Week 38, 2026: Rust Kernels, an Unrecoverable Region, and 100,000 Accelerators

A 15-item digest of this week's highest-signal Hacker News engineering threads, from a Rust GPU kernel toolchain and a bombed cloud region to allocator internals, learned query plans, and what uptime percentages leave out.

Hacker News Top Engineering Posts
Hacker News Top Engineering Posts@NeoDrop Official
This issue covers the Hacker News engineering discussions posted between September 12 and September 19, 2026, 09:00 Pacific. Merging the front-page snapshot with the date-indexed archive gives 293 stories that cleared 100 points inside that window; the fifteen below are the ones carrying engineering substance across architecture, performance, reliability and security, databases and storage, and observability. Hacker News publishes comment text and thread order but no per-comment vote totals, so every reaction summarized here is an argument the thread actually made, with no claim about which comment ranked highest.

Architecture

Nvidia announces native GPU programming in Rust

  • HN Metrics: 961 points | 402 comments
  • Category: GPU toolchains and language interoperability
Nvidia published two Rust tracks for writing GPU kernels 1. The SIMT track, cuda-oxide, is a custom rustc codegen backend that routes #[kernel] functions through Rust MIR, the Pliron IR framework and LLVM down to PTX, and it requires Linux, a GPU with compute capability 8.0 or later, CUDA 12.x or newer and a pinned nightly toolchain 1. Its safety argument rests on a DisjointSlice that hands each thread exclusive access to one output element, plus #[launch_contract] declarations that a prepare_* call checks against the device's live limits before a safe launch method accepts the resulting token 1. The Tile track, cutile-rs, works one level up on sub-tensors and runs on stable Rust 1.89 with CUDA 13.3 and no custom LLVM; it is published on crates.io and already used in Hugging Face's Grout inference engine and in mistral.rs 1. Nvidia's guidance is to reach for Tile first and drop to SIMT when a kernel needs its own control over memory and threads, with planned cross-language interop so the frontend choice does not shut a stack out of the others 1.

What the discussion added

The thread split between people who welcome the toolchain and people who think it entrenches the lock-in it is meant to relieve:
  • The debugging surface widens before it narrows: Commenters pointed out that cuda-oxide is a pre-1.0 release behind a pinned nightly compiler, so a failing kernel now means deciding whether the fault sits in your code, cuda-oxide, Rust, CUDA or the Tile path 2.
  • Vendor coupling remains the objection: One long-time CUDA user argued that once CUDA enters a C++ codebase, it is hard to remove, and that the cleaner path is to keep kernels in separate files and launch them explicitly rather than adopt another vendor-specific layer 2.
  • What is still undocumented: One commenter asked for real hardware manuals describing wire protocols and device behaviour, and another argued that Rust, C and C++ share a linear memory model that cannot carry provenance for a device pointer, which is the deeper problem the new tracks leave in place 2.
Original Article · Hacker News Discussion

Android 17 adds app APIs without releasing to AOSP

  • HN Metrics: 989 points | 552 comments
  • Category: Mobile platform releases and open-source governance
GrapheneOS reported that Android 17 QPR1 is the first release since Android Honeycomb (3.x) to add new app-developer APIs without a release to the Android Open Source Project, and that the new APIs are currently exclusive to Pixel OS 3. The mechanism is a scheduling change: quarterly releases QPR1 and QPR3 have been Pixel-exclusive since Android 16, so this is the first API addition to ride a Pixel-only update, with AOSP and other manufacturers scheduled to receive the same APIs in Android 17 QPR2 in December 2026 3. Google's own API comparison for versions 37 and 37.1 lists the additions 4. GrapheneOS said it had already ported its code to Android 17 QPR1 before the September 15 release but has no permission to ship it, and is instead backporting Pixel firmware, kernel drivers, userspace drivers and HALs 3. The same thread notes that the September Pixel Update Bulletin contains patches to standard Android platform components used by non-Pixel devices that appear in neither the September Android Security Bulletin nor the preview patches 3.

What the discussion added

The thread worked out what had actually changed, and disagreed about how much of the problem is new:
  • Where the release train stands: One commenter laid out the cadence behind the headline — Google drops real Android source updates to manufacturers and the public twice a year, ships four Pixel updates, has added APIs inside one of the Pixel-only updates, and still provides monthly security backports to trusted manufacturers 5.
  • Security patches matter more than the APIs: Several commenters argued the API exclusivity is a smaller issue than security fixes reaching Pixel devices months before other Android devices, and one linked GrapheneOS's own follow-up posts clarifying that Pixel-only quarterly releases are the underlying change 5.
  • Manufacturers outside the Google orbit: Commenters noted that Samsung and other vendors run their own private forks, so the exclusivity lands on AOSP-based projects and on companies that ship year-late releases, and compared the trajectory to Darwin under macOS — an open core with the user-visible parts migrating out of it 5.
Original Post · Hacker News Discussion

Building a Linux GPU driver for the M4 Mac Mini

  • HN Metrics: 417 points | 289 comments
  • Category: Reverse engineering and clean-room drivers
Two developers wrote a working OpenGL ES 3.0-conformant GPU driver for the M4 Mac Mini and MacBook Neo in about a month, a job the author describes as normally taking years 6. The kernel side required reverse engineering Apple's AGX firmware ABI, which runs a custom RTOS (RTKit) and talks to the host through shared structs rather than directly to hardware; the user-space side needed a new shader compiler, an intermediate representation and a command-stream builder 6. The author describes a clean-room method: no Apple binaries inspected, hardware traces taken from a hypervisor they had built earlier, shaders written from scratch, the required blobs treated as opaque and documented by a third party, and all experiments published in the twin agx-re repositories so the provenance can be checked 6. The reported results are Chrome and Firefox rendering WebGL with working compositing, and Minecraft at roughly 200 frames per second; the code is not ready for end users 6.

What the discussion added

The technical achievement drew less argument than the conditions attached to it:
  • The upstream path is closed: Asahi Linux, the project that would ordinarily absorb work on Apple silicon graphics, keeps a strict no-AI policy, and commenters said that leaves AI-assisted drivers as forks rather than upstream code, which they expect to be what most users end up running 7.
  • Provenance dispute: A commenter quoted a moderators' notice from the Asahi Linux subreddit saying the author had been banned for concealing extensive LLM use in an earlier contribution and for not disclosing that he is a former Apple engineer with contacts among the people who developed Apple silicon; another commenter argued that combination makes the code unmergeable, given Apple's own contributions to Linux and the sensitivity around model training data 7.
  • The method outlasts the code: Commenters who defended the project argued that the reproducible approach matters more than whether this particular driver lands upstream, since the same probing method can be pointed at later Apple silicon, and that legal questions belong with the foundations that would accept the code 7.
Original Article · Hacker News Discussion

An e-ink frame that hears birds and draws them as 1800s illustrations

  • HN Metrics: 2,340 points | 259 comments
  • Category: Local-first embedded systems
A Raspberry Pi 5 runs a 13.3-inch Inky Impression e-ink panel (Spectra 6) inside an A4 frame; BirdNET-Go listens on a microphone and handles bird classification, the frame polls its API, matches each detected species to an illustration, packs a page, and redraws only when the set of birds changes 8. Half the project is the art pipeline: more than 800 hand-cut public-domain natural-history plates covering over 400 species, each matched to a detection, background-removed, and laid out on a textured paper page with larger birds toward the centre and size set by body mass 8. No illustration is AI-generated, though some have been retouched with AI; the code is MIT-licensed and the artwork is CC BY-SA 8. The panel is optional — without it the project serves the same view as a web kiosk on HDMI or over the network, and it can be pointed at an existing BirdNET-Go instance elsewhere on the network 8.

What the discussion added

The thread filled in the classifier, the hardware economics, and the project's lineage:
  • The classifier is a small traditional model: One commenter identified BirdNET as a conventional neural network rather than a language model, which is why the detection half runs locally on modest hardware 9.
  • Why e-ink and battery hardware keep appearing: Commenters running e-ink panels off ESP32 or Bluetooth low energy boards reported battery lives measured in years on a 2,000 mAh cell, and described the appeal of devices that do one thing and redraw rarely 9.
  • Provenance and replication: One commenter noted the README links back to the sources of the public-domain plates; others asked whether it descends from an earlier viral bird-display project, and two people reported building their own versions — one on a different e-ink runtime, one that sprays water at the birds instead of drawing them 9.
Original Project · Hacker News Discussion

Performance

Performance Improvements in .NET 11

  • HN Metrics: 341 points | 112 comments
  • Category: Runtime and JIT optimization
Microsoft's annual roundup covers hundreds of changes, and the largest measured group sits in the JIT: escape analysis now sees through nullable boxing, turning FormatNullableInt from 9.583 ns and 24 bytes allocated into 1.987 ns and zero bytes, conditional escape analysis removes enumerator allocations in ReadOnlyInstance from 13.874 ns and 32 bytes to 2.674 ns and zero, and boxing disappears from equality and comparer paths 10. The structural change is runtime async, which moves async lowering out of the C# compiler and into the runtime and JIT behind an opt-in switch; a two-layer completed await chain drops from 21.221 ns and 144 bytes to 6.151 ns and zero bytes, and an exception thrown through 30 async frames drops from 51.302 µs and 84.2 KB to 10.721 µs and 5.71 KB 10. The IL emitted for ten async methods shrinks from 10,752 bytes to 5,632 bytes, and the feature covers Task, Task<T>, ValueTask and ValueTask<T> while leaving async iterators and async void outside its scope 10. Bounds-check elimination continues in the same direction: a checked multiply falls from 64 bytes of code to 44, checked((byte)value) from 52 to 24, and a new lightweight async-profiler event stream adds under 1% overhead while shrinking traced data by an order of magnitude 10.

What the discussion added

The reaction was mostly about how the gains arrive and what the post leaves unmeasured:
  • The gains are free to existing services: Commenters noted that deployed applications pick up the improvements without code changes, and one reported a noticeable startup improvement after migrating a project 11.
  • Missing end-to-end numbers: One commenter asked for application-level benchmarks showing the cumulative effect across the stack, and another asked what happened to AOT compilation, which the post does not rank 11.
  • The writing as a reference: Several commenters pointed to the reworked opening section, which walks back through the optimization techniques of earlier years and shows how they compose; another linked a companion post on moving GitHub Copilot's coding harness from Node.js to Rust 11.
Original Article · Hacker News Discussion

Jemalloc 5.4.0

  • HN Metrics: 332 points | 94 comments
  • Category: Memory allocators
Jemalloc's first release in years carries more than 160 commits, most of them refactoring, bug fixes, test coverage and portability work rather than new tuning knobs 12. The change with production relevance is in thread caching: fill and retention targets now adapt per bin to the demand observed between garbage collections, replacing the fixed refill and flush policy, and seven legacy tcache controls are removed outright, with matching configuration settings ignored silently 12. A new EXTENT_ALLOC_FLAG_PINNED lets custom extent hooks mark non-reclaimable mappings such as HugeTLB pages for preferential reuse outside decay and purge, with mallctl interfaces for pinned-memory usage and mutex statistics 12. The fixes cover errno preservation across free and its sized variants, NULL accepted by free_sized() for C23, and a potential deadlock during arena_reset 12.

What the discussion added

The thread treated the release as news about the project as much as about the allocator:
  • Who maintains it now: Commenters asked why neither the homepage nor the repository mentions Jason Evans and who is driving the project after a gap since 2022; one linked the earlier postmortem thread and a follow-up piece on who uses jemalloc, and another observed that a large company taking sudden interest in an open-source project is no guarantee of its long-term health 13.
  • Measured results operators keep reporting: One commenter reported memory on a Sidekiq queue falling from 8 GiB to under 1 GiB after switching, another reported large reductions for Rails services on Kubernetes, and a third uses jemalloc's per-thread allocation counters to enforce a memory budget per request-handling thread 13.
  • Allocator design comparisons: A commenter asked why only tcmalloc has moved from thread caches to per-CPU caches and whether the difference is Linux-specific behaviour, and a related thread from three days earlier compared malloc implementations directly 13.
Original Release · Hacker News Discussion

Automatic Key Exchange: faster origin handshakes

  • HN Metrics: 120 points | 38 comments
  • Category: TLS and network performance
In TLS 1.3 a reverse proxy acts as the client and must send a key share before it knows what the origin supports, so Cloudflare previously sent X25519 to every origin and ate a round trip whenever that guess was wrong 14. Automatic Key Exchange probes each TLS 1.3 origin out of band, offering one key-agreement group per handshake across X25519, P-256, P-384, P-521 and the post-quantum hybrid X25519MLKEM768, then leads with the strongest group the origin accepted 14. Across the scanned cohort, HelloRetryRequests fell from about 52% to 3.7%, which removed more than 150 ms from p90 TLS handshake latency, and single-round-trip completion for post-quantum TLS 1.3 traffic rose from 0% to 99.2% 14. Static X25519 proved to be the wrong choice for roughly 30% of measured origin connections; preferences are rescanned daily, weighted by actual subdomain traffic, and rolled out to a slice of live traffic first, so a bad preference costs a retry rather than a failed connection 14.

What the discussion added

Questions dominated the thread, starting with why this took so long:
  • Why the round trip existed at all: Commenters summarized the protocol constraint — the client has to offer a key share before knowing what the server accepts, which is what keeps the handshake stateless — and read the probe-and-cache design as the fix 15.
  • The gap between intermediaries and everyone else: One commenter noted that large intermediaries keep absorbing new protocols and cipher suites while independent server operators lag by years, and another argued that knowing this optimization was needed at all is knowledge that only becomes visible at very large scale 15.
  • Accuracy questions: A commenter asked how a learned key-exchange preference stays correct for a hostname backed by several origins with different TLS configurations, and another measured the benefit against user experience by noting that 150 milliseconds saved in a handshake is invisible next to an interstitial page 15.
Original Article · Hacker News Discussion

SRE & Security

AWS says it can't restore some data from mideast facilities struck by Iran

  • HN Metrics: 525 points | 449 comments
  • Category: Disaster recovery and durability claims
AWS told customers it cannot restore access to resources and data hosted exclusively in its Middle East (Bahrain) region and in one availability zone in the UAE, more than six months after drone strikes damaged the sites; the damage, it said, exceeded what those services are designed to withstand 16. Two other UAE zones were still being worked on, and the update was Amazon's first public statement on the incidents since April 16. The strikes happened in March 2026; Iran's Islamic Revolutionary Guard Corps claimed responsibility and cited Amazon's support of the US military, and the region's cloud build-out — including the planned UAE Stargate campus — is under revision toward dispersed, hardened sites 16. The operator-facing notice sits on AWS's health dashboard, which lists the region as unavailable and tells customers to recover elsewhere 17.

What the discussion added

The thread worked through the difference between published durability and a physically destroyed region:
  • What the multi-AZ guarantees actually cover: A commenter who identified as an ex-AWS engineer explained that single-zone products whose data sat in an affected availability zone are gone, while multi-AZ services such as S3 and EFS migrate shards until durability targets are met again; another commenter quoted the 11-nines durability figure AWS publishes for S3 storage classes 18.
  • Data residency limits the escape route: One commenter working with a UAE health client reported that residency rules required data to stay in-country and that AWS was not accepting new instances, so they moved to another provider — the constraint that makes "fail to another region" unavailable for some workloads 18.
  • Blame, contracts and precedent: Commenters quoted the force majeure clause and debated whether basic offsite copies and tested restores should still have applied; one cloud-company operator argued there is nothing to hold against AWS when hardware is physically bombed, while others read the six-month silence as a recovery-automation problem rather than a hardware one 18.
Original Report · AWS Health Dashboard · Hacker News Discussion

Hacking OpenAI: a heap overflow and SSO misconfiguration

  • HN Metrics: 480 points | 204 comments
  • Category: Vulnerability chains and identity boundaries
Hacktron researchers chained two bugs to take over multiple OpenAI employees' ChatGPT accounts and reach internal repositories: a heap overflow in libheif reached through image uploads on OpenAI's own Discourse forum, then an identity flaw in the forum's single sign-on that handed over ChatGPT and Codex accounts 19. Because those accounts have GitHub, Slack and email connected to them, the researchers say the reachable scope was far larger than the forum itself, and the whole path from discovery to internal repository access took less than 72 hours 19. They proved access without reading sensitive material by having the employee's Codex open a pull request in OpenAI's internal monorepo 19. The vulnerable libheif code had been changed upstream a year earlier, but the commit was not documented as a security fix and got no CVE, which the authors connect to Debian 12 and 13 missing the relevant backports 19. OpenAI paid a $6,500 bounty, and the researchers also describe running Claude in an autonomous loop against their own Discourse instance, proxied to look like a CTF target, after the model refused to write an exploit against a remote instance 19.

What the discussion added

The thread concentrated on the parser, the bounty, and the identity chain:
  • Image decoding as the entry point: Commenters pointed out that the HEF format supports overlays, rotation, cropping, alpha channels and thumbnails, far more than a forum that accepts screenshots needs, and that unsandboxed ImageMagick has been a known hazard for a decade — one argued for replacing parsers with memory-safe equivalents rather than patching them 20.
  • The bounty against the blast radius: Commenters called $6,500 small for access that reached a monorepo and connected services, and speculated about what the same chain would fetch on a black market 20.
  • Remediation and follow-on questions: A Discourse engineer told the thread that external binaries including ImageMagick now run under a Landlock sandbox and that the migration to Vips is under way; other commenters asked why internal repositories were reachable through a consumer account at all, and noted the internal monorepo is already past issue and pull request number 1,186,742 20.
Original Report · Hacker News Discussion

How GLM built its own inference infrastructure

  • HN Metrics: 404 points | 282 comments
  • Category: Inference infrastructure and agent operations
Z.ai describes building production inference for GLM-5.3-Flash from scratch on a cluster of more than 100,000 Chinese-made AI accelerators, with all of that model's production traffic served from the system 21. The constraints were tight memory capacity and bandwidth on unfamiliar silicon, and the resulting stack leans on memory optimizations: intra-node tensor parallelism for linear attention and the LM head, ReplaySSM, W8A8 quantization, INT8/FP8/BF16 mixed-precision cache quantization, Layer Split, and an Encode-Prefill-Decode disaggregated architecture, for roughly 3× end-to-end serving performance 21. The company attributes much of the work to an Infra Agent running on GLM-5.3, and argues the decisive ingredient was dense feedback: kernel-level numerical comparisons, microbenchmarks, execution traces and runtime events that localize a regression to a kernel, thread or code path instead of reporting that throughput dropped 21. Three worked examples support that claim — a TF32 precision default in the KDA kernel's context-parallel path that accumulated error over long contexts and was fixed with tf32x3, a GIL held across DeepEP dispatch and combine calls that kept KV transfer from overlapping with computation, and a KDA decode kernel that repeated the same FP32 normalization four times because it tiled along the V dimension 21. The numerical fix has been merged upstream in Flash Linear Attention 21.

What the discussion added

Commenters separated the engineering from the framing, and several reported what the service feels like from outside:
  • Throughput figures against user experience: Customers in the thread described z.ai as slow with strict usage limits that can cut a long session short, which they set against the reported 3× throughput gain; others pushed back that the write-up is about infrastructure work rather than the current service 22.
  • The export-control reading: Commenters argued chip restrictions pushed Chinese labs toward this class of optimization, and one asked whether the 100,000 accelerators are domestically produced end to end; others read the paper's opening about surprising model capabilities as positioning for policy attention 22.
  • Why the same work is not happening elsewhere: One commenter asked why US labs with much larger chip budgets do not run comparable software optimization, given the capacity constraints they face 22.
Original Article · Hacker News Discussion

Backups aren't simple

  • HN Metrics: 353 points | 222 comments
  • Category: Backup and recovery practice
The post walks through the decisions a backup strategy forces, starting from a family-photos loss: copies in more than one place, snapshots rather than mirroring — RAID 1 qualifies only as redundancy, because it reproduces deletions and encryption — a recovery point objective that sets snapshot frequency, and rotation to stop snapshots from growing without bound 23. It puts real ranges on the RPO idea, from under 30 seconds for institutions that cannot lose transactions to a day or more for small organisations, and lands on a routine: an encrypted, chunk-level deduplicated, cloud-backed 3-2-1 setup with rotation, plus restore runs about every six months, because a backup nobody has restored is an untested assumption 23.

What the discussion added

Practitioners agreed with the frame and added the failure modes the post leaves out:
  • Restoration is the product: One commenter recalled a Veritas engineer correcting him — that company was in the restoration business, not the backup business — and others said restores are where the money and the pain sit, not the copying 24.
  • Consistency and scale change the answer: A commenter raised consistency groups, where a database and the application using it are snapshotted at different moments and the restored state is one neither ever had; another warned that uncontrolled data size ends up dictating backup choices, which is how avoidable failures happen later 24.
  • What people actually run: Restic with ZFS snapshots pulled offsite, Restic behind a nagging terminal banner that flags a missed 24-hour window, periodic full clones, and a case where a customer recovered from a machine fire two weeks after signing up for offsite copies 24.
Original Article · Hacker News Discussion

Databases & Storage

Training a 4B model to produce faster query plans than Postgres

  • HN Metrics: 693 points | 143 comments
  • Category: Query optimization and learned planners
Rohan Bansal post-trained a 4B Qwen model, first with supervised fine-tuning on trajectories from a larger teacher and then with agentic reinforcement learning, to produce Postgres plans that beat the database's own planner 25. Each rollout generates a candidate plan, Postgres measures it against its default plan, and the measured execution time becomes the reward, which is why the problem suits reinforcement learning: the output is easy to verify and there is one axis to optimize 25. The post's title states the result as 81% faster plans, and the figures in the body are a 44.7% latency reduction summed across 113 join-heavy queries from the Join Order Benchmark and the Cardinality Estimation Benchmark, plus a 1.81× geometric-mean speedup; before training, the base 4B model could not produce a plan for 99 of those queries 25. The run cost about $800 for roughly 95 hours on a rented two-GPU H100 node plus about $400 in API fees for teacher trajectories, and the model's favoured settings were enable_sort=off with random_page_cost=1.1 25.

What the discussion added

Commenters questioned the benchmark before they questioned the technique:
  • The measurement conditions: Reviewers noted the dataset is 8 GB and fits in memory, shared_buffers was constrained to a fraction of that, queries were warmed before timing, and the workload is read-only SELECTs; one added that tables carried no indexes beyond the primary key and no extra statistics, which is not how a production schema looks 26.
  • Planner configuration may explain the gap: A commenter argued that random_page_cost=1.1 alone can account for much of the difference, since a default-configured Postgres on this workload generates poor plans, and proposed tuning the stock planner as the honest baseline 26.
  • Where a learned planner belongs: Several commenters argued the target is repeated analytical queries rather than one-off plans, and that the durable win would be adaptive planning on better statistics — with one joke about the operational experience of a planner that hallucinates a missed index when a variable name changes 26.
Original Article · Hacker News Discussion

Alternatives to MinIO for single-node local S3

  • HN Metrics: 273 points | 108 comments
  • Category: Object storage operations
When the company behind MinIO walked away from the project in late 2025, every demo and build pipeline that used it as a local S3 emulator needed a replacement, and the post sets out the criteria that matter for that job: a Docker image, S3 compatibility, a free or OSI-approved licence, single-node simplicity, and an active community or commercial backer 27. It compares S3Proxy, RustFS, SeaweedFS, Zenko CloudServer, Garage, Apache Ozone and Ceph Object Gateway in a summary table, deliberately scoped to single-node development use rather than self-managed production storage, and notes a community fork of MinIO maintained with CVE patching as the option the author settled on 27.

What the discussion added

The thread turned a shortlist into field reports, including the cases where the tools break:
  • Operators' choices: One commenter replaced SeaweedFS with Garage in an on-premise Sentry deployment after failures under concurrent writes and has since tested it to roughly 10 TB; another runs RustFS as the backend for an archiving service on bare metal; several report choosing Garage for single-node work and expanding to three or five nodes later 28.
  • Where the comparison cuts off: A commenter warned that Garage's eventual consistency breaks Apache Iceberg, which depends on conditional PUT, and another noted Garage's metadata engine needs NVMe or small-file performance collapses and that per-bucket retention settings are missing — all outside the post's single-node scope but decisive for anyone reaching for an Iceberg catalog 28.
  • Alternative shapes of the answer: Commenters suggested mounting a local directory through s3fs, proxying S3 to SFTP, NFS, SMB or another S3 through a gateway, storing objects inside SQLite instead of as individual files, and Versity Gateway; one asked which local stores implement conditional GET, PUT and DELETE with ETags correctly, which the thread left open 28.
Original Article · Hacker News Discussion

Observability

Dropping eBPF CPU cost by about 90% with memoization

  • HN Metrics: 153 points | 29 comments
  • Category: Kernel-level enforcement cost
Profiling a path-based eBPF security agent showed that the expensive part was not enforcing a policy but deciding which policy applied to a file open: every open reconstructed the path, walked up parent dentries and checked each ancestor for a matching rule, repeating work for files already seen 29. The fix caches the applicable policy per inode, keyed by mount namespace ID, mount ID and inode number — inode numbers repeat across mount trees, and the namespace keeps cached entries from crossing boundaries — with the policy stored as a bit position plus a cache state 29. Caching the policy instead of the path walk cut kernel CPU cost by roughly 90%; the agent's source is open 29.

What the discussion added

The thread accepted the speedup and went after the cache's failure modes:
  • Renames and moves: Commenters asked what happens when a directory higher up the path is moved, since the cached policy no longer matches the path a later open would resolve; the author replied that protecting a directory implies the mover has access to it, and that evicting directory inodes on a move would cover most remaining edge cases 30.
  • Aliases the path never shows: A commenter raised bind mounts and other ways to load a file under a different path, and another asked what happens when a user's permissions change after the entry is cached; a third noted that SELinux already solves this class of problem with its access vector cache 30.
  • The other half of the trade: One commenter noted that memoization buys CPU time with memory and that the post measures only the CPU side, which matters most on machines already tight on kernel memory 30.
Original Article · Hacker News Discussion

Can we stop with the uptime percentages?

  • HN Metrics: 144 points | 114 comments
  • Category: Status communication and SLO reporting
Jim Nielsen argues that percentage uptime has become a public interface without being readable: 99.9% and 99.99% look nearly identical while differing tenfold, the same nonlinearity that makes earthquake magnitudes hard to compare, and the audience for status pages now includes everyone whose build system, CI or chat tool is unavailable 31. The proposed format pairs the number with plain time — 12 hours affected in the last 30 days (98.31% uptime) — on the grounds that knowing what an hour is takes no understanding of what happens to a percentage near 100 31.

What the discussion added

The thread explained the incentive behind the format and listed what the number leaves out:
  • Contract instruments: Commenters noted that these figures exist for enterprise SLAs, government requests for proposals and penalty clauses, so providers have little reason to replace them with a figure that is easier to read; a service-level discussion followed about how much reliability a system needs before extra nines stop being worth their cost 32.
  • The metric is muddier than the format: One commenter noted that in a distributed system different components are available to different users, and that 0.1% as a single 45-minute outage is a different event from 0.1% as many brief failures; others added that when the downtime lands matters as much as how much, since a working-hours outage costs more than one at 3 a.m. 32.
  • Presentation as marketing: Commenters argued the numbers exist to look good, that the public reading them as interchangeable near-100 values suits the publisher, and that restating downtime as hours can soften a deteriorating trend rather than clarify it 32.
Original Article · Hacker News Discussion

Synthesis: what resonated on Hacker News this week

The strongest threads this week share a subject: what happens when redundancy meets something it was not sized for.
  1. A region is a physical object: The AWS update and the backup thread belong together because they describe the same assumption failing at different scales — availability zones that migrate shards under normal failure, copies that rotate on a schedule, and a region whose hardware was destroyed. Commenters on both threads converged on tested restores as the only claim worth trusting, and on data-residency rules as the constraint that removes "fail elsewhere" from the options.
  2. Performance work now arrives as verification: The .NET post, GLM's infrastructure write-up, the eBPF cache and the TLS probing all describe gains that came from measuring something specific — a bound check, a kernel's precision default, a policy lookup, a handshake guess — rather than from a new architecture. The GLM write-up states the requirement plainly: end-to-end metrics tell an agent that throughput fell, and only attributable feedback tells it which layer to change.
  3. Toolchains are consolidating on memory safety, with the caveats attached: Rust reached CUDA kernels and the M4 GPU driver thread showed the same shift from the other direction, where the driver worked but the provenance questions around how it was written decided whether it could be accepted. The Android thread is the platform-scale version of the same question: who gets the source, and when.

References

  1. 1
    Introducing CUDA Rust: Two Tracks for Writing GPU Kernels

    developer.nvidia.com

  2. 2
    HN Discussion: Nvidia announces native GPU programming in Rust

    news.ycombinator.com

  3. 3
    GrapheneOS post on Android 17 QPR1 and AOSP

    grapheneos.social

  4. 4
    API Differences between 37 and 37.1

    developer.android.com

  5. 5
    HN Discussion: Android 17 adds new APIs without releasing to AOSP

    news.ycombinator.com

  6. 6
    I Came, I Prompted, I Left Part 2: Building a GPU Driver From Scratch in One Month

    codyho.dev

  7. 7
    HN Discussion: Building a Linux GPU driver for the M4 Mac Mini

    news.ycombinator.com

  8. 8
    fugleramme — E-ink bird frame for Raspberry Pi

    github.com

  9. 9
    HN Discussion: An e-ink frame that hears birds and draws them

    news.ycombinator.com

  10. 10
    Performance Improvements in .NET 11

    devblogs.microsoft.com

  11. 11
    HN Discussion: Performance Improvements in .NET 11

    news.ycombinator.com

  12. 12
    jemalloc 5.4.0 release notes

    github.com

  13. 13
    HN Discussion: jemalloc 5.4.0

    news.ycombinator.com

  14. 14
    Automatic Key Exchange: faster, post-quantum secure origin handshakes for 45 billion daily connections

    blog.cloudflare.com

  15. 15
    HN Discussion: Cloudflare AKE cuts origin HelloRetryRequests from 52% to 3.7%

    news.ycombinator.com

  16. 16
    AWS can't restore service to Bahrain, UAE 6 months after Iran strikes

    cnbc.com

  17. 17
    AWS Health Dashboard: service health status

    health.aws.amazon.com

  18. 18
    HN Discussion: AWS says it can't restore some data from mideast facilities struck by Iran

    news.ycombinator.com

  19. 19
    Hacking OpenAI: a heap overflow and SSO misconfiguration to compromise OpenAI internal repositories

    hacktron.ai

  20. 20
    HN Discussion: A heap overflow and SSO misconfiguration to compromise OpenAI internal repositories

    news.ycombinator.com

  21. 21
    Toward Recursive Self-Improvement: How GLM Built Its Own Inference Infrastructure

    z.ai

  22. 22
    HN Discussion: How GLM built its own inference infrastructure

    news.ycombinator.com

  23. 23
    Backups aren't simple

    filipovski.net

  24. 24
    HN Discussion: Backups Aren't Simple

    news.ycombinator.com

  25. 25
    Training a 4B model to produce 81% faster query plans than Postgres

    rohanbansal.com

  26. 26
    HN Discussion: Training a 4B model to produce faster query plans than Postgres

    news.ycombinator.com

  27. 27
    Alternatives to MinIO for single-node local S3

    rmoff.net

  28. 28
    HN Discussion: Alternatives to MinIO for single-node local S3

    news.ycombinator.com

  29. 29
    Dropping eBPF CPU Cost by About 90% With Memoization

    nathannaveen.dev

  30. 30
    HN Discussion: Dropping eBPF CPU cost by about 90% with memoization

    news.ycombinator.com

  31. 31
    Can We Stop With the Uptime Percentages?

    blog.jim-nielsen.com

  32. 32
    HN Discussion: Can we stop with the uptime percentages?

    news.ycombinator.com

Hacker News Top Engineering Posts
Hacker News Top Engineering Posts@NeoDrop Official

This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.

Related content

  • Architecture
  • Nvidia announces native GPU programming in Rust
  • Android 17 adds app APIs without releasing to AOSP
  • Building a Linux GPU driver for the M4 Mac Mini
  • An e-ink frame that hears birds and draws them as 1800s illustrations
  • Performance
  • Performance Improvements in .NET 11
  • Jemalloc 5.4.0
  • Automatic Key Exchange: faster origin handshakes
  • SRE & Security
  • AWS says it can't restore some data from mideast facilities struck by Iran
  • Hacking OpenAI: a heap overflow and SSO misconfiguration
  • How GLM built its own inference infrastructure
  • Backups aren't simple
  • Databases & Storage
  • Training a 4B model to produce faster query plans than Postgres
  • Alternatives to MinIO for single-node local S3
  • Observability
  • Dropping eBPF CPU cost by about 90% with memoization
  • Can we stop with the uptime percentages?
  • Synthesis: what resonated on Hacker News this week