Uploaded June 2019 | Updated September 2026, 38 minutes ago
Snapshots are one of the defining features of ZFS. They are also the foundation of other advanced features, such as clones and replication with zfs send / receive. If you have ever wondered how much space your snapshots are using, you’ll want to come to this talk so that you can understand what “used” really means! If you want to know how snapshots can be so fast (or why they are sometimes so slow), this talk is for you! I designed and implemented ZFS snapshots, starting in 2001. Come to this talk and learn from my mistakes!
In this talk I will explain:
How ZFS snapshots are implemented, why the data structures and algorithms were chosen, and how they impact performance - especially of snapshot deletion, which is the most performance-critical snapshot operation.
Snapshot space accounting - the difference between the “used”, “referenced”, and “written@...” properties, which one you should be looking at, and how they are implemented.
How the implementation has changed over time to better scale when there are a large number of snapshots.
Proposals for future work to further improve performance.
More Info:
bsdcan.org/2019/schedule/events/1073.en.html
Snapshots are one of the defining features of ZFS. They are also the foundation of other advanced features, such as clones and replication with zfs send / receive. If you have ever wondered how much space your snapshots are using, you’ll want to come to this talk so that you can understand what “used” really means! If you want to know how snapshots can be so fast (or why they are sometimes so slow), this talk is for you! I designed and implemented ZFS snapshots, starting in 2001. Come to this talk and learn from my mistakes!
In this talk I will explain:
How ZFS snapshots are implemented, why the data structures and algorithms were chosen, and how they impact performance - especially of snapshot deletion, which is the most performance-critical snapshot operation.
Snapshot space accounting - the difference between the “used”, “referenced”, and “written@...” properties, which one you should be looking at, and how they are implemented.
How the implementation has changed over time to better scale when there are a large number of snapshots.
Proposals for future work to further improve performance.
More Info:
bsdcan.org/2019/schedule/events/1073.en.html

![Hardware-accelerated program tracing on FreeBSD By Bojan Novković
Hardware tracing facilities are designed to capture various metrics and information about software execution with a minimal performance overhead, making them a valuable tool for performance analyses and debugging. FreeBSD recently gained a new in-kernel framework for hardware-accelerated tracing technologies (hwt(8) [1]) with support for ARM64 and Intel CPUs.
This talk will cover the work that went into adding support for Intels Processor Trace technology in hwt(8). Well start by covering several key concepts related to hardware-accelerated tracing and use them to explore the architecture of FreeBSDs hwt(8) framework. Well then move on to a case study of Intel Processor Trace technology, giving a brief overview of its features before diving into key implementation details. The talk will also include a short demo of hwt(8)s features on the Intel platform. Hardware-accelerated program tracing on FreeBSD By Bojan Novković](https://i.ytimg.com/vi/NrBGw8N4qL4/mqdefault.jpg)








