SSD Nodes Learn Hosting plans →
Guides Matt ConnorBy Matt Connor

What's new in Linux kernel 7.3 for a VPS

Linux 7.3 came out on 18 October 2026. See which storage changes a KVM guest can use, which stay on the host, and what Ubuntu 26.10 and 26.04 HWE users get.

What's new in Linux kernel 7.3 for a VPS tenant

Linux kernel 7.3 is out. kernel.org lists the 7.3 mainline release with the date 18 October 2026. For a tenant on a KVM VPS, the changes you can use inside your own server are in storage. They are a shorter code path for small direct reads, ext4 and Btrfs direct I/O work, FUSE and NFS changes, and opt-in Apple Time Machine support in the in-kernel SMB server. Most of the virtualization work in this release runs in the kernel that acts as the hypervisor. For a normal VPS that is your provider's host, so you get it when your provider upgrades the hypervisor. If your provider exposes nested virtualization and you run KVM inside your VPS, your own guest kernel is a hypervisor too.

Ubuntu 26.10 already ships 7.3. Ubuntu 26.04 LTS runs 7.0 on both of its kernel tracks, and Ubuntu has not published a date for its HWE kernel to move to 7.3. This page separates what reaches your guest from what stays on the host, and shows how to check each claim on your own server.

Which parts of a kernel release reach a VPS guest?

A KVM VPS runs two kernels. Your guest boots its own kernel, the one you install and update with apt. The physical host runs a second kernel with the KVM module, and you never see it. A change in filesystem code, the block layer, FUSE or the NFS client runs in your guest kernel, so you get it the day you boot 7.3. A change in KVM code runs in whichever kernel acts as the hypervisor. For the VM that is your VPS, that is the host kernel, so you get it when your provider moves the host to 7.3 or later. If your provider exposes nested virtualization, your guest can run KVM itself, and KVM changes that apply to that role arrive when you boot 7.3 in the guest. The section on host-side changes below shows how to check.

Start by finding out what you are running. These are read-only checks:

uname -r
systemd-detect-virt
findmnt -no FSTYPE /

uname -r prints the running guest kernel version. systemd-detect-virt prints kvm on a KVM guest. If it prints lxc or openvz, you share the host kernel and cannot boot 7.3 yourself at all. findmnt prints the filesystem type of your root partition, which is often ext4 on a VPS image. That type decides which of the storage changes below apply to you.

Small direct reads get a shorter path in iomap

Direct I/O means reads and writes that skip the page cache. A program asks for it by opening a file with O_DIRECT. Databases and benchmark tools use it when they want to manage their own caching. In ext4 and XFS, direct I/O goes through iomap, shared kernel code that maps file offsets to disk blocks.

Linux 7.3 adds a "simple" direct I/O path to iomap for small reads. kernelnewbies lists it under Core: "Add simple dio path for small direct I/O. It takes ext4 from 1.92M to 2.19M IOPS in a sample workload." IOPS means I/O operations per second.

The patch cover letter on the linux-ext4 mailing list describes that sample workload. It was a 4K random read test with io_uring in poll mode, on one CPU core, on "high-performance Gen5 NVMe SSDs". The cover letter gives these figures:

Chart4K random read, one core, io_uring poll mode (patch cover letter figures)
The data behind this chart
[
  {
    "config": "Raw block device",
    "million_iops": 3.2
  },
  {
    "config": "ext4 or XFS, before the patch",
    "million_iops": 1.92
  },
  {
    "config": "ext4 with the simple path",
    "million_iops": 2.19
  }
]

The raw block device served about 3.2 million IOPS. The same workload on ext4 or XFS served about 1.92 million, so the filesystem code itself was the slowest step. With the simple path, ext4 reached 2.19 million. These are figures from one patch author's test machine. They are not a measurement of any VPS.

The simple path runs only when every condition in the cover letter holds:

  • The request is a read.
  • The read is no larger than the filesystem block size, so it fits in one block and never splits.
  • The filesystem has not registered its own direct I/O callbacks.
  • The read falls inside the file's current size.
  • The file is not encrypted with the filesystem's own per-file encryption (fscrypt).

Will a VPS guest see the faster small reads?

