Project

General

Profile

Actions

Bug #8021

closed

ARC buf data scatter-ization

Added by Daniel Kimmel over 4 years ago. Updated over 4 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
zfs - Zettabyte File System
Start date:
2017-03-31
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:

Description

The ARC buf data project (known simply as "ABD" since its genesis in the ZoL community) changes the way the ARC allocates `b_pdata` memory from using linear `void *` buffers to using scatter/gather lists of fixed-size 1KB chunks. This improves ZFS's performance by helping to defragment the address space occupied by the ARC, in particular for cases where compressed ARC is enabled. It could also ease future work to allocate pages directly from `segkpm` for minimal-overhead memory allocations, bypassing the `kmem` subsystem.

This is essentially the same change as the one which recently landed in ZFS on Linux, although they made some platform-specific changes while adapting this work to their codebase:

1. Implemented the equivalent of the `segkpm` suggestion for future work mentioned above to bypass issues that they've had with the Linux kernel memory allocator.
2. Changed the internal representation of the ABD's scatter/gather list so it could be used to pass I/O directly into Linux block device drivers. (This feature is not available in the illumos block device interface yet.)


Related issues

Related to illumos gate - Bug #8100: 8021 seems to cause random BAD TRAP: type=d (#gp General protection)Closed2017-04-24

Actions
Related to illumos gate - Bug #12028: zfs test mdb_001_pos can failClosed

Actions
Actions

Also available in: Atom PDF