# Copyright 2020 syzkaller project authors. All rights reserved.
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.

# This file enables subsystems that syzkaller can test.
# Contents are bulk copied from a legacy config, so some of the configs do other things,
# some are enabled for unknown now reasons.

config:
 - SYSVIPC
 - POSIX_MQUEUE
 - NO_HZ
 - HIGH_RES_TIMERS
 - PREEMPT
 - IRQ_TIME_ACCOUNTING: [-riscv, -s390]
 - BSD_PROCESS_ACCT
 - BSD_PROCESS_ACCT_V3
 - TASKSTATS
 - TASK_XACCT
 - TASK_IO_ACCOUNTING
 - PSI
 - CPU_ISOLATION
 - IKCONFIG
 - IKCONFIG_PROC
 - LOG_BUF_SHIFT: 18
 - NUMA: [-arm]
 - NUMA_EMU: [x86_64]
 - NUMA_BALANCING: [-arm]
 - NUMA_BALANCING_DEFAULT_ENABLED: [-arm]
 - ADDRESS_MASKING: [x86_64, linux-next]
 - X86_USER_SHADOW_STACK: [x86_64, linux-next]
 # KMSAN disables HYPERVISOR_GUEST which is required to enable this.
 - X86_X2APIC: [x86_64, -kmsan]
 - CGROUPS
 - BLK_CGROUP
 - CGROUP_SCHED
 - FAIR_GROUP_SCHED
 - SCHED_CORE: [x86_64, v5.15]
 - CFS_BANDWIDTH
 - CGROUP_RDMA
 - CGROUP_FREEZER
 - CGROUP_HUGETLB: [-arm]
 - CPUSETS
 - CGROUP_DEVICE
 - CGROUP_CPUACCT
 - CGROUP_PERF
 - CGROUP_BPF
 - CHECKPOINT_RESTORE
 - USERFAULTFD
 - COMPAT_BRK: n
 - PROFILING
 - PERF_EVENTS
 - SMP
 - KEXEC: [-riscv]
 - HIBERNATION: [-riscv, -s390]
 - HIBERNATION_SNAPSHOT_DEV: [v5.10, -riscv, -s390]
 - PM_DEBUG: [-s390]
 - ACPI_DOCK: [-arm, -riscv, -s390]
 - ACPI_NFIT: [x86_64]
 - CPU_FREQ: [-riscv, -s390]
 - CPU_FREQ_DEFAULT_GOV_USERSPACE: [-riscv, -s390]
 - CPU_FREQ_GOV_ONDEMAND: [-riscv, -s390]
 - GOOGLE_SMI: n
 - GOOGLE_MEMCONSOLE_X86_LEGACY: n
 - GOOGLE_FIRMWARE: [-s390]
 - GOOGLE_COREBOOT_TABLE: [-s390]
 - GOOGLE_MEMCONSOLE_COREBOOT: [-s390]
 - GOOGLE_VPD: [-s390]
 - KVM: [-arm, -riscv]
 - KVM_INTEL: [x86_64]
 - KVM_AMD: [x86_64]
 - KVM_XEN: [x86_64, v5.12]
 # KMSAN disables HYPERVISOR_GUEST which is required to enable X86_X2APIC
 # which is required to enable this.
 - X86_SGX: [x86_64, v5.11, -kmsan]
 - X86_SGX_KVM: [x86_64, v6.0, -kmsan]
 - JUMP_LABEL
 - MODULES
 - MODULE_UNLOAD
 - MODULE_FORCE_UNLOAD
 - MODVERSIONS
 - MODULE_SRCVERSION_ALL
 - UNUSED_SYMBOLS: n
 - BLK_DEV_ZONED
 - BLK_DEV_THROTTLING
 - BLK_WBT
 - BLK_WBT_MQ
 - BLK_CGROUP_IOLATENCY
 - BLK_CGROUP_IOCOST
 - BLK_INLINE_ENCRYPTION: [v5.8]
 - BLK_INLINE_ENCRYPTION_FALLBACK: [v5.8]
 - IOSCHED_BFQ
 - BFQ_GROUP_IOSCHED
 - BFQ_CGROUP_DEBUG
 - BINFMT_MISC
 - BINFMT_SCRIPT
 - MEMORY_HOTPLUG: [-arm, -riscv]
 - MEMORY_HOTPLUG_DEFAULT_ONLINE: [-arm, -riscv]
 - MEMORY_HOTREMOVE: [-arm, -riscv]
 - ANON_VMA_NAME: [v5.17]
 - KSM
 - TRANSPARENT_HUGEPAGE: [-arm, -riscv]
 - TRANSPARENT_HUGEPAGE_MADVISE: [-arm, -riscv]
 - FRONTSWAP
 - CMA
 - MEM_SOFT_DIRTY: [x86_64]
 - ZSWAP
 - ZSMALLOC
 - IDLE_PAGE_TRACKING: [-v5.15]
 - ZONE_DEVICE: [-arm, -riscv, -s390]
 - DEVICE_PRIVATE: [-arm, -riscv, -s390]
 - PERCPU_STATS
 - READ_ONLY_THP_FOR_FS: [-arm, -riscv]
 - PCI
 - PCIEPORTBUS
 - HOTPLUG_PCI_PCIE
 - PCIEAER
 - HOTPLUG_PCI
 - PCI_ENDPOINT
 - FW_LOADER_USER_HELPER
 - FW_LOADER_USER_HELPER_FALLBACK
 - FW_LOADER_COMPRESS
 - FW_CACHE: [v5.10, -riscv, -s390]
 - CONNECTOR
 - MTD
 - MTD_BLOCK
 - FTL
 - MTD_SLRAM
 - MTD_PHRAM
 - MTD_MTDRAM
 - MTDRAM_TOTAL_SIZE: 128
 - MTDRAM_ERASE_SIZE: 4
 - MTD_BLOCK2MTD
 - MTD_UBI
 - BLK_DEV_PMEM: [x86_64]
 # ND_BLK removed from v5.18 by f8669f1d6a86
 - ND_BLK: [x86_64, -v5.18]
 - ND_CLAIM: [x86_64]
 - ND_BTT: [x86_64]
 - BTT: [x86_64]
 - ND_PFN: [x86_64]
 - NVDIMM_PFN: [x86_64]
 - NVDIMM_DAX: [x86_64]
 - OF_PMEM: [x86_64]
 - DAX: [x86_64]
 - DEV_DAX: [x86_64]
 - BLK_DEV_NULL_BLK
 - BLK_DEV_NULL_BLK_FAULT_INJECTION
 - BLK_DEV_FD: [x86_64]
 - ZRAM
 - BLK_DEV_LOOP
 # Loop device per test process.
 - BLK_DEV_LOOP_MIN_COUNT: 16
 - BLK_DEV_CRYPTOLOOP: [-v5.16]
 - BLK_DEV_NBD
 - BLK_DEV_RAM
 - ATA_OVER_ETH
 - VIRTIO_BLK
 - BLK_DEV_RNBD_CLIENT: [v5.5]
 - BLK_DEV_NVME
 - NVME_MULTIPATH
 - NVME_HWMON: [n, v5.7]
 - NVME_RDMA
 - NVME_FC
 - NVME_TCP
 - NVME_TARGET
 - NVME_TARGET_LOOP
 - NVME_TARGET_RDMA
 - NVME_TARGET_FC
 - NVME_TARGET_FCLOOP
 - NVME_TARGET_TCP
 - EEPROM_93CX6
 - RAID_ATTRS
 - BLK_DEV_SD
 - CHR_DEV_ST
 - BLK_DEV_SR
 - CHR_DEV_SG
 - SCSI_CONSTANTS
 - SCSI_LOGGING
 - SCSI_SCAN_ASYNC
 - SCSI_SPI_ATTRS
 - SCSI_FC_ATTRS
 - SCSI_SAS_LIBSAS
 - SCSI_SAS_ATA
 - SCSI_HPSA
 - SCSI_VIRTIO
 - ATA
 - SATA_AHCI
 - ATA_PIIX
 - PATA_AMD
 - PATA_OLDPIIX
 - PATA_SCH
 - ATA_SFF
 - ATA_BMDMA
 - ATA_GENERIC
 - MD
 - MD_LINEAR
 - MD_MULTIPATH
 - BCACHE
 - BLK_DEV_DM
 - DM_CRYPT
 - DM_SNAPSHOT
 - DM_THIN_PROVISIONING
 - DM_CACHE
 - DM_CACHE_SMQ
 - DM_WRITECACHE
 - DM_CLONE
 - DM_MIRROR
 - DM_RAID
 - DM_ZERO
 - DM_MULTIPATH
 - DM_MULTIPATH_QL
 - DM_MULTIPATH_ST
 - DM_UEVENT
 - DM_FLAKEY
 - DM_VERITY
 - DM_VERITY_FEC
 - DM_INTEGRITY
 - DM_ZONED
 - FIREWIRE
 - FIREWIRE_OHCI
 - FIREWIRE_SBP2
 - FIREWIRE_NET
 - MACINTOSH_DRIVERS: n
 - MAC_EMUMOUSEBTN: n
 - INPUT_POLLDEV: [-v5.11]
 - INPUT_MOUSEDEV
 - INPUT_MOUSEDEV_PSAUX
 - INPUT_JOYDEV
 - INPUT_EVDEV
 - INPUT_JOYSTICK
 - JOYSTICK_XPAD
 - JOYSTICK_XPAD_FF
 - INPUT_MISC
 - INPUT_UINPUT
 - USERIO
 - SERIAL_8250: [-s390]
 - SERIAL_8250_CONSOLE: [-s390]
 - SERIAL_8250_EXAR: n
 - SERIAL_8250_NR_UARTS: [32, -s390]
 - SERIAL_8250_EXTENDED: [-s390]
 - SERIAL_8250_MANY_PORTS: [-s390]
 - SERIAL_8250_SHARE_IRQ: [-s390]
 - SERIAL_8250_DETECT_IRQ: [-s390]
 - SERIAL_8250_RSA: [-s390]
 - SERIAL_NONSTANDARD
 # Removed in "tty: rocket, remove the driver".
 - ROCKETPORT: [-v5.13]
 # Removed in "tty: cyclades, remove this orphan".
 - CYCLADES: [-v5.13]
 # Removed in "tty: isicom, remove this orphan".
 - ISI: [-v5.13]
 - N_HDLC
 - N_GSM
 - NOZOMI
 # NULL_TTY was removed in v5.10 and added back in v5.11.
 - NULL_TTY
 - SERIAL_DEV_BUS
 - SERIAL_DEV_CTRL_TTYPORT
 - TTY_PRINTK
 - LEGACY_PTYS
 - LEGACY_PTY_COUNT: 256
 - NVRAM: [x86_64]
 - HPET: [x86_64]
 - HPET_MMAP: [x86_64]
 - HPET_MMAP_DEFAULT: [x86_64]
 - I2C_CHARDEV
 - I2C_MUX
 - I2C_MUX_REG
 - I2C_TINY_USB
 - I2C_SLAVE
 - I2C_SLAVE_EEPROM
 - X86_PKG_TEMP_THERMAL: n
 - INTEL_SOC_DTS_THERMAL: n
 - I6300ESB_WDT: n
 - ITCO_WDT: n
 - ITCO_VENDOR_SUPPORT: n
 - LPC_ICH
 - AGP: [x86_64]
 - AGP_AMD64: [x86_64]
 - AGP_INTEL: [x86_64]
 - DRM
 # Workaround: select small driver that selects DRM_DISPLAY_HELPER required by
 # DRM_DP_AUX_CHARDEV. Only works with architectures that have CONFIG_PM.
 - DRM_PANEL_EDP: [v5.16, -s390]
 - DRM_DP_AUX_CHARDEV: [x86_64]
 - DRM_DEBUG_MM
 - DRM_I915: [x86_64]
 - DRM_VGEM
 - DRM_VKMS
 - DRM_VMWGFX: [x86_64]
 - DRM_VMWGFX_FBCON: [x86_64, -v6.1]
 - DRM_FBDEV_EMULATION: [x86_64] # required by DRM_VMWGFX_FBCON
 - DRM_UDL
 - DRM_BOCHS
 - DRM_VIRTIO_GPU
 - DRM_CIRRUS_QEMU
 # Note: SIMPLEDRM driver will be kicked out if we have the real DRM driver enabled
 # (and we most likely have, see above). So most likely it won't be tested and
 # and we have separate configs with real drivers and with SIMPLEDRM.
 - DRM_SIMPLEDRM: [v5.14]
 - FB
 - FB_TILEBLITTING
 - FB_CIRRUS: n
 - FB_VGA16: [x86_64]
 - FB_UVESA: n
 - FB_VESA: [x86_64]
 - FB_HGA: n
 - FB_I740: n
 - FB_UDL: n
 - FB_VIRTUAL
 - FB_SIMPLE: n
 - FB_SMSCUFX: n
 - VGA_CONSOLE: [x86_64]
 - FRAMEBUFFER_CONSOLE
 - FRAMEBUFFER_CONSOLE_ROTATION
 - LOGO
 - LOGO_LINUX_MONO
 - LOGO_LINUX_VGA16
 - SND
 - SOUND
 - SOUND_OSS_CORE_PRECLAIM
 - SND_DRIVERS
 - SND_PCI
 - SND_OSSEMUL
 - SND_MIXER_OSS
 - SND_PCM_OSS
 - SND_PCM_OSS_PLUGINS
 - SND_HRTIMER
 - SND_SEQUENCER
 - SND_SEQ_DUMMY
 - SND_SEQUENCER_OSS
 - SND_DUMMY
 - SND_ALOOP
 - SND_VIRMIDI
 - SND_VIRTIO: [v5.13]
 - SND_HDA_INTEL
 - SND_HDA_HWDEP
 - SND_HDA_INPUT_BEEP
 - SND_HDA_PATCH_LOADER
 - SND_HDA_CODEC_REALTEK
 - SND_HDA_CODEC_ANALOG
 - SND_HDA_CODEC_SIGMATEL
 - SND_HDA_CODEC_VIA
 - SND_HDA_CODEC_HDMI
 - SND_HDA_CODEC_CIRRUS
 - SND_HDA_CODEC_CONEXANT
 - SND_HDA_CODEC_CA0110
 - SND_HDA_CODEC_CA0132
 - SND_HDA_CODEC_CMEDIA
 - SND_HDA_CODEC_SI3054
 - SND_HDA_PREALLOC_SIZE: 0
 - SND_USB_AUDIO
 - SND_FIREWORKS: n
 - SND_FIREWIRE_TASCAM: n
 - HID_BATTERY_STRENGTH: [-s390]
 - HIDRAW: [-s390]
 - UHID: [-s390]
 - USB_HIDDEV: [-s390]
 - USB_ANNOUNCE_NEW_DEVICES
 - USB_OTG: [-s390]
 - USB_MON
 - USB_XHCI_HCD
 - USB_EHCI_HCD
 - USB_EHCI_ROOT_HUB_TT
 - USB_OHCI_HCD
 - USB_UHCI_HCD
 - USB_ACM
 - USB_PRINTER
 - USB_STORAGE
 - USB_STORAGE_REALTEK
 - USB_UAS
 - USB_DWC3
 - USB_DWC3_GADGET
 - USB_CHIPIDEA
 - USB_CHIPIDEA_UDC
 - USB_SERIAL
 - USB_SERIAL_CONSOLE
 - USB_SERIAL_GENERIC
 - USB_SERIAL_SIMPLE
 - USB_SERIAL_CH341
 - USB_SERIAL_CP210X
 - USB_SERIAL_FTDI_SIO
 - USB_SERIAL_KEYSPAN
 - USB_SERIAL_PL2303
 - USB_SERIAL_OTI6858
 - USB_SERIAL_QUALCOMM
 - USB_SERIAL_SIERRAWIRELESS
 - USB_SERIAL_OPTION
 - USB_SERIAL_XR: [v5.12]
 - NOP_USB_XCEIV
 - USB_SUPPORT
 - USB_GADGET
 - USB_U_SERIAL
 - U_SERIAL_CONSOLE
 - USB_DUMMY_HCD
 - USB_CONFIGFS
 - USB_CONFIGFS_F_FS
 - USB_CONFIGFS_F_MIDI
 - USB_CONFIGFS_SERIAL
 - USB_RAW_GADGET: [v5.5]
 - USB_FEW_INIT_RETRIES: [v5.10]
 - TYPEC
 - TYPEC_TCPM
 - TYPEC_UCSI: [-s390]
 - UCSI_ACPI: [-arm, -riscv, -s390]
 - EDAC: [-s390]
 - RTC_CLASS: [-s390]
 - RTC_HCTOSYS: n
 - RTC_NVMEM: n
 - DMADEVICES
 - INTEL_IDMA64: [x86_64]
 - INTEL_IOATDMA: [x86_64]
 - INTEL_IOMMU_SVM: [x86_64]
 - INTEL_IOMMU_DEFAULT_ON: [x86_64]
 - IRQ_REMAP: [x86_64]
 - ASYNC_TX_DMA
 - SW_SYNC
 - UDMABUF
 - DMABUF_MOVE_NOTIFY: [v5.5]
 - DMABUF_HEAPS: [v5.5]
 - DMABUF_HEAPS_SYSTEM: [v5.5]
 - DMABUF_HEAPS_CMA: [v5.5]
 - DMA_CMA
 - VFIO: [-arm, -riscv]
 - VFIO_PCI: [-arm, -riscv]
 # This should not be turned on, it will disable some VFIO coverage.
 - VFIO_CONTAINER: n
 - VIRTIO_PCI
 - VIRTIO_VDPA: [v5.7]
 - VIRTIO_BALLOON
 - VIRTIO_PMEM: [x86_64]
 - VIRTIO_IOMMU: [x86_64, arm64]
 - VIRTIO_MEM: [v5.7, x86_64]
 - VIRTIO_INPUT
 - VIRTIO_MMIO
 - VIRTIO_MMIO_CMDLINE_DEVICES
 - VDPA: [v5.5]
 - VDPA_SIM: [v6.0, -riscv]
 - VDPA_SIM_NET: [v6.0, -riscv]
 - VDPA_SIM_BLOCK: [v6.0, -riscv]
 - VDPA_USER: [v6.0]
 - VP_VDPA: [v5.13]
 - VHOST_NET
 - VHOST_VSOCK
 - VHOST_VDPA: [v5.5]
 - VHOST_CROSS_ENDIAN_LEGACY
 - STAGING
 - ANDROID: [-v6.0]
 # ASHMEM removed from v5.18. Replacement is memfd.
 - ASHMEM: [-v5.18]
 - ION: [-v5.10]
 - ION_SYSTEM_HEAP: [-v5.10]
 - ION_CMA_HEAP: [-v5.10]
 - CHROME_PLATFORMS: n
 - AMD_IOMMU: n
 - INTEL_IOMMU: [x86_64]
 # IOMMUFD must be enabled in order to keep VFIO_CONTAINER disabled.
 - IOMMUFD: [v6.2]
 - IOMMUFD_TEST: [linux-next]
 # Generally we should not enable this since we don't run any boot unit tests.
 # The only reason to enable it is IOMMUFD_TEST, which really shouldn't
 # depend on RUNTIME_TESTING_MENU since it only adds debug checks.
 - RUNTIME_TESTING_MENU: [linux-next]
 - ANDROID_BINDER_IPC
 # Create binder device per test process for isolation.
 # Earlier we defined here 32 devices and syzkaller allocated one per test process.
 # When binderfs is used, we don't need that many - 2 is enough.
 - ANDROID_BINDER_DEVICES: "binder0,binder1"
 - ANDROID_BINDERFS
 - COUNTER
 - VALIDATE_FS_PARSER
 - PSTORE
 - PSTORE_DEFLATE_COMPRESS
 - PSTORE_LZO_COMPRESS
 - PSTORE_LZ4_COMPRESS
 - PSTORE_LZ4HC_COMPRESS
 - PSTORE_842_COMPRESS
 - PSTORE_ZSTD_COMPRESS
 - PSTORE_COMPRESS
 - PSTORE_DEFLATE_COMPRESS_DEFAULT
 # Didn't find how to enable it for riscv in v5.18
 - FS_DAX: [-arm, -riscv]
 - FS_ENCRYPTION
 - FS_VERITY
 - FS_VERITY_BUILTIN_SIGNATURES
 - FANOTIFY
 - FANOTIFY_ACCESS_PERMISSIONS
 - WATCH_QUEUE: [v5.8]
 - KEY_NOTIFICATIONS: [v5.8]
 - QUOTA
 - QUOTA_NETLINK_INTERFACE
 - PRINT_QUOTA_WARNING: n
 - QFMT_V2
 - AUTOFS4_FS
 - FUSE_FS
 - FUSE_DAX: [v5.10, x86_64]
 - CUSE
 - VIRTIO_FS
 - FSCACHE
 - CACHEFILES
 - PROC_KCORE: [-arm]
 - TMPFS
 - TMPFS_POSIX_ACL
 - TMPFS_XATTR
 - HUGETLBFS: [-arm]
 - ECRYPT_FS
 - ECRYPT_FS_MESSAGING
 - NLS_DEFAULT: "utf8"
 - NLS_UTF8
 - NLS_CODEPAGE_437
 - NLS_CODEPAGE_737
 - NLS_CODEPAGE_775
 - NLS_CODEPAGE_850
 - NLS_CODEPAGE_852
 - NLS_CODEPAGE_855
 - NLS_CODEPAGE_857
 - NLS_CODEPAGE_860
 - NLS_CODEPAGE_861
 - NLS_CODEPAGE_862
 - NLS_CODEPAGE_863
 - NLS_CODEPAGE_864
 - NLS_CODEPAGE_865
 - NLS_CODEPAGE_866
 - NLS_CODEPAGE_869
 - NLS_CODEPAGE_936
 - NLS_CODEPAGE_950
 - NLS_CODEPAGE_932
 - NLS_CODEPAGE_949
 - NLS_CODEPAGE_874
 - NLS_ISO8859_8
 - NLS_CODEPAGE_1250
 - NLS_CODEPAGE_1251
 - NLS_ASCII
 - NLS_ISO8859_1
 - NLS_ISO8859_2
 - NLS_ISO8859_3
 - NLS_ISO8859_4
 - NLS_ISO8859_5
 - NLS_ISO8859_6
 - NLS_ISO8859_7
 - NLS_ISO8859_9
 - NLS_ISO8859_13
 - NLS_ISO8859_14
 - NLS_ISO8859_15
 - NLS_KOI8_R
 - NLS_KOI8_U
 - NLS_MAC_ROMAN
 - NLS_MAC_CELTIC
 - NLS_MAC_CENTEURO
 - NLS_MAC_CROATIAN
 - NLS_MAC_CYRILLIC
 - NLS_MAC_GAELIC
 - NLS_MAC_GREEK
 - NLS_MAC_ICELAND
 - NLS_MAC_INUIT
 - NLS_MAC_ROMANIAN
 - NLS_MAC_TURKISH
 - DLM
 - UNICODE
 - KEYS_REQUEST_CACHE
 - PERSISTENT_KEYRINGS
 - BIG_KEYS: [-kmsan]
 - TRUSTED_KEYS
 - KEY_DH_OPERATIONS
 # ASYMMETRIC_TPM_KEY_SUBTYPE removed since v5.18, refer https://lore.kernel.org/lkml/YiL4DJscHPEsDHc3@iki.fi/T/
 - ASYMMETRIC_TPM_KEY_SUBTYPE: [-v5.18]
 - PKCS8_PRIVATE_KEY_PARSER
 # TPM_KEY_PARSER removed since v5.18, refer https://lore.kernel.org/lkml/YiL4DJscHPEsDHc3@iki.fi/T/
 - TPM_KEY_PARSER: [-v5.18]
 - PKCS7_TEST_KEY
 - SIGNED_PE_FILE_VERIFICATION
 - SECONDARY_TRUSTED_KEYRING
 - CRC4
 - CRC7
 - SCHEDSTATS
 - RAW_DRIVER: [-v5.14]
 - THERMAL: [v5.8]
 - THERMAL_NETLINK: [v5.8]
 - VMWARE_VMCI: [x86_64]
 - W1: n
 - DAMON: [v5.15]
 - DAMON_VADDR: [v5.15]
 - DAMON_PADDR: [v5.16]
 - DAMON_DBGFS: [v5.15]
 - DAMON_RECLAIM: [v5.17]
 - ZSWAP_DEFAULT_ON: [v5.7]

 # Multi-gen LRU is the new better LRU implementation
 # that is supposed to be the default in future,
 # so we want to enable it in most tested kernels.
 # It has no relation to smack, but we use the smack tag
 # just to get some kernels tested w/o multi-gen LRU as well.
 - LRU_GEN: [v6.1, -smack]
 - LRU_GEN_ENABLED: [v6.1, -smack]

 # For testing of core dumping functionality itself.
 - COREDUMP
 - ELF_CORE