The code runs in your guest, because your guest kernel runs your ext4. The size of the gain is a host-side question. The gain in the cover letter appeared because the drive was fast enough that the filesystem code, not the drive, set the limit. A virtual disk on a VPS usually sits behind a hypervisor, a virtual disk driver and often a per-plan IOPS limit. If any of those is slower than the filesystem code, the time this patch saves is a small share of each read, and the number you measure barely moves. Treat "faster small I/O on Gen5 NVMe" as a statement about the hardware under the hypervisor, not about your plan.

How do you measure it on your own server?

Measure it before you believe it. Install fio, check the block size, then run the same small direct read test on your current kernel and again on 7.3:

sudo apt install -y fio
stat -f -c %S /
fio --name=randread --filename=/var/tmp/fio.test --size=1G --rw=randread --bs=4k --direct=1 --ioengine=io_uring --iodepth=32 --runtime=30 --time_based --group_reporting
rm /var/tmp/fio.test

stat -f -c %S / should print 4096 on a normal ext4 root. A 4K read is then no larger than one block, which is the size condition above. In the fio output, read the read: IOPS= line. Run the test three times on each kernel, on the same VPS, at a quiet hour. Neighbours on the same host change your numbers from run to run, so one run proves nothing. If fio reports that the io_uring engine is not available, use --ioengine=libaio for both kernels instead.

Which other storage changes can a guest use?

These all live in guest kernel code. kernelnewbies lists them by name, and the descriptions below stay close to those names. Read the merge request for an item before you build anything on it.

ext4 parallel direct writes. The ext4 entry reads "Allow more dio writes under shared i_rwsem". i_rwsem is the lock each file carries. Several tasks can hold a shared lock at the same time, so more direct writes to one file can proceed without waiting for each other.

Btrfs direct I/O. Btrfs now uses an iomap bounce buffer for direct I/O "instead of a fall back to buffered io". In the cases where Btrfs used to turn a direct request into a cached one, it now stays direct. kernelnewbies names "better btrfs and ext4 performance" in its headline. For this item it says past correctness and speed trade-offs had dropped performance to about 50% of the theoretical maximum, and that it is now about 95%. Those are kernelnewbies' figures, not a measurement of a VPS disk.

XFS write zeroes. XFS gains FALLOC_FL_WRITE_ZEROES support, a mode of the fallocate system call. The kernelnewbies entry gives the name only. Check the XFS pull request for the exact behaviour before you rely on it.

RWF_DONTCACHE on block devices. RWF_DONTCACHE is a per-request flag. It lets a program read or write through the page cache without keeping the data there afterwards, which is a lighter option than full direct I/O. Linux 7.3 allows it on block devices. That matters only when a program in your guest reads or writes a raw volume such as /dev/vdb directly, not files on a mounted filesystem.

FUSE over io-uring. FUSE (filesystem in userspace) gains io-uring buffer pools and zero-copy. kernelnewbies notes that zero-copy "requires CAP_SYS_ADMIN privileges and using buffer pools". You see a change only if your guest runs a FUSE filesystem written to use io-uring, with that privilege.

NFS. The NFS code adds CB_NOTIFY callbacks in directory delegations, and NFSv4.2 client support for UNCACHEABLE_FILE_DATA and UNCACHEABLE_DIRENT_METADATA. If one VPS mounts an NFS export from another, the client-side items run in the client guest's kernel.

Can a storage VPS take Time Machine backups with ksmbd?

ksmbd is the SMB file server built into the Linux kernel. In 7.3 it gains "opt-in Apple Time Machine support", which kernelnewbies describes as "allowing macOS backupd to use ksmbd for backups". backupd is the macOS process that runs Time Machine. Opt-in means it is off until you turn it on.

For a storage VPS this is the most practical item in the release. A Mac could back up to an SMB share on your server, served by the guest kernel itself. You need the 7.3 kernel in the guest and the userspace ksmbd-tools package to configure shares. The setting that turns Time Machine support on is defined in the ksmbd documentation for your version, so take the option name from there and not from a forum post. Keep SMB off the public internet. Reach the share over a VPN, and keep TCP port 445 closed on the public interface.

