mirror_zfs/module/zfs
Alexander Motin a4862125b8 Remove b_pabd/b_rabd allocation from arc_hdr_alloc()
When a header is allocated for full overwrite it is a waste of time
to allocate b_pabd/b_rabd for it, since arc_write() will free them
without ever being touched.  If it is a read or a partial overwrite
then arc_read() and arc_hdr_decrypt() allocate them explicitly.

Reduced memory allocation in user threads also reduces ARC eviction
throttling there, proportionally increasing it in ZIO threads, that
is not good.  To minimize or even avoid it introduce ARC allocation
reserve, allowing certain arc_get_data_abd() callers to allocate a
bit longer in situations where user threads will already throttle.

Reviewed-by: George Wilson <gwilson@delphix.com>
Reviewed-by: Mark Maybee <mark.maybee@delphix.com>
Signed-off-by: Alexander Motin <mav@FreeBSD.org>
Closes #12398
2021-09-14 14:31:50 -07:00
..
abd.c Fix abd leak, kmem_free correct size of abd_t 2021-09-14 12:22:28 -07:00
aggsum.c More aggsum optimizations 2021-06-09 13:05:34 -07:00
arc.c Remove b_pabd/b_rabd allocation from arc_hdr_alloc() 2021-09-14 14:31:50 -07:00
blkptr.c
bplist.c
bpobj.c
bptree.c
bqueue.c
btree.c
dataset_kstats.c Introduce write-mostly sums 2021-06-09 13:05:34 -07:00
dbuf_stats.c
dbuf.c Compact dbuf/buf hashes and lock arrays 2021-09-14 12:22:46 -07:00
ddt_zap.c
ddt.c Tinker with slop space accounting with dedup 2021-09-14 12:38:05 -07:00
dmu_diff.c
dmu_object.c
dmu_objset.c Avoid 64bit division in multilist index functions 2021-06-29 13:15:04 -07:00
dmu_recv.c Annotated dprintf as printf-like 2021-06-24 13:12:36 -07:00
dmu_redact.c dmu_redact.c does not call bqueue_destroy 2021-09-14 12:39:48 -07:00
dmu_send.c implicit conversion from 'boolean_t' to 'ds_hold_flags_t' 2020-12-27 16:31:02 -08:00
dmu_traverse.c ZFS traverse_visitbp optimization to limit prefetch 2021-04-19 15:22:57 -07:00
dmu_tx.c Annotated dprintf as printf-like 2021-06-24 13:12:36 -07:00
dmu_zfetch.c Upstream: dmu_zfetch_stream_fini leaks refcount 2021-09-14 12:21:55 -07:00
dmu.c Split dmu_zfetch() speculation and execution parts 2021-03-19 22:56:11 -07:00
dnode_sync.c Annotated dprintf as printf-like 2021-06-24 13:12:36 -07:00
dnode.c Initialize dn_next_type[] in the dnode constructor 2021-09-14 13:07:44 -07:00
dsl_bookmark.c Fix various typos 2021-04-07 13:27:11 -07:00
dsl_crypt.c Revert "Fix raw sends on encrypted datasets when copying back snapshots" 2021-05-27 22:10:13 -07:00
dsl_dataset.c Introduce dsl_dir_diduse_transfer_space() 2021-09-14 12:38:51 -07:00
dsl_deadlist.c Livelist logic should handle dedup blkptrs 2021-06-09 13:05:34 -07:00
dsl_deleg.c
dsl_destroy.c Annotated dprintf as printf-like 2021-06-24 13:12:36 -07:00
dsl_dir.c Introduce dsl_dir_diduse_transfer_space() 2021-09-14 12:38:51 -07:00
dsl_pool.c Re-embed multilist_t storage 2021-06-10 10:50:16 -07:00
dsl_prop.c
dsl_scan.c Improve scrub maxinflight_bytes math. 2021-06-08 14:50:57 -07:00
dsl_synctask.c
dsl_userhold.c
edonr_zfs.c
fm.c file reference counts can get corrupted 2021-09-14 12:37:38 -07:00
gzip.c
hkdf.c
lz4.c
lzjb.c
Makefile.in Distributed Spare (dRAID) Feature 2020-11-13 13:51:51 -08:00
metaslab.c Add comment on metaslab_class_throttle_reserve() locking 2021-09-14 13:09:40 -07:00
mmp.c Optimize small random numbers generation 2021-09-14 12:10:17 -07:00
multilist.c Optimize small random numbers generation 2021-09-14 12:10:17 -07:00
objlist.c
pathname.c
range_tree.c Annotated dprintf as printf-like 2021-06-24 13:12:36 -07:00
refcount.c Use more atomics in refcounts 2021-09-14 14:31:01 -07:00
rrwlock.c
sa.c Annotated dprintf as printf-like 2021-06-24 13:12:36 -07:00
sha256.c
skein_zfs.c
spa_boot.c
spa_checkpoint.c Annotated dprintf as printf-like 2021-06-24 13:12:36 -07:00
spa_config.c Cleaning up uio headers 2021-02-20 20:16:50 -08:00
spa_errlog.c
spa_history.c Annotated dprintf as printf-like 2021-06-24 13:12:36 -07:00
spa_log_spacemap.c Balance parentheses in parameter descriptions 2021-04-14 13:23:07 -07:00
spa_misc.c Fix unfortunate NULL in spa_update_dspace 2021-09-14 12:41:10 -07:00
spa_stats.c Remove pool io kstats 2021-06-10 10:50:16 -07:00
spa.c Run arc_evict thread at higher priority 2021-09-14 14:30:13 -07:00
space_map.c Optimize small random numbers generation 2021-09-14 12:10:17 -07:00
space_reftree.c
THIRDPARTYLICENSE.cityhash
THIRDPARTYLICENSE.cityhash.descrip
txg.c Annotated dprintf as printf-like 2021-06-24 13:12:36 -07:00
uberblock.c
unique.c
vdev_cache.c
vdev_draid_rand.c Distributed Spare (dRAID) Feature 2020-11-13 13:51:51 -08:00
vdev_draid.c vdev_draid_min_asize() ignores reserved space 2021-06-15 16:56:42 -07:00
vdev_indirect_births.c
vdev_indirect_mapping.c
vdev_indirect.c Run arc_evict thread at higher priority 2021-09-14 14:30:13 -07:00
vdev_initialize.c Cancel TRIM / initialize on FAULTED non-writeable vdevs 2021-03-02 10:27:27 -08:00
vdev_label.c Parallelize vdev_validate 2021-01-26 19:36:51 -08:00
vdev_mirror.c Optimize small random numbers generation 2021-09-14 12:10:17 -07:00
vdev_missing.c Distributed Spare (dRAID) Feature 2020-11-13 13:51:51 -08:00
vdev_queue.c Avoid vq_lock drop in vdev_queue_aggregate() 2021-09-14 14:31:22 -07:00
vdev_raidz_math_aarch64_neon_common.h
vdev_raidz_math_aarch64_neon.c
vdev_raidz_math_aarch64_neonx2.c
vdev_raidz_math_avx2.c
vdev_raidz_math_avx512bw.c
vdev_raidz_math_avx512f.c
vdev_raidz_math_impl.h Distributed Spare (dRAID) Feature 2020-11-13 13:51:51 -08:00
vdev_raidz_math_powerpc_altivec_common.h
vdev_raidz_math_powerpc_altivec.c
vdev_raidz_math_scalar.c
vdev_raidz_math_sse2.c
vdev_raidz_math_ssse3.c
vdev_raidz_math.c Reduce fletcher4 and raidz benchmark times 2020-12-06 09:57:20 -08:00
vdev_raidz.c Fix dRAID sequential resilver silent damage handling 2021-05-27 22:31:56 -07:00
vdev_rebuild.c Use dsl_scan_setup_check() to setup a scrub 2021-04-14 13:19:49 -07:00
vdev_removal.c Annotated dprintf as printf-like 2021-06-24 13:12:36 -07:00
vdev_root.c Distributed Spare (dRAID) Feature 2020-11-13 13:51:51 -08:00
vdev_trim.c Cancel TRIM / initialize on FAULTED non-writeable vdevs 2021-03-02 10:27:27 -08:00
vdev.c Annotated dprintf as printf-like 2021-06-24 13:12:36 -07:00
zap_leaf.c
zap_micro.c Annotated dprintf as printf-like 2021-06-24 13:12:36 -07:00
zap.c Annotated dprintf as printf-like 2021-06-24 13:12:36 -07:00
zcp_get.c
zcp_global.c
zcp_iter.c
zcp_set.c
zcp_synctask.c A few fixes of callback typecasting (for the upcoming ClangCFI) 2021-09-14 12:39:48 -07:00
zcp.c Annotated dprintf as printf-like 2021-06-24 13:12:36 -07:00
zfeature.c
zfs_byteswap.c
zfs_fm.c Ratelimit deadman zevents as with delay zevents 2021-04-14 13:19:49 -07:00
zfs_fuid.c Fix regression in POSIX mode behavior 2021-03-19 22:50:46 -07:00
zfs_ioctl.c file reference counts can get corrupted 2021-09-14 12:37:38 -07:00
zfs_log.c Initialize all fields in zfs_log_xvattr() 2021-09-14 12:42:21 -07:00
zfs_onexit.c file reference counts can get corrupted 2021-09-14 12:37:38 -07:00
zfs_quota.c
zfs_ratelimit.c
zfs_replay.c
zfs_rlock.c
zfs_sa.c Extending FreeBSD UIO Struct 2021-01-20 21:27:30 -08:00
zfs_vnops.c Fix zfs_get_data access to files with wrong generation 2021-03-19 22:53:31 -07:00
zil.c Zero pad bytes following TX_WRITE log data 2021-09-14 12:42:21 -07:00
zio_checksum.c
zio_compress.c Optimize small random numbers generation 2021-09-14 12:10:17 -07:00
zio_inject.c Optimize small random numbers generation 2021-09-14 12:10:17 -07:00
zio.c Optimize allocation throttling 2021-09-14 12:40:15 -07:00
zle.c
zrlock.c
zthr.c Run arc_evict thread at higher priority 2021-09-14 14:30:13 -07:00
zvol.c A few fixes of callback typecasting (for the upcoming ClangCFI) 2021-09-14 12:39:48 -07:00