update to linux 6.1.60, zfs 2.2.0
This commit is contained in:
parent
368316cb3d
commit
d5e22c0c7d
17 changed files with 370 additions and 230 deletions
7
autobuild.sh
Normal file
7
autobuild.sh
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/bash
|
||||||
|
sudo apt install devscripts rsync -y
|
||||||
|
yes | sudo mk-build-deps --install --remove
|
||||||
|
git submodule update --init --depth=1
|
||||||
|
mkdir build && rsync -ra * build/
|
||||||
|
cd build
|
||||||
|
dpkg-buildpackage -b -us -uc
|
7
debian/changelog
vendored
7
debian/changelog
vendored
|
@ -1,3 +1,10 @@
|
||||||
|
pve-kernel (6.1.60) generic; urgency=medium
|
||||||
|
|
||||||
|
* Update to Linux 6.1.60
|
||||||
|
* Update to zfs 2.2.0
|
||||||
|
|
||||||
|
-- jiangcuo <jiangcuo@bingsin.com> Tue, 31 Oct 2023 10:58:30 +0800
|
||||||
|
|
||||||
pve-kernel (6.1.51) generic; urgency=medium
|
pve-kernel (6.1.51) generic; urgency=medium
|
||||||
|
|
||||||
* Update to Linux 6.1.51
|
* Update to Linux 6.1.51
|
||||||
|
|
62
debian/config/config.pve
vendored
62
debian/config/config.pve
vendored
|
@ -1,6 +1,6 @@
|
||||||
#
|
#
|
||||||
# Automatically generated file; DO NOT EDIT.
|
# Automatically generated file; DO NOT EDIT.
|
||||||
# Linux/arm64 6.1.42 Kernel Configuration
|
# Linux/arm64 6.1.60 Kernel Configuration
|
||||||
#
|
#
|
||||||
CONFIG_CC_VERSION_TEXT="gcc (Debian 12.2.0-14) 12.2.0"
|
CONFIG_CC_VERSION_TEXT="gcc (Debian 12.2.0-14) 12.2.0"
|
||||||
CONFIG_CC_IS_GCC=y
|
CONFIG_CC_IS_GCC=y
|
||||||
|
@ -295,7 +295,6 @@ CONFIG_FIX_EARLYCON_MEM=y
|
||||||
CONFIG_PGTABLE_LEVELS=4
|
CONFIG_PGTABLE_LEVELS=4
|
||||||
CONFIG_ARCH_SUPPORTS_UPROBES=y
|
CONFIG_ARCH_SUPPORTS_UPROBES=y
|
||||||
CONFIG_ARCH_PROC_KCORE_TEXT=y
|
CONFIG_ARCH_PROC_KCORE_TEXT=y
|
||||||
CONFIG_BROKEN_GAS_INST=y
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Platform selection
|
# Platform selection
|
||||||
|
@ -351,6 +350,7 @@ CONFIG_ARCH_ZYNQMP=y
|
||||||
#
|
#
|
||||||
# ARM errata workarounds via the alternatives framework
|
# ARM errata workarounds via the alternatives framework
|
||||||
#
|
#
|
||||||
|
CONFIG_AMPERE_ERRATUM_AC03_CPU_38=y
|
||||||
CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y
|
CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y
|
||||||
CONFIG_ARM64_ERRATUM_826319=y
|
CONFIG_ARM64_ERRATUM_826319=y
|
||||||
CONFIG_ARM64_ERRATUM_827319=y
|
CONFIG_ARM64_ERRATUM_827319=y
|
||||||
|
@ -361,6 +361,7 @@ CONFIG_ARM64_ERRATUM_834220=y
|
||||||
CONFIG_ARM64_ERRATUM_1742098=y
|
CONFIG_ARM64_ERRATUM_1742098=y
|
||||||
CONFIG_ARM64_ERRATUM_845719=y
|
CONFIG_ARM64_ERRATUM_845719=y
|
||||||
CONFIG_ARM64_ERRATUM_843419=y
|
CONFIG_ARM64_ERRATUM_843419=y
|
||||||
|
CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419=y
|
||||||
CONFIG_ARM64_ERRATUM_1024718=y
|
CONFIG_ARM64_ERRATUM_1024718=y
|
||||||
CONFIG_ARM64_ERRATUM_1418040=y
|
CONFIG_ARM64_ERRATUM_1418040=y
|
||||||
CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT=y
|
CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT=y
|
||||||
|
@ -381,6 +382,7 @@ CONFIG_ARM64_ERRATUM_2054223=y
|
||||||
CONFIG_ARM64_ERRATUM_2067961=y
|
CONFIG_ARM64_ERRATUM_2067961=y
|
||||||
CONFIG_ARM64_ERRATUM_2441009=y
|
CONFIG_ARM64_ERRATUM_2441009=y
|
||||||
CONFIG_ARM64_ERRATUM_2457168=y
|
CONFIG_ARM64_ERRATUM_2457168=y
|
||||||
|
CONFIG_ARM64_ERRATUM_2966298=y
|
||||||
CONFIG_CAVIUM_ERRATUM_22375=y
|
CONFIG_CAVIUM_ERRATUM_22375=y
|
||||||
CONFIG_CAVIUM_ERRATUM_23144=y
|
CONFIG_CAVIUM_ERRATUM_23144=y
|
||||||
CONFIG_CAVIUM_ERRATUM_23154=y
|
CONFIG_CAVIUM_ERRATUM_23154=y
|
||||||
|
@ -422,6 +424,7 @@ CONFIG_HZ=250
|
||||||
CONFIG_SCHED_HRTICK=y
|
CONFIG_SCHED_HRTICK=y
|
||||||
CONFIG_ARCH_SPARSEMEM_ENABLE=y
|
CONFIG_ARCH_SPARSEMEM_ENABLE=y
|
||||||
CONFIG_HW_PERF_EVENTS=y
|
CONFIG_HW_PERF_EVENTS=y
|
||||||
|
CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
|
||||||
CONFIG_PARAVIRT=y
|
CONFIG_PARAVIRT=y
|
||||||
# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
|
# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
|
||||||
CONFIG_KEXEC=y
|
CONFIG_KEXEC=y
|
||||||
|
@ -451,12 +454,17 @@ CONFIG_SETEND_EMULATION=y
|
||||||
#
|
#
|
||||||
CONFIG_ARM64_HW_AFDBM=y
|
CONFIG_ARM64_HW_AFDBM=y
|
||||||
CONFIG_ARM64_PAN=y
|
CONFIG_ARM64_PAN=y
|
||||||
|
CONFIG_AS_HAS_LDAPR=y
|
||||||
|
CONFIG_AS_HAS_LSE_ATOMICS=y
|
||||||
|
CONFIG_ARM64_LSE_ATOMICS=y
|
||||||
CONFIG_ARM64_USE_LSE_ATOMICS=y
|
CONFIG_ARM64_USE_LSE_ATOMICS=y
|
||||||
# end of ARMv8.1 architectural features
|
# end of ARMv8.1 architectural features
|
||||||
|
|
||||||
#
|
#
|
||||||
# ARMv8.2 architectural features
|
# ARMv8.2 architectural features
|
||||||
#
|
#
|
||||||
|
CONFIG_AS_HAS_ARMV8_2=y
|
||||||
|
CONFIG_AS_HAS_SHA3=y
|
||||||
CONFIG_ARM64_PMEM=y
|
CONFIG_ARM64_PMEM=y
|
||||||
CONFIG_ARM64_RAS_EXTN=y
|
CONFIG_ARM64_RAS_EXTN=y
|
||||||
CONFIG_ARM64_CNP=y
|
CONFIG_ARM64_CNP=y
|
||||||
|
@ -466,6 +474,10 @@ CONFIG_ARM64_CNP=y
|
||||||
# ARMv8.3 architectural features
|
# ARMv8.3 architectural features
|
||||||
#
|
#
|
||||||
CONFIG_ARM64_PTR_AUTH=y
|
CONFIG_ARM64_PTR_AUTH=y
|
||||||
|
CONFIG_ARM64_PTR_AUTH_KERNEL=y
|
||||||
|
CONFIG_CC_HAS_BRANCH_PROT_PAC_RET=y
|
||||||
|
CONFIG_CC_HAS_SIGN_RETURN_ADDRESS=y
|
||||||
|
CONFIG_AS_HAS_PAC=y
|
||||||
CONFIG_AS_HAS_CFI_NEGATE_RA_STATE=y
|
CONFIG_AS_HAS_CFI_NEGATE_RA_STATE=y
|
||||||
# end of ARMv8.3 architectural features
|
# end of ARMv8.3 architectural features
|
||||||
|
|
||||||
|
@ -473,13 +485,19 @@ CONFIG_AS_HAS_CFI_NEGATE_RA_STATE=y
|
||||||
# ARMv8.4 architectural features
|
# ARMv8.4 architectural features
|
||||||
#
|
#
|
||||||
CONFIG_ARM64_AMU_EXTN=y
|
CONFIG_ARM64_AMU_EXTN=y
|
||||||
|
CONFIG_AS_HAS_ARMV8_4=y
|
||||||
|
CONFIG_ARM64_TLB_RANGE=y
|
||||||
# end of ARMv8.4 architectural features
|
# end of ARMv8.4 architectural features
|
||||||
|
|
||||||
#
|
#
|
||||||
# ARMv8.5 architectural features
|
# ARMv8.5 architectural features
|
||||||
#
|
#
|
||||||
|
CONFIG_AS_HAS_ARMV8_5=y
|
||||||
CONFIG_ARM64_BTI=y
|
CONFIG_ARM64_BTI=y
|
||||||
|
CONFIG_CC_HAS_BRANCH_PROT_PAC_RET_BTI=y
|
||||||
CONFIG_ARM64_E0PD=y
|
CONFIG_ARM64_E0PD=y
|
||||||
|
CONFIG_ARM64_AS_HAS_MTE=y
|
||||||
|
CONFIG_ARM64_MTE=y
|
||||||
# end of ARMv8.5 architectural features
|
# end of ARMv8.5 architectural features
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -496,6 +514,8 @@ CONFIG_ARM64_PSEUDO_NMI=y
|
||||||
CONFIG_RELOCATABLE=y
|
CONFIG_RELOCATABLE=y
|
||||||
CONFIG_RANDOMIZE_BASE=y
|
CONFIG_RANDOMIZE_BASE=y
|
||||||
CONFIG_RANDOMIZE_MODULE_REGION_FULL=y
|
CONFIG_RANDOMIZE_MODULE_REGION_FULL=y
|
||||||
|
CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
|
||||||
|
CONFIG_STACKPROTECTOR_PER_TASK=y
|
||||||
CONFIG_ARCH_NR_GPIO=2048
|
CONFIG_ARCH_NR_GPIO=2048
|
||||||
# end of Kernel Features
|
# end of Kernel Features
|
||||||
|
|
||||||
|
@ -689,6 +709,7 @@ CONFIG_KVM=y
|
||||||
CONFIG_CRASH_CORE=y
|
CONFIG_CRASH_CORE=y
|
||||||
CONFIG_KEXEC_CORE=y
|
CONFIG_KEXEC_CORE=y
|
||||||
CONFIG_HAVE_IMA_KEXEC=y
|
CONFIG_HAVE_IMA_KEXEC=y
|
||||||
|
CONFIG_ARCH_HAS_SUBPAGE_FAULTS=y
|
||||||
CONFIG_KPROBES=y
|
CONFIG_KPROBES=y
|
||||||
CONFIG_JUMP_LABEL=y
|
CONFIG_JUMP_LABEL=y
|
||||||
# CONFIG_STATIC_KEYS_SELFTEST is not set
|
# CONFIG_STATIC_KEYS_SELFTEST is not set
|
||||||
|
@ -738,6 +759,8 @@ CONFIG_HAVE_ARCH_STACKLEAK=y
|
||||||
CONFIG_HAVE_STACKPROTECTOR=y
|
CONFIG_HAVE_STACKPROTECTOR=y
|
||||||
CONFIG_STACKPROTECTOR=y
|
CONFIG_STACKPROTECTOR=y
|
||||||
CONFIG_STACKPROTECTOR_STRONG=y
|
CONFIG_STACKPROTECTOR_STRONG=y
|
||||||
|
CONFIG_ARCH_SUPPORTS_SHADOW_CALL_STACK=y
|
||||||
|
# CONFIG_SHADOW_CALL_STACK is not set
|
||||||
CONFIG_ARCH_SUPPORTS_LTO_CLANG=y
|
CONFIG_ARCH_SUPPORTS_LTO_CLANG=y
|
||||||
CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y
|
CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y
|
||||||
CONFIG_LTO_NONE=y
|
CONFIG_LTO_NONE=y
|
||||||
|
@ -1077,6 +1100,7 @@ CONFIG_ZONE_DEVICE=y
|
||||||
CONFIG_HMM_MIRROR=y
|
CONFIG_HMM_MIRROR=y
|
||||||
CONFIG_GET_FREE_REGION=y
|
CONFIG_GET_FREE_REGION=y
|
||||||
CONFIG_DEVICE_PRIVATE=y
|
CONFIG_DEVICE_PRIVATE=y
|
||||||
|
CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y
|
||||||
CONFIG_VM_EVENT_COUNTERS=y
|
CONFIG_VM_EVENT_COUNTERS=y
|
||||||
# CONFIG_PERCPU_STATS is not set
|
# CONFIG_PERCPU_STATS is not set
|
||||||
# CONFIG_GUP_TEST is not set
|
# CONFIG_GUP_TEST is not set
|
||||||
|
@ -1742,8 +1766,6 @@ CONFIG_NET_CLS_FW=m
|
||||||
CONFIG_NET_CLS_U32=m
|
CONFIG_NET_CLS_U32=m
|
||||||
# CONFIG_CLS_U32_PERF is not set
|
# CONFIG_CLS_U32_PERF is not set
|
||||||
CONFIG_CLS_U32_MARK=y
|
CONFIG_CLS_U32_MARK=y
|
||||||
CONFIG_NET_CLS_RSVP=m
|
|
||||||
CONFIG_NET_CLS_RSVP6=m
|
|
||||||
CONFIG_NET_CLS_FLOW=m
|
CONFIG_NET_CLS_FLOW=m
|
||||||
CONFIG_NET_CLS_CGROUP=m
|
CONFIG_NET_CLS_CGROUP=m
|
||||||
CONFIG_NET_CLS_BPF=m
|
CONFIG_NET_CLS_BPF=m
|
||||||
|
@ -2040,7 +2062,7 @@ CONFIG_NET_SOCK_MSG=y
|
||||||
CONFIG_NET_DEVLINK=y
|
CONFIG_NET_DEVLINK=y
|
||||||
CONFIG_PAGE_POOL=y
|
CONFIG_PAGE_POOL=y
|
||||||
CONFIG_PAGE_POOL_STATS=y
|
CONFIG_PAGE_POOL_STATS=y
|
||||||
CONFIG_FAILOVER=m
|
CONFIG_FAILOVER=y
|
||||||
CONFIG_ETHTOOL_NETLINK=y
|
CONFIG_ETHTOOL_NETLINK=y
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -2873,7 +2895,7 @@ CONFIG_SCSI_DEBUG=m
|
||||||
CONFIG_SCSI_PMCRAID=m
|
CONFIG_SCSI_PMCRAID=m
|
||||||
CONFIG_SCSI_PM8001=m
|
CONFIG_SCSI_PM8001=m
|
||||||
CONFIG_SCSI_BFA_FC=m
|
CONFIG_SCSI_BFA_FC=m
|
||||||
CONFIG_SCSI_VIRTIO=m
|
CONFIG_SCSI_VIRTIO=y
|
||||||
CONFIG_SCSI_CHELSIO_FCOE=m
|
CONFIG_SCSI_CHELSIO_FCOE=m
|
||||||
CONFIG_SCSI_DH=y
|
CONFIG_SCSI_DH=y
|
||||||
CONFIG_SCSI_DH_RDAC=m
|
CONFIG_SCSI_DH_RDAC=m
|
||||||
|
@ -3116,8 +3138,8 @@ CONFIG_RIONET_RX_SIZE=128
|
||||||
CONFIG_TUN=y
|
CONFIG_TUN=y
|
||||||
CONFIG_TAP=m
|
CONFIG_TAP=m
|
||||||
# CONFIG_TUN_VNET_CROSS_LE is not set
|
# CONFIG_TUN_VNET_CROSS_LE is not set
|
||||||
CONFIG_VETH=m
|
CONFIG_VETH=y
|
||||||
CONFIG_VIRTIO_NET=m
|
CONFIG_VIRTIO_NET=y
|
||||||
CONFIG_NLMON=m
|
CONFIG_NLMON=m
|
||||||
CONFIG_NET_VRF=m
|
CONFIG_NET_VRF=m
|
||||||
CONFIG_VSOCKMON=m
|
CONFIG_VSOCKMON=m
|
||||||
|
@ -4184,7 +4206,7 @@ CONFIG_VMXNET3=m
|
||||||
CONFIG_FUJITSU_ES=m
|
CONFIG_FUJITSU_ES=m
|
||||||
CONFIG_USB4_NET=m
|
CONFIG_USB4_NET=m
|
||||||
CONFIG_NETDEVSIM=m
|
CONFIG_NETDEVSIM=m
|
||||||
CONFIG_NET_FAILOVER=m
|
CONFIG_NET_FAILOVER=y
|
||||||
CONFIG_ISDN=y
|
CONFIG_ISDN=y
|
||||||
CONFIG_ISDN_CAPI=y
|
CONFIG_ISDN_CAPI=y
|
||||||
CONFIG_CAPI_TRACE=y
|
CONFIG_CAPI_TRACE=y
|
||||||
|
@ -4792,7 +4814,7 @@ CONFIG_I2C_MUX_MLXCPLD=m
|
||||||
|
|
||||||
CONFIG_I2C_HELPER_AUTO=y
|
CONFIG_I2C_HELPER_AUTO=y
|
||||||
CONFIG_I2C_SMBUS=m
|
CONFIG_I2C_SMBUS=m
|
||||||
CONFIG_I2C_ALGOBIT=m
|
CONFIG_I2C_ALGOBIT=y
|
||||||
CONFIG_I2C_ALGOPCA=m
|
CONFIG_I2C_ALGOPCA=m
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -6870,10 +6892,7 @@ CONFIG_MEDIA_ATTACH=y
|
||||||
# IR I2C driver auto-selected by 'Autoselect ancillary drivers'
|
# IR I2C driver auto-selected by 'Autoselect ancillary drivers'
|
||||||
#
|
#
|
||||||
CONFIG_VIDEO_IR_I2C=m
|
CONFIG_VIDEO_IR_I2C=m
|
||||||
|
CONFIG_VIDEO_CAMERA_SENSOR=y
|
||||||
#
|
|
||||||
# Camera sensor devices
|
|
||||||
#
|
|
||||||
CONFIG_VIDEO_APTINA_PLL=m
|
CONFIG_VIDEO_APTINA_PLL=m
|
||||||
# CONFIG_VIDEO_AR0521 is not set
|
# CONFIG_VIDEO_AR0521 is not set
|
||||||
CONFIG_VIDEO_HI556=m
|
CONFIG_VIDEO_HI556=m
|
||||||
|
@ -6944,7 +6963,6 @@ CONFIG_VIDEO_VS6624=m
|
||||||
# CONFIG_VIDEO_CCS is not set
|
# CONFIG_VIDEO_CCS is not set
|
||||||
CONFIG_VIDEO_ET8EK8=m
|
CONFIG_VIDEO_ET8EK8=m
|
||||||
CONFIG_VIDEO_M5MOLS=m
|
CONFIG_VIDEO_M5MOLS=m
|
||||||
# end of Camera sensor devices
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Lens drivers
|
# Lens drivers
|
||||||
|
@ -7297,9 +7315,10 @@ CONFIG_DVB_DUMMY_FE=m
|
||||||
#
|
#
|
||||||
CONFIG_APERTURE_HELPERS=y
|
CONFIG_APERTURE_HELPERS=y
|
||||||
# CONFIG_TEGRA_HOST1X is not set
|
# CONFIG_TEGRA_HOST1X is not set
|
||||||
CONFIG_DRM=m
|
CONFIG_DRM=y
|
||||||
CONFIG_DRM_MIPI_DBI=m
|
CONFIG_DRM_MIPI_DBI=m
|
||||||
CONFIG_DRM_MIPI_DSI=y
|
CONFIG_DRM_MIPI_DSI=y
|
||||||
|
# CONFIG_DRM_DEBUG_MM is not set
|
||||||
CONFIG_DRM_KMS_HELPER=m
|
CONFIG_DRM_KMS_HELPER=m
|
||||||
# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set
|
# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set
|
||||||
# CONFIG_DRM_DEBUG_MODESET_LOCK is not set
|
# CONFIG_DRM_DEBUG_MODESET_LOCK is not set
|
||||||
|
@ -7379,7 +7398,7 @@ CONFIG_DRM_VKMS=m
|
||||||
# CONFIG_DRM_EXYNOS is not set
|
# CONFIG_DRM_EXYNOS is not set
|
||||||
CONFIG_DRM_ROCKCHIP=m
|
CONFIG_DRM_ROCKCHIP=m
|
||||||
CONFIG_ROCKCHIP_VOP=y
|
CONFIG_ROCKCHIP_VOP=y
|
||||||
# CONFIG_ROCKCHIP_VOP2 is not set
|
CONFIG_ROCKCHIP_VOP2=y
|
||||||
CONFIG_ROCKCHIP_ANALOGIX_DP=y
|
CONFIG_ROCKCHIP_ANALOGIX_DP=y
|
||||||
CONFIG_ROCKCHIP_CDN_DP=y
|
CONFIG_ROCKCHIP_CDN_DP=y
|
||||||
CONFIG_ROCKCHIP_DW_HDMI=y
|
CONFIG_ROCKCHIP_DW_HDMI=y
|
||||||
|
@ -9611,10 +9630,10 @@ CONFIG_VIRTIO_MENU=y
|
||||||
CONFIG_VIRTIO_PCI=y
|
CONFIG_VIRTIO_PCI=y
|
||||||
CONFIG_VIRTIO_PCI_LEGACY=y
|
CONFIG_VIRTIO_PCI_LEGACY=y
|
||||||
CONFIG_VIRTIO_VDPA=m
|
CONFIG_VIRTIO_VDPA=m
|
||||||
CONFIG_VIRTIO_PMEM=m
|
CONFIG_VIRTIO_PMEM=y
|
||||||
CONFIG_VIRTIO_BALLOON=y
|
CONFIG_VIRTIO_BALLOON=y
|
||||||
# CONFIG_VIRTIO_MEM is not set
|
CONFIG_VIRTIO_MEM=y
|
||||||
CONFIG_VIRTIO_INPUT=m
|
CONFIG_VIRTIO_INPUT=y
|
||||||
CONFIG_VIRTIO_MMIO=y
|
CONFIG_VIRTIO_MMIO=y
|
||||||
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
|
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
|
||||||
CONFIG_VIRTIO_DMA_SHARED_BUFFER=m
|
CONFIG_VIRTIO_DMA_SHARED_BUFFER=m
|
||||||
|
@ -12317,7 +12336,6 @@ CONFIG_IMA_APPRAISE=y
|
||||||
# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
|
# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
|
||||||
CONFIG_IMA_APPRAISE_BOOTPARAM=y
|
CONFIG_IMA_APPRAISE_BOOTPARAM=y
|
||||||
CONFIG_IMA_APPRAISE_MODSIG=y
|
CONFIG_IMA_APPRAISE_MODSIG=y
|
||||||
CONFIG_IMA_TRUSTED_KEYRING=y
|
|
||||||
# CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY is not set
|
# CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY is not set
|
||||||
# CONFIG_IMA_BLACKLIST_KEYRING is not set
|
# CONFIG_IMA_BLACKLIST_KEYRING is not set
|
||||||
# CONFIG_IMA_LOAD_X509 is not set
|
# CONFIG_IMA_LOAD_X509 is not set
|
||||||
|
@ -12976,8 +12994,10 @@ CONFIG_MEMORY_NOTIFIER_ERROR_INJECT=m
|
||||||
# CONFIG_DEBUG_PER_CPU_MAPS is not set
|
# CONFIG_DEBUG_PER_CPU_MAPS is not set
|
||||||
CONFIG_HAVE_ARCH_KASAN=y
|
CONFIG_HAVE_ARCH_KASAN=y
|
||||||
CONFIG_HAVE_ARCH_KASAN_SW_TAGS=y
|
CONFIG_HAVE_ARCH_KASAN_SW_TAGS=y
|
||||||
|
CONFIG_HAVE_ARCH_KASAN_HW_TAGS=y
|
||||||
CONFIG_HAVE_ARCH_KASAN_VMALLOC=y
|
CONFIG_HAVE_ARCH_KASAN_VMALLOC=y
|
||||||
CONFIG_CC_HAS_KASAN_GENERIC=y
|
CONFIG_CC_HAS_KASAN_GENERIC=y
|
||||||
|
CONFIG_CC_HAS_KASAN_SW_TAGS=y
|
||||||
CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
|
CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
|
||||||
# CONFIG_KASAN is not set
|
# CONFIG_KASAN is not set
|
||||||
CONFIG_HAVE_ARCH_KFENCE=y
|
CONFIG_HAVE_ARCH_KFENCE=y
|
||||||
|
|
12
debian/control
vendored
12
debian/control
vendored
|
@ -5,6 +5,8 @@ Maintainer: Fabian Mastenbroek <mail.fabianm@gmail.com>
|
||||||
Build-Depends: asciidoc,
|
Build-Depends: asciidoc,
|
||||||
automake,
|
automake,
|
||||||
bc,
|
bc,
|
||||||
|
libncurses-dev,
|
||||||
|
pkg-config,
|
||||||
bison,
|
bison,
|
||||||
cpio,
|
cpio,
|
||||||
debhelper (>= 10~),
|
debhelper (>= 10~),
|
||||||
|
@ -27,7 +29,7 @@ Build-Depends: asciidoc,
|
||||||
xmlto,
|
xmlto,
|
||||||
zlib1g-dev,
|
zlib1g-dev,
|
||||||
zstd
|
zstd
|
||||||
Build-Conflicts: pve-headers-6.1.51-generic,
|
Build-Conflicts: pve-headers-6.1.60-generic,
|
||||||
Vcs-Git: git://github.com/fabianishere/pve-generic-kernel.git
|
Vcs-Git: git://github.com/fabianishere/pve-generic-kernel.git
|
||||||
Vcs-Browser: https://github.com/fabianishere/pve-generic-kernel
|
Vcs-Browser: https://github.com/fabianishere/pve-generic-kernel
|
||||||
|
|
||||||
|
@ -46,7 +48,7 @@ Package: pve-headers-6.1-generic
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Section: admin
|
Section: admin
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Depends: pve-headers-6.1.51-generic,
|
Depends: pve-headers-6.1.60-generic,
|
||||||
Description: Latest Proxmox Edge Kernel Headers
|
Description: Latest Proxmox Edge Kernel Headers
|
||||||
This is a metapackage which will install the kernel headers
|
This is a metapackage which will install the kernel headers
|
||||||
for the latest available Proxmox Edge kernel from the 6.1
|
for the latest available Proxmox Edge kernel from the 6.1
|
||||||
|
@ -57,12 +59,12 @@ Architecture: all
|
||||||
Section: admin
|
Section: admin
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Depends: pve-firmware,
|
Depends: pve-firmware,
|
||||||
pve-kernel-6.1.51-generic,
|
pve-kernel-6.1.60-generic,
|
||||||
Description: Latest Proxmox Edge Kernel Image
|
Description: Latest Proxmox Edge Kernel Image
|
||||||
This is a metapackage which will install the latest available
|
This is a metapackage which will install the latest available
|
||||||
Proxmox Edge kernel from the 6.1 series.
|
Proxmox Edge kernel from the 6.1 series.
|
||||||
|
|
||||||
Package: pve-headers-6.1.51-generic
|
Package: pve-headers-6.1.60-generic
|
||||||
Section: devel
|
Section: devel
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Architecture: any
|
Architecture: any
|
||||||
|
@ -72,7 +74,7 @@ Depends:
|
||||||
Description: The Proxmox Edge Kernel Headers
|
Description: The Proxmox Edge Kernel Headers
|
||||||
This package contains the Proxmox Edge Linux kernel headers
|
This package contains the Proxmox Edge Linux kernel headers
|
||||||
|
|
||||||
Package: pve-kernel-6.1.51-generic
|
Package: pve-kernel-6.1.60-generic
|
||||||
Section: admin
|
Section: admin
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Architecture: any
|
Architecture: any
|
||||||
|
|
5
debian/patches/series.zfs
vendored
5
debian/patches/series.zfs
vendored
|
@ -6,5 +6,6 @@ zfs/0005-Enable-zed-emails.patch
|
||||||
zfs/0006-dont-symlink-zed-scripts.patch
|
zfs/0006-dont-symlink-zed-scripts.patch
|
||||||
zfs/0007-Add-systemd-unit-for-importing-specific-pools.patch
|
zfs/0007-Add-systemd-unit-for-importing-specific-pools.patch
|
||||||
zfs/0008-Patch-move-manpage-arcstat-1-to-arcstat-8.patch
|
zfs/0008-Patch-move-manpage-arcstat-1-to-arcstat-8.patch
|
||||||
zfs/0009-arcstat-Fix-integer-division-with-python3.patch
|
zfs/0009-arc-stat-summary-guard-access-to-l2arc-MFU-MRU-stats.patch
|
||||||
zfs/0010-arc-stat-summary-guard-access-to-l2arc-MFU-MRU-stats.patch
|
zfs/0010-zvol-Remove-broken-blk-mq-optimization.patch
|
||||||
|
zfs/0011-Revert-zvol-Temporally-disable-blk-mq.patch
|
||||||
|
|
|
@ -13,13 +13,13 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/etc/systemd/system/zfs-zed.service.in b/etc/systemd/system/zfs-zed.service.in
|
diff --git a/etc/systemd/system/zfs-zed.service.in b/etc/systemd/system/zfs-zed.service.in
|
||||||
index be80025a4..20ce8e632 100644
|
index be2fc6734..7606604ec 100644
|
||||||
--- a/etc/systemd/system/zfs-zed.service.in
|
--- a/etc/systemd/system/zfs-zed.service.in
|
||||||
+++ b/etc/systemd/system/zfs-zed.service.in
|
+++ b/etc/systemd/system/zfs-zed.service.in
|
||||||
@@ -4,7 +4,7 @@ Documentation=man:zed(8)
|
@@ -5,7 +5,7 @@ ConditionPathIsDirectory=/sys/module/zfs
|
||||||
ConditionPathIsDirectory=/sys/module/zfs
|
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
|
EnvironmentFile=-@initconfdir@/zfs
|
||||||
-ExecStart=@sbindir@/zed -F
|
-ExecStart=@sbindir@/zed -F
|
||||||
+ExecStart=/usr/sbin/zed -F
|
+ExecStart=/usr/sbin/zed -F
|
||||||
Restart=always
|
Restart=always
|
||||||
|
|
|
@ -14,13 +14,13 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/etc/systemd/system/zfs-import-scan.service.in b/etc/systemd/system/zfs-import-scan.service.in
|
diff --git a/etc/systemd/system/zfs-import-scan.service.in b/etc/systemd/system/zfs-import-scan.service.in
|
||||||
index 598ef501b..e4f3a70c1 100644
|
index c5dd45d87..1c792edf0 100644
|
||||||
--- a/etc/systemd/system/zfs-import-scan.service.in
|
--- a/etc/systemd/system/zfs-import-scan.service.in
|
||||||
+++ b/etc/systemd/system/zfs-import-scan.service.in
|
+++ b/etc/systemd/system/zfs-import-scan.service.in
|
||||||
@@ -13,7 +13,7 @@ ConditionPathIsDirectory=/sys/module/zfs
|
@@ -14,7 +14,7 @@ ConditionPathIsDirectory=/sys/module/zfs
|
||||||
[Service]
|
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
RemainAfterExit=yes
|
RemainAfterExit=yes
|
||||||
|
EnvironmentFile=-@initconfdir@/zfs
|
||||||
-ExecStart=@sbindir@/zpool import -aN -o cachefile=none $ZPOOL_IMPORT_OPTS
|
-ExecStart=@sbindir@/zpool import -aN -o cachefile=none $ZPOOL_IMPORT_OPTS
|
||||||
+ExecStart=@sbindir@/zpool import -aN -d /dev/disk/by-id -o cachefile=none $ZPOOL_IMPORT_OPTS
|
+ExecStart=@sbindir@/zpool import -aN -d /dev/disk/by-id -o cachefile=none $ZPOOL_IMPORT_OPTS
|
||||||
|
|
||||||
|
|
|
@ -13,10 +13,10 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/cmd/zed/zed.d/zed.rc b/cmd/zed/zed.d/zed.rc
|
diff --git a/cmd/zed/zed.d/zed.rc b/cmd/zed/zed.d/zed.rc
|
||||||
index 227b26c26..240d0dbfa 100644
|
index 78dc1afc7..41d5539ea 100644
|
||||||
--- a/cmd/zed/zed.d/zed.rc
|
--- a/cmd/zed/zed.d/zed.rc
|
||||||
+++ b/cmd/zed/zed.d/zed.rc
|
+++ b/cmd/zed/zed.d/zed.rc
|
||||||
@@ -42,7 +42,7 @@ ZED_EMAIL_ADDR="root"
|
@@ -41,7 +41,7 @@ ZED_EMAIL_ADDR="root"
|
||||||
##
|
##
|
||||||
# Minimum number of seconds between notifications for a similar event.
|
# Minimum number of seconds between notifications for a similar event.
|
||||||
#
|
#
|
||||||
|
|
|
@ -3,29 +3,44 @@ From: Antonio Russo <antonio.e.russo@gmail.com>
|
||||||
Date: Fri, 20 Mar 2020 17:28:43 +0100
|
Date: Fri, 20 Mar 2020 17:28:43 +0100
|
||||||
Subject: [PATCH] dont symlink zed scripts
|
Subject: [PATCH] dont symlink zed scripts
|
||||||
|
|
||||||
(cherry picked and adapted from 5cee380324d74e640d5dd7a360faba3994c8007f [0])
|
Of the zedlet scripts shipped by upstream, a subset are enabled by
|
||||||
|
default, by creating symlinks in /etc/zfs/zed.d. These symlinks are
|
||||||
|
shipped in the zfs-zed package. dpkg, however, does not support
|
||||||
|
conffile handling of symlinks, and therefore any changes (removals) to
|
||||||
|
the symlinks are not preserved on package upgrade.
|
||||||
|
|
||||||
[0] https://salsa.debian.org/zfsonlinux-team/zfs.git
|
To address this policy violation, we:
|
||||||
|
|
||||||
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
|
1. During package build, create a list of enabled-by-default zedlets,
|
||||||
|
instead of creating symlinks.
|
||||||
|
2. On package removal, identify all enabled-by-default zedlets whose
|
||||||
|
symlinks do not exist (i.e., were removed by the user). This is done
|
||||||
|
by creating "whiteout" links to /dev/null in their place).
|
||||||
|
3. On package installation, create links to enabled-by-default zedlets
|
||||||
|
UNLESS there is already a file there (i.e., abort if there is a
|
||||||
|
whiteout link).
|
||||||
|
4. We also clean up broken symlinks to removed zedlets at package
|
||||||
|
postinst.
|
||||||
|
|
||||||
Description: track default symlinks, instead of symlinking
|
Description: track default symlinks, instead of symlinking
|
||||||
Forwarded: no need
|
Forwarded: no need
|
||||||
|
(cherry picked from https://salsa.debian.org/zfsonlinux-team/zfs/-/commit/5cee380324d7)
|
||||||
|
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
|
||||||
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||||
---
|
---
|
||||||
cmd/zed/zed.d/Makefile.am | 2 +-
|
cmd/zed/zed.d/Makefile.am | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/cmd/zed/zed.d/Makefile.am b/cmd/zed/zed.d/Makefile.am
|
diff --git a/cmd/zed/zed.d/Makefile.am b/cmd/zed/zed.d/Makefile.am
|
||||||
index 2c8173b3e..ad39292e4 100644
|
index 812558cf6..f802cf140 100644
|
||||||
--- a/cmd/zed/zed.d/Makefile.am
|
--- a/cmd/zed/zed.d/Makefile.am
|
||||||
+++ b/cmd/zed/zed.d/Makefile.am
|
+++ b/cmd/zed/zed.d/Makefile.am
|
||||||
@@ -49,7 +49,7 @@ install-data-hook:
|
@@ -48,7 +48,7 @@ zed-install-data-hook:
|
||||||
for f in $(zedconfdefaults); do \
|
set -x; for f in $(zedconfdefaults); do \
|
||||||
test -f "$(DESTDIR)$(zedconfdir)/$${f}" -o \
|
[ -f "$(DESTDIR)$(zedconfdir)/$${f}" ] ||\
|
||||||
-L "$(DESTDIR)$(zedconfdir)/$${f}" || \
|
[ -L "$(DESTDIR)$(zedconfdir)/$${f}" ] || \
|
||||||
- ln -s "$(zedexecdir)/$${f}" "$(DESTDIR)$(zedconfdir)"; \
|
- $(LN_S) "$(zedexecdir)/$${f}" "$(DESTDIR)$(zedconfdir)"; \
|
||||||
+ echo "$${f}" >> "$(DESTDIR)$(zedexecdir)/DEFAULT-ENABLED" ; \
|
+ echo "$${f}" >> "$(DESTDIR)$(zedexecdir)/DEFAULT-ENABLED" ; \
|
||||||
done
|
done
|
||||||
chmod 0600 "$(DESTDIR)$(zedconfdir)/zed.rc"
|
|
||||||
|
|
||||||
|
SHELLCHECKSCRIPTS += $(dist_zedconf_DATA) $(dist_zedexec_SCRIPTS) $(nodist_zedexec_SCRIPTS)
|
||||||
|
|
|
@ -13,16 +13,28 @@ can contain characters which will be escaped by systemd.
|
||||||
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
|
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
|
||||||
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||||
---
|
---
|
||||||
etc/systemd/system/50-zfs.preset.in | 1 +
|
etc/Makefile.am | 1 +
|
||||||
etc/systemd/system/Makefile.am | 1 +
|
etc/systemd/system/50-zfs.preset | 1 +
|
||||||
etc/systemd/system/zfs-import@.service.in | 16 ++++++++++++++++
|
etc/systemd/system/zfs-import@.service.in | 16 ++++++++++++++++
|
||||||
3 files changed, 18 insertions(+)
|
3 files changed, 18 insertions(+)
|
||||||
create mode 100644 etc/systemd/system/zfs-import@.service.in
|
create mode 100644 etc/systemd/system/zfs-import@.service.in
|
||||||
|
|
||||||
diff --git a/etc/systemd/system/50-zfs.preset.in b/etc/systemd/system/50-zfs.preset.in
|
diff --git a/etc/Makefile.am b/etc/Makefile.am
|
||||||
|
index 7187762d3..de131dc87 100644
|
||||||
|
--- a/etc/Makefile.am
|
||||||
|
+++ b/etc/Makefile.am
|
||||||
|
@@ -54,6 +54,7 @@ dist_systemdpreset_DATA = \
|
||||||
|
systemdunit_DATA = \
|
||||||
|
%D%/systemd/system/zfs-import-cache.service \
|
||||||
|
%D%/systemd/system/zfs-import-scan.service \
|
||||||
|
+ %D%/systemd/system/zfs-import@.service \
|
||||||
|
%D%/systemd/system/zfs-import.target \
|
||||||
|
%D%/systemd/system/zfs-mount.service \
|
||||||
|
%D%/systemd/system/zfs-scrub-monthly@.timer \
|
||||||
|
diff --git a/etc/systemd/system/50-zfs.preset b/etc/systemd/system/50-zfs.preset
|
||||||
index e4056a92c..030611419 100644
|
index e4056a92c..030611419 100644
|
||||||
--- a/etc/systemd/system/50-zfs.preset.in
|
--- a/etc/systemd/system/50-zfs.preset
|
||||||
+++ b/etc/systemd/system/50-zfs.preset.in
|
+++ b/etc/systemd/system/50-zfs.preset
|
||||||
@@ -1,6 +1,7 @@
|
@@ -1,6 +1,7 @@
|
||||||
# ZFS is enabled by default
|
# ZFS is enabled by default
|
||||||
enable zfs-import-cache.service
|
enable zfs-import-cache.service
|
||||||
|
@ -31,18 +43,6 @@ index e4056a92c..030611419 100644
|
||||||
enable zfs-import.target
|
enable zfs-import.target
|
||||||
enable zfs-mount.service
|
enable zfs-mount.service
|
||||||
enable zfs-share.service
|
enable zfs-share.service
|
||||||
diff --git a/etc/systemd/system/Makefile.am b/etc/systemd/system/Makefile.am
|
|
||||||
index 35f833de5..af3ae597c 100644
|
|
||||||
--- a/etc/systemd/system/Makefile.am
|
|
||||||
+++ b/etc/systemd/system/Makefile.am
|
|
||||||
@@ -7,6 +7,7 @@ systemdunit_DATA = \
|
|
||||||
zfs-zed.service \
|
|
||||||
zfs-import-cache.service \
|
|
||||||
zfs-import-scan.service \
|
|
||||||
+ zfs-import@.service \
|
|
||||||
zfs-mount.service \
|
|
||||||
zfs-share.service \
|
|
||||||
zfs-volume-wait.service \
|
|
||||||
diff --git a/etc/systemd/system/zfs-import@.service.in b/etc/systemd/system/zfs-import@.service.in
|
diff --git a/etc/systemd/system/zfs-import@.service.in b/etc/systemd/system/zfs-import@.service.in
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 000000000..9b4ee9371
|
index 000000000..9b4ee9371
|
||||||
|
|
|
@ -15,36 +15,36 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||||
rename man/{man1/arcstat.1 => man8/arcstat.8} (99%)
|
rename man/{man1/arcstat.1 => man8/arcstat.8} (99%)
|
||||||
|
|
||||||
diff --git a/man/Makefile.am b/man/Makefile.am
|
diff --git a/man/Makefile.am b/man/Makefile.am
|
||||||
index 64650c2b9..95a66a62f 100644
|
index 36c1aede1..94fd96e58 100644
|
||||||
--- a/man/Makefile.am
|
--- a/man/Makefile.am
|
||||||
+++ b/man/Makefile.am
|
+++ b/man/Makefile.am
|
||||||
@@ -8,7 +8,6 @@ dist_man_MANS = \
|
@@ -2,7 +2,6 @@ dist_noinst_man_MANS = \
|
||||||
man1/ztest.1 \
|
%D%/man1/cstyle.1
|
||||||
man1/raidz_test.1 \
|
|
||||||
man1/zvol_wait.1 \
|
dist_man_MANS = \
|
||||||
- man1/arcstat.1 \
|
- %D%/man1/arcstat.1 \
|
||||||
\
|
%D%/man1/raidz_test.1 \
|
||||||
man5/vdev_id.conf.5 \
|
%D%/man1/test-runner.1 \
|
||||||
\
|
%D%/man1/zhack.1 \
|
||||||
@@ -22,6 +21,7 @@ dist_man_MANS = \
|
@@ -22,6 +21,7 @@ dist_man_MANS = \
|
||||||
man7/zpoolconcepts.7 \
|
%D%/man7/zpoolconcepts.7 \
|
||||||
man7/zpoolprops.7 \
|
%D%/man7/zpoolprops.7 \
|
||||||
\
|
\
|
||||||
+ man8/arcstat.8 \
|
+ %D%/man8/arcstat.8 \
|
||||||
man8/fsck.zfs.8 \
|
%D%/man8/fsck.zfs.8 \
|
||||||
man8/mount.zfs.8 \
|
%D%/man8/mount.zfs.8 \
|
||||||
man8/vdev_id.8 \
|
%D%/man8/vdev_id.8 \
|
||||||
diff --git a/man/man1/arcstat.1 b/man/man8/arcstat.8
|
diff --git a/man/man1/arcstat.1 b/man/man8/arcstat.8
|
||||||
similarity index 99%
|
similarity index 99%
|
||||||
rename from man/man1/arcstat.1
|
rename from man/man1/arcstat.1
|
||||||
rename to man/man8/arcstat.8
|
rename to man/man8/arcstat.8
|
||||||
index a69cd8937..dfe9c971b 100644
|
index 82358fa68..a8fb55498 100644
|
||||||
--- a/man/man1/arcstat.1
|
--- a/man/man1/arcstat.1
|
||||||
+++ b/man/man8/arcstat.8
|
+++ b/man/man8/arcstat.8
|
||||||
@@ -13,7 +13,7 @@
|
@@ -13,7 +13,7 @@
|
||||||
.\" Copyright (c) 2020 by AJ Jordan. All rights reserved.
|
.\" Copyright (c) 2020 by AJ Jordan. All rights reserved.
|
||||||
.\"
|
.\"
|
||||||
.Dd May 26, 2021
|
.Dd December 23, 2022
|
||||||
-.Dt ARCSTAT 1
|
-.Dt ARCSTAT 1
|
||||||
+.Dt ARCSTAT 8
|
+.Dt ARCSTAT 8
|
||||||
.Os
|
.Os
|
||||||
|
|
|
@ -22,15 +22,15 @@ l2_bufc_data_asize l2_bufc_metadata_asize to .get accessor
|
||||||
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
|
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
|
||||||
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||||
---
|
---
|
||||||
cmd/arc_summary/arc_summary3 | 28 ++++++++++++++--------------
|
cmd/arc_summary | 28 ++++++++++++++--------------
|
||||||
cmd/arcstat/arcstat.in | 14 +++++++-------
|
cmd/arcstat.in | 14 +++++++-------
|
||||||
2 files changed, 21 insertions(+), 21 deletions(-)
|
2 files changed, 21 insertions(+), 21 deletions(-)
|
||||||
|
|
||||||
diff --git a/cmd/arc_summary/arc_summary3 b/cmd/arc_summary/arc_summary3
|
diff --git a/cmd/arc_summary b/cmd/arc_summary
|
||||||
index 9d0c2d30d..fd2581ae2 100755
|
index 426e02070..9de198150 100755
|
||||||
--- a/cmd/arc_summary/arc_summary3
|
--- a/cmd/arc_summary
|
||||||
+++ b/cmd/arc_summary/arc_summary3
|
+++ b/cmd/arc_summary
|
||||||
@@ -609,13 +609,13 @@ def section_arc(kstats_dict):
|
@@ -655,13 +655,13 @@ def section_arc(kstats_dict):
|
||||||
prt_i1('L2 cached evictions:', f_bytes(arc_stats['evict_l2_cached']))
|
prt_i1('L2 cached evictions:', f_bytes(arc_stats['evict_l2_cached']))
|
||||||
prt_i1('L2 eligible evictions:', f_bytes(arc_stats['evict_l2_eligible']))
|
prt_i1('L2 eligible evictions:', f_bytes(arc_stats['evict_l2_eligible']))
|
||||||
prt_i2('L2 eligible MFU evictions:',
|
prt_i2('L2 eligible MFU evictions:',
|
||||||
|
@ -48,7 +48,7 @@ index 9d0c2d30d..fd2581ae2 100755
|
||||||
prt_i1('L2 ineligible evictions:',
|
prt_i1('L2 ineligible evictions:',
|
||||||
f_bytes(arc_stats['evict_l2_ineligible']))
|
f_bytes(arc_stats['evict_l2_ineligible']))
|
||||||
print()
|
print()
|
||||||
@@ -757,20 +757,20 @@ def section_l2arc(kstats_dict):
|
@@ -851,20 +851,20 @@ def section_l2arc(kstats_dict):
|
||||||
f_perc(arc_stats['l2_hdr_size'], arc_stats['l2_size']),
|
f_perc(arc_stats['l2_hdr_size'], arc_stats['l2_size']),
|
||||||
f_bytes(arc_stats['l2_hdr_size']))
|
f_bytes(arc_stats['l2_hdr_size']))
|
||||||
prt_i2('MFU allocated size:',
|
prt_i2('MFU allocated size:',
|
||||||
|
@ -79,11 +79,11 @@ index 9d0c2d30d..fd2581ae2 100755
|
||||||
|
|
||||||
print()
|
print()
|
||||||
prt_1('L2ARC breakdown:', f_hits(l2_access_total))
|
prt_1('L2ARC breakdown:', f_hits(l2_access_total))
|
||||||
diff --git a/cmd/arcstat/arcstat.in b/cmd/arcstat/arcstat.in
|
diff --git a/cmd/arcstat.in b/cmd/arcstat.in
|
||||||
index d2b2e28d1..8004940b3 100755
|
index 8df1c62f7..833348d0e 100755
|
||||||
--- a/cmd/arcstat/arcstat.in
|
--- a/cmd/arcstat.in
|
||||||
+++ b/cmd/arcstat/arcstat.in
|
+++ b/cmd/arcstat.in
|
||||||
@@ -482,8 +482,8 @@ def calculate():
|
@@ -565,8 +565,8 @@ def calculate():
|
||||||
v["el2skip"] = d["evict_l2_skip"] // sint
|
v["el2skip"] = d["evict_l2_skip"] // sint
|
||||||
v["el2cach"] = d["evict_l2_cached"] // sint
|
v["el2cach"] = d["evict_l2_cached"] // sint
|
||||||
v["el2el"] = d["evict_l2_eligible"] // sint
|
v["el2el"] = d["evict_l2_eligible"] // sint
|
||||||
|
@ -94,7 +94,7 @@ index d2b2e28d1..8004940b3 100755
|
||||||
v["el2inel"] = d["evict_l2_ineligible"] // sint
|
v["el2inel"] = d["evict_l2_ineligible"] // sint
|
||||||
v["mtxmis"] = d["mutex_miss"] // sint
|
v["mtxmis"] = d["mutex_miss"] // sint
|
||||||
|
|
||||||
@@ -498,11 +498,11 @@ def calculate():
|
@@ -581,11 +581,11 @@ def calculate():
|
||||||
v["l2size"] = cur["l2_size"]
|
v["l2size"] = cur["l2_size"]
|
||||||
v["l2bytes"] = d["l2_read_bytes"] // sint
|
v["l2bytes"] = d["l2_read_bytes"] // sint
|
||||||
|
|
|
@ -1,134 +0,0 @@
|
||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Valmiky Arquissandas <kayvlim@gmail.com>
|
|
||||||
Date: Fri, 8 Oct 2021 16:32:27 +0100
|
|
||||||
Subject: [PATCH] arcstat: Fix integer division with python3
|
|
||||||
|
|
||||||
The arcstat script requests compatibility with python2 and python3, but
|
|
||||||
PEP 238 modified the / operator and results in erroneous output when
|
|
||||||
run under python3.
|
|
||||||
|
|
||||||
This commit replaces instances of / with //, yielding the expected
|
|
||||||
result in both versions of Python.
|
|
||||||
|
|
||||||
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
|
|
||||||
Reviewed-by: John Kennedy <john.kennedy@delphix.com>
|
|
||||||
Reviewed-by: Ryan Moeller <ryan@ixsystems.com>
|
|
||||||
Signed-off-by: Valmiky Arquissandas <foss@kayvlim.com>
|
|
||||||
Closes #12603
|
|
||||||
(cherry picked from commit 2d02bba23d83ae8fede8d281edc255f01ccd28e9)
|
|
||||||
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
|
||||||
---
|
|
||||||
cmd/arcstat/arcstat.in | 66 +++++++++++++++++++++---------------------
|
|
||||||
1 file changed, 33 insertions(+), 33 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/cmd/arcstat/arcstat.in b/cmd/arcstat/arcstat.in
|
|
||||||
index 0128fd817..d2b2e28d1 100755
|
|
||||||
--- a/cmd/arcstat/arcstat.in
|
|
||||||
+++ b/cmd/arcstat/arcstat.in
|
|
||||||
@@ -441,73 +441,73 @@ def calculate():
|
|
||||||
|
|
||||||
v = dict()
|
|
||||||
v["time"] = time.strftime("%H:%M:%S", time.localtime())
|
|
||||||
- v["hits"] = d["hits"] / sint
|
|
||||||
- v["miss"] = d["misses"] / sint
|
|
||||||
+ v["hits"] = d["hits"] // sint
|
|
||||||
+ v["miss"] = d["misses"] // sint
|
|
||||||
v["read"] = v["hits"] + v["miss"]
|
|
||||||
- v["hit%"] = 100 * v["hits"] / v["read"] if v["read"] > 0 else 0
|
|
||||||
+ v["hit%"] = 100 * v["hits"] // v["read"] if v["read"] > 0 else 0
|
|
||||||
v["miss%"] = 100 - v["hit%"] if v["read"] > 0 else 0
|
|
||||||
|
|
||||||
- v["dhit"] = (d["demand_data_hits"] + d["demand_metadata_hits"]) / sint
|
|
||||||
- v["dmis"] = (d["demand_data_misses"] + d["demand_metadata_misses"]) / sint
|
|
||||||
+ v["dhit"] = (d["demand_data_hits"] + d["demand_metadata_hits"]) // sint
|
|
||||||
+ v["dmis"] = (d["demand_data_misses"] + d["demand_metadata_misses"]) // sint
|
|
||||||
|
|
||||||
v["dread"] = v["dhit"] + v["dmis"]
|
|
||||||
- v["dh%"] = 100 * v["dhit"] / v["dread"] if v["dread"] > 0 else 0
|
|
||||||
+ v["dh%"] = 100 * v["dhit"] // v["dread"] if v["dread"] > 0 else 0
|
|
||||||
v["dm%"] = 100 - v["dh%"] if v["dread"] > 0 else 0
|
|
||||||
|
|
||||||
- v["phit"] = (d["prefetch_data_hits"] + d["prefetch_metadata_hits"]) / sint
|
|
||||||
+ v["phit"] = (d["prefetch_data_hits"] + d["prefetch_metadata_hits"]) // sint
|
|
||||||
v["pmis"] = (d["prefetch_data_misses"] +
|
|
||||||
- d["prefetch_metadata_misses"]) / sint
|
|
||||||
+ d["prefetch_metadata_misses"]) // sint
|
|
||||||
|
|
||||||
v["pread"] = v["phit"] + v["pmis"]
|
|
||||||
- v["ph%"] = 100 * v["phit"] / v["pread"] if v["pread"] > 0 else 0
|
|
||||||
+ v["ph%"] = 100 * v["phit"] // v["pread"] if v["pread"] > 0 else 0
|
|
||||||
v["pm%"] = 100 - v["ph%"] if v["pread"] > 0 else 0
|
|
||||||
|
|
||||||
v["mhit"] = (d["prefetch_metadata_hits"] +
|
|
||||||
- d["demand_metadata_hits"]) / sint
|
|
||||||
+ d["demand_metadata_hits"]) // sint
|
|
||||||
v["mmis"] = (d["prefetch_metadata_misses"] +
|
|
||||||
- d["demand_metadata_misses"]) / sint
|
|
||||||
+ d["demand_metadata_misses"]) // sint
|
|
||||||
|
|
||||||
v["mread"] = v["mhit"] + v["mmis"]
|
|
||||||
- v["mh%"] = 100 * v["mhit"] / v["mread"] if v["mread"] > 0 else 0
|
|
||||||
+ v["mh%"] = 100 * v["mhit"] // v["mread"] if v["mread"] > 0 else 0
|
|
||||||
v["mm%"] = 100 - v["mh%"] if v["mread"] > 0 else 0
|
|
||||||
|
|
||||||
v["arcsz"] = cur["size"]
|
|
||||||
v["size"] = cur["size"]
|
|
||||||
v["c"] = cur["c"]
|
|
||||||
- v["mfu"] = d["mfu_hits"] / sint
|
|
||||||
- v["mru"] = d["mru_hits"] / sint
|
|
||||||
- v["mrug"] = d["mru_ghost_hits"] / sint
|
|
||||||
- v["mfug"] = d["mfu_ghost_hits"] / sint
|
|
||||||
- v["eskip"] = d["evict_skip"] / sint
|
|
||||||
- v["el2skip"] = d["evict_l2_skip"] / sint
|
|
||||||
- v["el2cach"] = d["evict_l2_cached"] / sint
|
|
||||||
- v["el2el"] = d["evict_l2_eligible"] / sint
|
|
||||||
- v["el2mfu"] = d["evict_l2_eligible_mfu"] / sint
|
|
||||||
- v["el2mru"] = d["evict_l2_eligible_mru"] / sint
|
|
||||||
- v["el2inel"] = d["evict_l2_ineligible"] / sint
|
|
||||||
- v["mtxmis"] = d["mutex_miss"] / sint
|
|
||||||
+ v["mfu"] = d["mfu_hits"] // sint
|
|
||||||
+ v["mru"] = d["mru_hits"] // sint
|
|
||||||
+ v["mrug"] = d["mru_ghost_hits"] // sint
|
|
||||||
+ v["mfug"] = d["mfu_ghost_hits"] // sint
|
|
||||||
+ v["eskip"] = d["evict_skip"] // sint
|
|
||||||
+ v["el2skip"] = d["evict_l2_skip"] // sint
|
|
||||||
+ v["el2cach"] = d["evict_l2_cached"] // sint
|
|
||||||
+ v["el2el"] = d["evict_l2_eligible"] // sint
|
|
||||||
+ v["el2mfu"] = d["evict_l2_eligible_mfu"] // sint
|
|
||||||
+ v["el2mru"] = d["evict_l2_eligible_mru"] // sint
|
|
||||||
+ v["el2inel"] = d["evict_l2_ineligible"] // sint
|
|
||||||
+ v["mtxmis"] = d["mutex_miss"] // sint
|
|
||||||
|
|
||||||
if l2exist:
|
|
||||||
- v["l2hits"] = d["l2_hits"] / sint
|
|
||||||
- v["l2miss"] = d["l2_misses"] / sint
|
|
||||||
+ v["l2hits"] = d["l2_hits"] // sint
|
|
||||||
+ v["l2miss"] = d["l2_misses"] // sint
|
|
||||||
v["l2read"] = v["l2hits"] + v["l2miss"]
|
|
||||||
- v["l2hit%"] = 100 * v["l2hits"] / v["l2read"] if v["l2read"] > 0 else 0
|
|
||||||
+ v["l2hit%"] = 100 * v["l2hits"] // v["l2read"] if v["l2read"] > 0 else 0
|
|
||||||
|
|
||||||
v["l2miss%"] = 100 - v["l2hit%"] if v["l2read"] > 0 else 0
|
|
||||||
v["l2asize"] = cur["l2_asize"]
|
|
||||||
v["l2size"] = cur["l2_size"]
|
|
||||||
- v["l2bytes"] = d["l2_read_bytes"] / sint
|
|
||||||
+ v["l2bytes"] = d["l2_read_bytes"] // sint
|
|
||||||
|
|
||||||
v["l2pref"] = cur["l2_prefetch_asize"]
|
|
||||||
v["l2mfu"] = cur["l2_mfu_asize"]
|
|
||||||
v["l2mru"] = cur["l2_mru_asize"]
|
|
||||||
v["l2data"] = cur["l2_bufc_data_asize"]
|
|
||||||
v["l2meta"] = cur["l2_bufc_metadata_asize"]
|
|
||||||
- v["l2pref%"] = 100 * v["l2pref"] / v["l2asize"]
|
|
||||||
- v["l2mfu%"] = 100 * v["l2mfu"] / v["l2asize"]
|
|
||||||
- v["l2mru%"] = 100 * v["l2mru"] / v["l2asize"]
|
|
||||||
- v["l2data%"] = 100 * v["l2data"] / v["l2asize"]
|
|
||||||
- v["l2meta%"] = 100 * v["l2meta"] / v["l2asize"]
|
|
||||||
+ v["l2pref%"] = 100 * v["l2pref"] // v["l2asize"]
|
|
||||||
+ v["l2mfu%"] = 100 * v["l2mfu"] // v["l2asize"]
|
|
||||||
+ v["l2mru%"] = 100 * v["l2mru"] // v["l2asize"]
|
|
||||||
+ v["l2data%"] = 100 * v["l2data"] // v["l2asize"]
|
|
||||||
+ v["l2meta%"] = 100 * v["l2meta"] // v["l2asize"]
|
|
||||||
|
|
||||||
v["grow"] = 0 if cur["arc_no_grow"] else 1
|
|
||||||
v["need"] = cur["arc_need_free"]
|
|
99
debian/patches/zfs/0010-zvol-Remove-broken-blk-mq-optimization.patch
vendored
Normal file
99
debian/patches/zfs/0010-zvol-Remove-broken-blk-mq-optimization.patch
vendored
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tony Hutter <hutter2@llnl.gov>
|
||||||
|
Date: Mon, 23 Oct 2023 14:45:06 -0700
|
||||||
|
Subject: [PATCH] zvol: Remove broken blk-mq optimization
|
||||||
|
|
||||||
|
This fix removes a dubious optimization in zfs_uiomove_bvec_rq()
|
||||||
|
that saved the iterator contents of a rq_for_each_segment(). This
|
||||||
|
optimization allowed restoring the "saved state" from a previous
|
||||||
|
rq_for_each_segment() call on the same uio so that you wouldn't
|
||||||
|
need to iterate though each bvec on every zfs_uiomove_bvec_rq() call.
|
||||||
|
However, if the kernel is manipulating the requests/bios/bvecs under
|
||||||
|
the covers between zfs_uiomove_bvec_rq() calls, then it could result
|
||||||
|
in corruption from using the "saved state". This optimization
|
||||||
|
results in an unbootable system after installing an OS on a zvol
|
||||||
|
with blk-mq enabled.
|
||||||
|
|
||||||
|
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
|
||||||
|
Signed-off-by: Tony Hutter <hutter2@llnl.gov>
|
||||||
|
Closes #15351
|
||||||
|
(cherry picked from commit 7c9b6fed16ed5034fd1cdfdaedfad93dc97b1557)
|
||||||
|
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
|
||||||
|
---
|
||||||
|
include/os/linux/spl/sys/uio.h | 8 --------
|
||||||
|
module/os/linux/zfs/zfs_uio.c | 29 -----------------------------
|
||||||
|
2 files changed, 37 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/include/os/linux/spl/sys/uio.h b/include/os/linux/spl/sys/uio.h
|
||||||
|
index cce097e16..a4b600004 100644
|
||||||
|
--- a/include/os/linux/spl/sys/uio.h
|
||||||
|
+++ b/include/os/linux/spl/sys/uio.h
|
||||||
|
@@ -73,13 +73,6 @@ typedef struct zfs_uio {
|
||||||
|
size_t uio_skip;
|
||||||
|
|
||||||
|
struct request *rq;
|
||||||
|
-
|
||||||
|
- /*
|
||||||
|
- * Used for saving rq_for_each_segment() state between calls
|
||||||
|
- * to zfs_uiomove_bvec_rq().
|
||||||
|
- */
|
||||||
|
- struct req_iterator iter;
|
||||||
|
- struct bio_vec bv;
|
||||||
|
} zfs_uio_t;
|
||||||
|
|
||||||
|
|
||||||
|
@@ -138,7 +131,6 @@ zfs_uio_bvec_init(zfs_uio_t *uio, struct bio *bio, struct request *rq)
|
||||||
|
} else {
|
||||||
|
uio->uio_bvec = NULL;
|
||||||
|
uio->uio_iovcnt = 0;
|
||||||
|
- memset(&uio->iter, 0, sizeof (uio->iter));
|
||||||
|
}
|
||||||
|
|
||||||
|
uio->uio_loffset = io_offset(bio, rq);
|
||||||
|
diff --git a/module/os/linux/zfs/zfs_uio.c b/module/os/linux/zfs/zfs_uio.c
|
||||||
|
index 3efd4ab15..c2ed67c43 100644
|
||||||
|
--- a/module/os/linux/zfs/zfs_uio.c
|
||||||
|
+++ b/module/os/linux/zfs/zfs_uio.c
|
||||||
|
@@ -204,22 +204,6 @@ zfs_uiomove_bvec_rq(void *p, size_t n, zfs_uio_rw_t rw, zfs_uio_t *uio)
|
||||||
|
this_seg_start = orig_loffset;
|
||||||
|
|
||||||
|
rq_for_each_segment(bv, rq, iter) {
|
||||||
|
- if (uio->iter.bio) {
|
||||||
|
- /*
|
||||||
|
- * If uio->iter.bio is present, then we know we've saved
|
||||||
|
- * uio->iter from a previous call to this function, and
|
||||||
|
- * we can skip ahead in this rq_for_each_segment() loop
|
||||||
|
- * to where we last left off. That way, we don't need
|
||||||
|
- * to iterate over tons of segments we've already
|
||||||
|
- * processed - we can just restore the "saved state".
|
||||||
|
- */
|
||||||
|
- iter = uio->iter;
|
||||||
|
- bv = uio->bv;
|
||||||
|
- this_seg_start = uio->uio_loffset;
|
||||||
|
- memset(&uio->iter, 0, sizeof (uio->iter));
|
||||||
|
- continue;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
/*
|
||||||
|
* Lookup what the logical offset of the last byte of this
|
||||||
|
* segment is.
|
||||||
|
@@ -260,19 +244,6 @@ zfs_uiomove_bvec_rq(void *p, size_t n, zfs_uio_rw_t rw, zfs_uio_t *uio)
|
||||||
|
copied = 1; /* We copied some data */
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (n == 0) {
|
||||||
|
- /*
|
||||||
|
- * All done copying. Save our 'iter' value to the uio.
|
||||||
|
- * This allows us to "save our state" and skip ahead in
|
||||||
|
- * the rq_for_each_segment() loop the next time we call
|
||||||
|
- * call zfs_uiomove_bvec_rq() on this uio (which we
|
||||||
|
- * will be doing for any remaining data in the uio).
|
||||||
|
- */
|
||||||
|
- uio->iter = iter; /* make a copy of the struct data */
|
||||||
|
- uio->bv = bv;
|
||||||
|
- return (0);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
this_seg_start = this_seg_end + 1;
|
||||||
|
}
|
||||||
|
|
123
debian/patches/zfs/0011-Revert-zvol-Temporally-disable-blk-mq.patch
vendored
Normal file
123
debian/patches/zfs/0011-Revert-zvol-Temporally-disable-blk-mq.patch
vendored
Normal file
|
@ -0,0 +1,123 @@
|
||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tony Hutter <hutter2@llnl.gov>
|
||||||
|
Date: Mon, 23 Oct 2023 14:39:59 -0700
|
||||||
|
Subject: [PATCH] Revert "zvol: Temporally disable blk-mq"
|
||||||
|
|
||||||
|
This reverts commit aefb6a2bd6c24597cde655e9ce69edd0a4c34357.
|
||||||
|
|
||||||
|
aefb6a2bd temporally disabled blk-mq until we could fix a fix for
|
||||||
|
|
||||||
|
Signed-off-by: Tony Hutter <hutter2@llnl.gov>
|
||||||
|
Closes #15439
|
||||||
|
(cherry picked from commit 05c4710e8958832afc2868102c9535a4f18115be)
|
||||||
|
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
|
||||||
|
---
|
||||||
|
man/man4/zfs.4 | 57 ++++++++++++++++++++++++++++
|
||||||
|
module/os/linux/zfs/zvol_os.c | 12 ++++++
|
||||||
|
tests/zfs-tests/include/tunables.cfg | 2 +-
|
||||||
|
3 files changed, 70 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/man/man4/zfs.4 b/man/man4/zfs.4
|
||||||
|
index 71a3e67ee..cfadd79d8 100644
|
||||||
|
--- a/man/man4/zfs.4
|
||||||
|
+++ b/man/man4/zfs.4
|
||||||
|
@@ -2317,6 +2317,63 @@ If
|
||||||
|
.Sy zvol_threads
|
||||||
|
to the number of CPUs present or 32 (whichever is greater).
|
||||||
|
.
|
||||||
|
+.It Sy zvol_blk_mq_threads Ns = Ns Sy 0 Pq uint
|
||||||
|
+The number of threads per zvol to use for queuing IO requests.
|
||||||
|
+This parameter will only appear if your kernel supports
|
||||||
|
+.Li blk-mq
|
||||||
|
+and is only read and assigned to a zvol at zvol load time.
|
||||||
|
+If
|
||||||
|
+.Sy 0
|
||||||
|
+(the default) then internally set
|
||||||
|
+.Sy zvol_blk_mq_threads
|
||||||
|
+to the number of CPUs present.
|
||||||
|
+.
|
||||||
|
+.It Sy zvol_use_blk_mq Ns = Ns Sy 0 Ns | Ns 1 Pq uint
|
||||||
|
+Set to
|
||||||
|
+.Sy 1
|
||||||
|
+to use the
|
||||||
|
+.Li blk-mq
|
||||||
|
+API for zvols.
|
||||||
|
+Set to
|
||||||
|
+.Sy 0
|
||||||
|
+(the default) to use the legacy zvol APIs.
|
||||||
|
+This setting can give better or worse zvol performance depending on
|
||||||
|
+the workload.
|
||||||
|
+This parameter will only appear if your kernel supports
|
||||||
|
+.Li blk-mq
|
||||||
|
+and is only read and assigned to a zvol at zvol load time.
|
||||||
|
+.
|
||||||
|
+.It Sy zvol_blk_mq_blocks_per_thread Ns = Ns Sy 8 Pq uint
|
||||||
|
+If
|
||||||
|
+.Sy zvol_use_blk_mq
|
||||||
|
+is enabled, then process this number of
|
||||||
|
+.Sy volblocksize Ns -sized blocks per zvol thread.
|
||||||
|
+This tunable can be use to favor better performance for zvol reads (lower
|
||||||
|
+values) or writes (higher values).
|
||||||
|
+If set to
|
||||||
|
+.Sy 0 ,
|
||||||
|
+then the zvol layer will process the maximum number of blocks
|
||||||
|
+per thread that it can.
|
||||||
|
+This parameter will only appear if your kernel supports
|
||||||
|
+.Li blk-mq
|
||||||
|
+and is only applied at each zvol's load time.
|
||||||
|
+.
|
||||||
|
+.It Sy zvol_blk_mq_queue_depth Ns = Ns Sy 0 Pq uint
|
||||||
|
+The queue_depth value for the zvol
|
||||||
|
+.Li blk-mq
|
||||||
|
+interface.
|
||||||
|
+This parameter will only appear if your kernel supports
|
||||||
|
+.Li blk-mq
|
||||||
|
+and is only applied at each zvol's load time.
|
||||||
|
+If
|
||||||
|
+.Sy 0
|
||||||
|
+(the default) then use the kernel's default queue depth.
|
||||||
|
+Values are clamped to the kernel's
|
||||||
|
+.Dv BLKDEV_MIN_RQ
|
||||||
|
+and
|
||||||
|
+.Dv BLKDEV_MAX_RQ Ns / Ns Dv BLKDEV_DEFAULT_RQ
|
||||||
|
+limits.
|
||||||
|
+.
|
||||||
|
.It Sy zvol_volmode Ns = Ns Sy 1 Pq uint
|
||||||
|
Defines zvol block devices behaviour when
|
||||||
|
.Sy volmode Ns = Ns Sy default :
|
||||||
|
diff --git a/module/os/linux/zfs/zvol_os.c b/module/os/linux/zfs/zvol_os.c
|
||||||
|
index 76521c959..7a95b54bd 100644
|
||||||
|
--- a/module/os/linux/zfs/zvol_os.c
|
||||||
|
+++ b/module/os/linux/zfs/zvol_os.c
|
||||||
|
@@ -1620,6 +1620,18 @@ MODULE_PARM_DESC(zvol_prefetch_bytes, "Prefetch N bytes at zvol start+end");
|
||||||
|
module_param(zvol_volmode, uint, 0644);
|
||||||
|
MODULE_PARM_DESC(zvol_volmode, "Default volmode property value");
|
||||||
|
|
||||||
|
+#ifdef HAVE_BLK_MQ
|
||||||
|
+module_param(zvol_blk_mq_queue_depth, uint, 0644);
|
||||||
|
+MODULE_PARM_DESC(zvol_blk_mq_queue_depth, "Default blk-mq queue depth");
|
||||||
|
+
|
||||||
|
+module_param(zvol_use_blk_mq, uint, 0644);
|
||||||
|
+MODULE_PARM_DESC(zvol_use_blk_mq, "Use the blk-mq API for zvols");
|
||||||
|
+
|
||||||
|
+module_param(zvol_blk_mq_blocks_per_thread, uint, 0644);
|
||||||
|
+MODULE_PARM_DESC(zvol_blk_mq_blocks_per_thread,
|
||||||
|
+ "Process volblocksize blocks per thread");
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
#ifndef HAVE_BLKDEV_GET_ERESTARTSYS
|
||||||
|
module_param(zvol_open_timeout_ms, uint, 0644);
|
||||||
|
MODULE_PARM_DESC(zvol_open_timeout_ms, "Timeout for ZVOL open retries");
|
||||||
|
diff --git a/tests/zfs-tests/include/tunables.cfg b/tests/zfs-tests/include/tunables.cfg
|
||||||
|
index 8010a9451..80e7bcb3b 100644
|
||||||
|
--- a/tests/zfs-tests/include/tunables.cfg
|
||||||
|
+++ b/tests/zfs-tests/include/tunables.cfg
|
||||||
|
@@ -89,7 +89,7 @@ VDEV_VALIDATE_SKIP vdev.validate_skip vdev_validate_skip
|
||||||
|
VOL_INHIBIT_DEV UNSUPPORTED zvol_inhibit_dev
|
||||||
|
VOL_MODE vol.mode zvol_volmode
|
||||||
|
VOL_RECURSIVE vol.recursive UNSUPPORTED
|
||||||
|
-VOL_USE_BLK_MQ UNSUPPORTED UNSUPPORTED
|
||||||
|
+VOL_USE_BLK_MQ UNSUPPORTED zvol_use_blk_mq
|
||||||
|
XATTR_COMPAT xattr_compat zfs_xattr_compat
|
||||||
|
ZEVENT_LEN_MAX zevent.len_max zfs_zevent_len_max
|
||||||
|
ZEVENT_RETAIN_MAX zevent.retain_max zfs_zevent_retain_max
|
2
linux
2
linux
|
@ -1 +1 @@
|
||||||
Subproject commit c2cbfe5f51227dfe6ef7be013f0d56a32c040faa
|
Subproject commit 32c9cdbe383c153af23cfa1df0a352b97ab3df7a
|
2
zfs
2
zfs
|
@ -1 +1 @@
|
||||||
Subproject commit 86783d7d92cf7a859464719a917fdff845b9a9e1
|
Subproject commit 95785196f26e92d82cf4445654ba84e4a9671c57
|
Loading…
Reference in a new issue