What in Linux 7.3 only matters on the host?

The KVM items in this release change the hypervisor. On a normal VPS that is your provider's host. A VPS can also be a hypervisor, though. The kernel documentation on nested guests calls a VM running on the bare metal host an L1 guest, "also called the 'guest hypervisor', as it itself is capable of running KVM". kernelnewbies lists, among others:

  • "KVM: refactor struct kvm_mmu", internal memory-management code in KVM.
  • "KVM: Convert nested ops to static calls" for x86, which is code for running a VM inside a VM.
  • Arm nested virtualization support for FEAT_NV2p1 and FEAT_NV3.
  • "vduse: Add suspend". VDUSE lets a userspace program provide a virtio device.
  • userfaultfd(2) support for tracking the working set of VM guest memory, which a VM manager would use.

For the VM that is your VPS, these reach you only when your provider runs 7.3 or later on the host. There is no command inside the guest that turns them on for your own VM. The exception is a VPS where the provider exposes nested virtualization and you run your own VMs inside it. Then your guest kernel runs KVM for those nested VMs, so booting 7.3 in your guest brings the KVM changes that apply to that role, such as the kvm_mmu work, without waiting for the host. The items about hosting a guest hypervisor, such as the nested ops and Arm nested virtualization work, still matter mainly on the provider's host. The host also has to allow nesting first. The kernel documentation describes L1 running nested guests only once the bare metal host (L0) is configured for nesting. Check whether your guest can run KVM at all:

grep -cwE 'vmx|svm' /proc/cpuinfo

A number above 0 means the provider exposes hardware virtualization to your guest. A result of 0 means it does not, and every KVM item in this release stays on the host for you.

One item sits in between: "virtio-mmio: add support for transport version 3". virtio-mmio is a guest-side transport, but a typical KVM guest talks to its disk and network over virtio on PCI instead. Check yours:

lspci | grep -i virtio

If this lists your block and network devices, your guest uses virtio over PCI, and the virtio-mmio change does not touch them. If lspci is missing, sudo apt install -y pciutils adds it.

The kernelnewbies headline also names better GPU performance and per-cgroup BPF task schedulers. It names "a new sandboxing technique using a new failfs pseudofilesystem" as well. The BPF scheduler work runs in the guest kernel, but it applies only once a BPF scheduler program is loaded.

Does Ubuntu 26.10 ship Linux 7.3?

Yes. The Ubuntu 26.10 release notes say: "Ubuntu 26.10 ships with the Linux kernel 7.3." There is a detail. Ubuntu 26.10 was released on 15 October 2026, three days before upstream 7.3. The notes explain that "the kernel in the release images (7.3.0-9.9) is based on 7.3-rc6", a release candidate. The notes do not say when the final 7.3 code reaches 26.10 through updates, so check uname -r and the package changelog on your own server.

Ubuntu 26.10 is an interim release. It is supported for 9 months, until July 2027. Ubuntu's kernel lifecycle page lists kernel 7.3 for 26.10 with the same end date. The only 7.3 regression the release notes list affects keyboards on some Snapdragon X2 Elite laptops, not servers. For the rest of what moves on a server, read what changes on a server in Ubuntu 26.10.

When does the Ubuntu 26.04 HWE kernel move to 7.3?

Ubuntu has not published that date. Ubuntu 26.04 LTS was released on 23 April 2026 and currently runs Linux 7.0. The 26.04 summary for LTS users says the GA (general availability) kernel moved from 6.8 to 7.0, and the HWE (hardware enablement) kernel moved from 6.17 to 7.0. So today both tracks run the same version. Ubuntu's kernel lifecycle page has no row yet for a newer 26.04 HWE kernel, and the 26.04 release schedule has no 26.04.2 entry.

What Ubuntu does document is the general rule. Its HWE kernel reference says HWE kernels "will typically get rolled off to the next HWE kernel once a new Ubuntu series is released (until the next LTS)". That makes the 26.10 kernel the expected next step for 26.04 HWE users. "Typically" is not a date, so do not plan around a guessed month. If you have to choose a track before then, the HWE and GA kernel tracks on Ubuntu Server explains what each one commits you to.

You can watch for the change yourself on a 26.04 server. First see which kernel metapackage you have:

dpkg -l 'linux-generic*' | grep '^ii'

linux-generic means the GA track. A name such as linux-generic-hwe-26.04 means the HWE track. Then ask apt what it would install for that package:

apt policy linux-generic-hwe-26.04

When the Candidate: version starts with 7.3, the HWE kernel has moved. If apt reports Unable to locate package, use the metapackage name that dpkg -l printed instead. Recheck ubuntu.com/kernel/lifecycle at the same time. If you want to hold a server on 7.0 after the move, pinning which kernel your VPS boots keeps the old one as the default, and cleaning up old kernels stops /boot filling up once you have settled.

Will 7.3 or 7.4 be this year's longterm kernel?

Nobody has announced it. As of 20 October 2026, kernel.org lists six longterm kernels: 6.18, 6.12, 6.6, 6.1, 5.15 and 5.10. No 7.x kernel is on the list. The newest, 6.18, was released on 30 November 2025. Both 6.18 and 6.12 carry a projected end of life of December 2028.

kernel.org does not pick longterm kernels by a fixed rule. Its releases page says they "are picked based on various factors -- major new features, popular commercial distribution needs, device manufacturer demand, maintainer workload and availability, etc." The same page says you can roughly estimate when the next one will arrive from how much time has passed since the last pick. The table shows the pattern behind that advice: 6.1 was released on 11 December 2022, 6.6 on 29 October 2023, 6.12 on 17 November 2024 and 6.18 on 30 November 2025. One longterm pick a year, each from late in the year, is the history. It is not a promise about 7.3 or 7.4.

Two dates from the same table matter on hosts today. 5.15 and 5.10 both carry a projected end of life of December 2026. If a server of yours still runs one of them, plan its move now. The Linux kernel history timeline shows how earlier longterm picks lined up with distribution releases.

How does 7.3 compare with the releases before it?

The split is the same as in earlier releases: guest-side filesystem and block code you can use after a reboot, and KVM code you wait for unless you run KVM yourself inside a VPS with nested virtualization. The Linux 7.2 changes for a VPS and the Linux 7.1 changes for a VPS use the same layout, so you can read across the releases. Upgrading the guest kernel means a reboot. If your provider's image supports it, live kernel patching on a VPS covers security fixes between those reboots, but it never moves you to a new major version.

FAQ

Is Linux 7.3 a long-term support kernel?

No. As of 20 October 2026 the kernel.org longterm list is 6.18, 6.12, 6.6, 6.1, 5.15 and 5.10, and no 7.x release is on it. kernel.org chooses longterm kernels based on several factors, including distribution needs and maintainer workload, and it has not announced whether 7.3 or 7.4 will be the next one.

Will my VPS get faster small reads after upgrading to Linux 7.3?

The new iomap simple path runs in your guest kernel for small direct reads on ext4 or XFS. The published gain, from 1.92M to 2.19M IOPS on ext4, came from a single-core test on high-performance Gen5 NVMe drives where the filesystem code was the slowest step. A VPS disk behind a hypervisor and an IOPS limit often hits its limit first. Run the same fio --direct=1 --bs=4k test on your old kernel and on 7.3 to see your real difference.

When does Ubuntu 26.04 LTS get kernel 7.3?

Ubuntu has not published a date. Ubuntu 26.04 LTS runs Linux 7.0 on both its GA and HWE tracks. Ubuntu documents that HWE kernels typically roll to the next series kernel after a new Ubuntu release, and Ubuntu 26.10 ships 7.3. Check ubuntu.com/kernel/lifecycle, and run apt policy on your HWE metapackage to see when the candidate version becomes 7.3.

Can I use ksmbd in Linux 7.3 as a Time Machine target?

Linux 7.3 adds opt-in Apple Time Machine support to ksmbd, the in-kernel SMB server, so macOS backupd can back up to it. It is off by default. You need a 7.3 guest kernel and the ksmbd-tools package, and the option name comes from the ksmbd documentation for your version. Reach the share over a VPN, not through an open TCP port 445.

#linux-kernel#linux-7-3#ubuntu#hwe#filesystems