ci starts bisection 2024-11-04 03:22:43.778809736 +0000 UTC m=+221571.144098508 bisecting cause commit starting from c88416ba074a8913cf6d61b789dd834bbca6681c building syzkaller on f00eed24f2a1332b07fef1a353a439133978d97b ensuring issue is reproducible on original commit c88416ba074a8913cf6d61b789dd834bbca6681c testing commit c88416ba074a8913cf6d61b789dd834bbca6681c gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: cbd151b03aa604505390cddcd5d571bba505b1a61ae27873f24f42c04abf27d6 all runs: crashed: WARNING in io_get_cqe_overflow representative crash: WARNING in io_get_cqe_overflow, types: [WARNING] check whether we can drop unnecessary instrumentation disabling configs for [ATOMIC_SLEEP HANG LEAK UBSAN KASAN LOCKDEP], they are not needed testing commit c88416ba074a8913cf6d61b789dd834bbca6681c gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 08efae2ea0b21dcac8f1df6f265e04bccc497d153f9691d2ffde7de55186157b all runs: OK false negative chance: 0.000 kconfig minimization: base=4045 full=8231 leaves diff=2121 split chunks (needed=false): <2121> split chunk #0 of len 2121 into 5 parts testing without sub-chunk 1/5 testing commit c88416ba074a8913cf6d61b789dd834bbca6681c gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 94f5dc55d8ba523ef766fb0d488598bd67a6909544b220805ab7e7174ef263fb run #0: crashed: WARNING in io_get_cqe_overflow run #1: crashed: WARNING in io_get_cqe_overflow run #2: crashed: WARNING in io_get_cqe_overflow run #3: crashed: WARNING in io_get_cqe_overflow run #4: crashed: WARNING in io_get_cqe_overflow run #5: crashed: WARNING in io_get_cqe_overflow run #6: crashed: WARNING in io_get_cqe_overflow run #7: crashed: WARNING in io_get_cqe_overflow run #8: crashed: WARNING in io_get_cqe_overflow run #9: OK representative crash: WARNING in io_get_cqe_overflow, types: [WARNING] the chunk can be dropped testing without sub-chunk 2/5 testing commit c88416ba074a8913cf6d61b789dd834bbca6681c gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 failed building c88416ba074a8913cf6d61b789dd834bbca6681c: drivers/gpu/drm/bridge/aux-bridge.c:116: undefined reference to `devm_drm_of_get_bridge' testing without sub-chunk 3/5 testing commit c88416ba074a8913cf6d61b789dd834bbca6681c gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: fd3b9d14272236a3c75882ac2287502c54de8336189b91367bae13ac8488cd61 all runs: crashed: WARNING in io_get_cqe_overflow representative crash: WARNING in io_get_cqe_overflow, types: [WARNING] the chunk can be dropped testing without sub-chunk 4/5 testing commit c88416ba074a8913cf6d61b789dd834bbca6681c gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: ee6274f1b2a39281809493ab293d064741c954f68c87227afcaa6cb3e5f7731d all runs: crashed: WARNING in io_get_cqe_overflow representative crash: WARNING in io_get_cqe_overflow, types: [WARNING] the chunk can be dropped testing without sub-chunk 5/5 testing commit c88416ba074a8913cf6d61b789dd834bbca6681c gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 775f95a812d227a9870f35bfe5a7b15ea580cfad79f4afa5c468e85f01a62bbe all runs: crashed: WARNING in io_get_cqe_overflow representative crash: WARNING in io_get_cqe_overflow, types: [WARNING] the chunk can be dropped minimized to 425 configs; suspects: [6LOWPAN ARCH_ENABLE_MEMORY_HOTREMOVE ASUS_WMI CHARGER_BQ24190 CMA COMMON_CLK DAX DLM DRM DRM_BRIDGE DRM_PANEL DRM_PANEL_BRIDGE DRM_PANEL_EDP DRM_PANEL_ORIENTATION_QUIRKS DRM_SIMPLEDRM DRM_TTM DRM_TTM_HELPER DRM_UDL DRM_VGEM DRM_VIRTIO_GPU DRM_VIRTIO_GPU_KMS DRM_VKMS DRM_VMWGFX DUMMY DVB_AF9013 DVB_AF9033 DVB_AS102 DVB_AS102_FE DVB_B2C2_FLEXCOP DVB_B2C2_FLEXCOP_USB DVB_CORE DVB_DIB3000MB DVB_DIB3000MC DVB_EC100 DVB_GP8PSK_FE DVB_RTL2830 DVB_RTL2832 DVB_RTL2832_SDR DVB_TEST_DRIVERS DVB_TTUSB_BUDGET DVB_TTUSB_DEC DVB_USB DVB_USB_A800 DVB_USB_AF9005 DVB_USB_AF9005_REMOTE DVB_USB_AF9015 DVB_USB_AF9035 DVB_USB_ANYSEE DVB_USB_AU6610 DVB_USB_AZ6007 DVB_USB_AZ6027 DVB_USB_CE6230 DVB_USB_CINERGY_T2 DVB_USB_CXUSB DVB_USB_CXUSB_ANALOG DVB_USB_DIB0700 DVB_USB_DIB3000MC DVB_USB_DIBUSB_MB DVB_USB_DIBUSB_MC DVB_USB_DIGITV DVB_USB_DTT200U DVB_USB_DTV5100 DVB_USB_DVBSKY DVB_USB_DW2102 DVB_USB_EC168 DVB_USB_GL861 DVB_USB_GP8PSK DVB_USB_LME2510 DVB_USB_M920X DVB_USB_MXL111SF DVB_USB_NOVA_T_USB2 DVB_USB_OPERA1 DVB_USB_PCTV452E DVB_USB_RTL28XXU DVB_USB_TECHNISAT_USB2 DVB_USB_TTUSB2 DVB_USB_UMT_010 DVB_USB_V2 DVB_USB_VP702X DVB_USB_VP7045 DVB_USB_ZD1301 DVB_VIDTV DVB_ZL10353 ECRYPT_FS ECRYPT_FS_MESSAGING EDAC EEPROM_93CX6 EFS_FS ENCRYPTED_KEYS EQUALIZER EROFS_FS EROFS_FS_BACKED_BY_FILE EROFS_FS_POSIX_ACL EROFS_FS_SECURITY EROFS_FS_XATTR EROFS_FS_ZIP EVM EVM_ADD_XATTRS EVM_ATTR_FSUUID EXFAT_FS EXPORTFS_BLOCK_OPS EXT3_FS EXT3_FS_POSIX_ACL EXT3_FS_SECURITY EXTCON EXTCON_INTEL_CHT_WC EXTCON_PTN5150 EXTCON_USBC_TUSB320 F2FS_CHECK_FS F2FS_FAULT_INJECTION F2FS_FS F2FS_FS_COMPRESSION F2FS_FS_LZ4 F2FS_FS_LZ4HC F2FS_FS_LZO F2FS_FS_LZORLE F2FS_FS_POSIX_ACL F2FS_FS_SECURITY F2FS_FS_XATTR F2FS_FS_ZSTD F2FS_STAT_FS FANOTIFY FANOTIFY_ACCESS_PERMISSIONS FB FB_CFB_COPYAREA FB_CFB_FILLRECT FB_CFB_IMAGEBLIT FB_CORE FB_DEFERRED_IO FB_DEVICE FB_IOMEM_FOPS FB_IOMEM_HELPERS FB_NOTIFY FB_SYSMEM_FOPS FB_SYSMEM_HELPERS FB_SYSMEM_HELPERS_DEFERRED FB_SYS_COPYAREA FB_SYS_FILLRECT FB_SYS_IMAGEBLIT FB_TILEBLITTING FB_VESA FB_VGA16 FB_VIRTUAL FDDI FIREWIRE FIREWIRE_NET FIREWIRE_OHCI FIREWIRE_SBP2 FONT_8x16 FONT_8x8 FONT_SUPPORT FRAMEBUFFER_CONSOLE FRAMEBUFFER_CONSOLE_DETECT_PRIMARY FRAMEBUFFER_CONSOLE_ROTATION FS_DAX FS_DAX_PMD FS_ENCRYPTION FS_ENCRYPTION_ALGS FS_STACK FS_VERITY FS_VERITY_BUILTIN_SIGNATURES FTL FUSE_DAX FUSE_FS FW_LOADER_COMPRESS FW_LOADER_PAGED_BUF FW_LOADER_SYSFS FW_LOADER_USER_HELPER FW_LOADER_USER_HELPER_FALLBACK GACT_PROB GARP GENERIC_PHY GET_FREE_REGION GFS2_FS GFS2_FS_LOCKING_DLM GNSS GNSS_USB GOOGLE_COREBOOT_TABLE GOOGLE_FIRMWARE GOOGLE_MEMCONSOLE GOOGLE_MEMCONSOLE_COREBOOT GOOGLE_VPD GPIOLIB GPIOLIB_IRQCHIP GPIO_ACPI GPIO_DLN2 GPIO_LJCA GPIO_VIPERBOARD GREENASIA_FF GREYBUS GREYBUS_BRIDGED_PHY GREYBUS_ES2 GREYBUS_HID GREYBUS_USB GROUP_SCHED_WEIGHT GTP GUEST_PERF_EVENTS GVE HAVE_ARCH_NODE_DEV_GROUP HAVE_ARCH_USERFAULTFD_MINOR HAVE_ARCH_USERFAULTFD_WP HAVE_BOOTMEM_INFO_NODE HAVE_CLK_PREPARE HAVE_KVM_CPU_RELAX_INTERCEPT HAVE_KVM_DIRTY_RING HAVE_KVM_DIRTY_RING_ACQ_REL HAVE_KVM_DIRTY_RING_TSO HAVE_KVM_IRQCHIP HAVE_KVM_IRQ_BYPASS HAVE_KVM_IRQ_ROUTING HAVE_KVM_MSI HAVE_KVM_NO_POLL HAVE_KVM_PFNCACHE HAVE_KVM_PM_NOTIFIER HAVE_KVM_READONLY_MEM HAVE_SCHED_AVG_IRQ HDLC HDLC_CISCO HDLC_FR HDLC_PPP HDLC_RAW HDLC_RAW_ETH HDLC_X25 HDMI HFSPLUS_FS HFS_FS HID_ACCUTOUCH HID_ACRUX HID_ACRUX_FF HID_ALPS HID_APPLEIR HID_ASUS HID_AUREAL HID_BATTERY_STRENGTH HID_BETOP_FF HID_BIGBEN_FF HID_CMEDIA HID_CORSAIR HID_COUGAR HID_CP2112 HID_CREATIVE_SB0540 HID_ELAN HID_ELECOM HID_ELO HID_EMS_FF HID_EVISION HID_FT260 HID_GEMBIRD HID_GFRM HID_GLORIOUS HID_GOOGLE_STADIA_FF HID_GREENASIA HID_GT683R HID_HOLTEK HID_ICADE HID_JABRA HID_KEYTOUCH HID_KYE HID_LCPOWER HID_LED HID_LENOVO HID_LETSKETCH HID_LOGITECH_DJ HID_LOGITECH_HIDPP HID_MACALLY HID_MAGICMOUSE HID_MALTRON HID_MAYFLASH HID_MCP2200 HID_MCP2221 HID_MEGAWORLD_FF HID_MULTITOUCH HID_NTI HID_ORTEK HID_PENMOUNT HID_PICOLCD HID_PICOLCD_BACKLIGHT HID_PICOLCD_CIR HID_PICOLCD_FB HID_PICOLCD_LCD HID_PICOLCD_LEDS HID_PLANTRONICS HID_PRIMAX HID_PRODIKEYS HID_PXRC HID_RAZER HID_RETRODE HID_RMI HID_ROCCAT HID_SAITEK HID_SEMITEK HID_SENSOR_ACCEL_3D HID_SENSOR_ALS HID_SENSOR_CUSTOM_INTEL_HINGE HID_SENSOR_CUSTOM_SENSOR HID_SENSOR_DEVICE_ROTATION HID_SENSOR_GYRO_3D HID_SENSOR_HUB HID_SENSOR_HUMIDITY HID_SENSOR_IIO_COMMON HID_SENSOR_IIO_TRIGGER HID_SENSOR_INCLINOMETER_3D HID_SENSOR_MAGNETOMETER_3D HID_SENSOR_PRESS HID_SENSOR_PROX HID_SENSOR_TEMP HID_SIGMAMICRO HID_SPEEDLINK HID_STEELSERIES HID_THINGM HID_TIVO HID_TOPRE HID_TWINHAN HID_U2FZERO HID_UCLOGIC HID_UDRAW_PS3 HID_VIEWSONIC HID_VIVALDI HID_VIVALDI_COMMON HID_VRC2 HID_WACOM HID_WALTOP HID_WIIMOTE HID_XIAOMI HID_XINMO HID_ZYDACRON HMM_MIRROR HOLTEK_FF HOTPLUG_PCI_PCIE HPET_MMAP HPET_MMAP_DEFAULT HPFS_FS I2C_ALGOBIT I2C_CHARDEV I2C_CP2615 I2C_DESIGNWARE_CORE I2C_DESIGNWARE_PLATFORM I2C_DIOLAN_U2C I2C_DLN2 I2C_HID_ACPI I2C_HID_CORE I2C_HID_OF I2C_LJCA I2C_MUX I2C_MUX_REG I2C_ROBOTFUZZ_OSIF I2C_SI4713 I2C_SLAVE I2C_SLAVE_EEPROM I2C_TINY_USB I2C_VIPERBOARD IEEE802154 IEEE802154_6LOWPAN IEEE802154_ATUSB IEEE802154_DRIVERS IEEE802154_HWSIM IEEE802154_NL802154_EXPERIMENTAL IEEE802154_SOCKET IFB IIO IIO_BUFFER IIO_KFIFO_BUF IIO_TRIGGER IIO_TRIGGERED_BUFFER IKCONFIG IKCONFIG_PROC IMA IMA_APPRAISE IMA_APPRAISE_MODSIG IMA_DEFAULT_HASH_SHA256 IMA_LSM_RULES IMA_MEASURE_ASYMMETRIC_KEYS IMA_NG_TEMPLATE IMA_QUEUE_EARLY_BOOT_KEYS IMA_READ_POLICY IMA_WRITE_POLICY INET6_ESPINTCP INET6_ESP_OFFLOAD INET6_IPCOMP INET6_TUNNEL INET6_XFRM_TUNNEL INET_AH INET_DCCP_DIAG INET_DIAG INET_DIAG_DESTROY INET_ESP INET_ESPINTCP INET_ESP_OFFLOAD INET_IPCOMP INET_MPTCP_DIAG INET_RAW_DIAG INET_SCTP_DIAG INET_TCP_DIAG INET_UDP_DIAG INET_XFRM_TUNNEL INFINIBAND INFINIBAND_ADDR_TRANS INFINIBAND_ADDR_TRANS_CONFIGFS INFINIBAND_IPOIB INFINIBAND_IPOIB_CM INFINIBAND_IPOIB_DEBUG INFINIBAND_ISER INFINIBAND_ON_DEMAND_PAGING INFINIBAND_RTRS INFINIBAND_SRP INFINIBAND_USER_ACCESS INFINIBAND_USER_MAD INFINIBAND_USER_MEM INPUT_ATI_REMOTE2 INPUT_CM109 INPUT_IMS_PCU INPUT_JOYDEV INPUT_KEYSPAN_REMOTE INPUT_LEDS INPUT_MOUSEDEV INPUT_MOUSEDEV_PSAUX INPUT_POWERMATE INPUT_UINPUT INPUT_YEALINK INTEGRITY INTEGRITY_ASYMMETRIC_KEYS INTEGRITY_AUDIT INTEGRITY_SIGNATURE INTEGRITY_TRUSTED_KEYRING INTEL_CHTWC_INT33FE INTEL_IDMA64 INTEL_IOATDMA INTEL_IOMMU_DEFAULT_ON INTEL_IOMMU_SVM INTEL_ISHTP_ECLITE INTEL_ISH_FIRMWARE_DOWNLOADER INTEL_ISH_HID INTEL_SOC_PMIC_CHTWC INTERVAL_TREE_SPAN_ITER IOMMUFD IOMMUFD_DRIVER IOMMUFD_TEST IP6_NF_MATCH_AH IP6_NF_MATCH_EUI64 IP6_NF_MATCH_FRAG IP6_NF_MATCH_HL IP6_NF_MATCH_MH IP6_NF_MATCH_OPTS IP6_NF_MATCH_RPFILTER IP6_NF_MATCH_RT IP6_NF_MATCH_SRH IP6_NF_NAT IP6_NF_RAW IP6_NF_SECURITY IP6_NF_TARGET_HL IP6_NF_TARGET_MASQUERADE IP6_NF_TARGET_NPT IP6_NF_TARGET_SYNPROXY IPV6_FOU IPV6_FOU_TUNNEL IPV6_GRE IPV6_ILA IPV6_MIP6 IPV6_MROUTE IPV6_MROUTE_MULTIPLE_TABLES IPV6_MULTIPLE_TABLES IPV6_OPTIMISTIC_DAD IPV6_PIMSM_V2 IPV6_ROUTER_PREF IPV6_ROUTE_INFO IPV6_RPL_LWTUNNEL IPV6_SEG6_BPF IPV6_SEG6_HMAC IPV6_SEG6_LWTUNNEL IPV6_SIT_6RD IPV6_SUBTREES IPV6_TUNNEL IPV6_VTI IPVLAN IPVLAN_L3S IPVTAP IP_DCCP IP_DCCP_CCID3 IP_DCCP_TFRC_LIB IP_FIB_TRIE_STATS IP_MROUTE_MULTIPLE_TABLES IP_NF_ARPFILTER IP_NF_ARPTABLES IP_NF_ARP_MANGLE IP_NF_MATCH_AH IP_NF_MATCH_ECN IP_NF_MATCH_RPFILTER IP_NF_MATCH_TTL IP_NF_RAW IP_NF_SECURITY IP_NF_TARGET_ECN IP_NF_TARGET_NETMAP IP_NF_TARGET_REDIRECT IP_NF_TARGET_SYNPROXY IP_NF_TARGET_TTL IP_ROUTE_CLASSID IP_SCTP IP_SET IP_SET_BITMAP_IP IP_SET_BITMAP_IPMAC IP_SET_BITMAP_PORT IP_SET_HASH_IP IP_SET_HASH_IPMAC IP_SET_HASH_IPMARK IP_SET_HASH_IPPORT IP_SET_HASH_IPPORTIP IP_SET_HASH_IPPORTNET IP_SET_HASH_MAC IP_SET_HASH_NET IP_SET_HASH_NETIFACE IP_SET_HASH_NETNET IP_SET_HASH_NETPORT IP_SET_HASH_NETPORTNET IP_SET_LIST_SET IP_VS IP_VS_DH IP_VS_FO IP_VS_FTP IP_VS_IPV6 IP_VS_LBLC IP_VS_LBLCR IP_VS_LC IP_VS_PROTO_TCP IRQ_TIME_ACCOUNTING LAPB LCD_CLASS_DEVICE MAC802154 MEDIA_DIGITAL_TV_SUPPORT MEDIA_RADIO_SUPPORT MEDIA_SDR_SUPPORT MEDIA_SUPPORT MEDIA_TEST_SUPPORT MEDIA_USB_SUPPORT MEMORY_HOTPLUG MEMORY_HOTREMOVE MFD_DLN2 MFD_VIPERBOARD MPTCP MTD NETFILTER_ADVANCED NET_ACT_GACT NET_ACT_MIRRED NET_IPGRE_DEMUX NFT_COMPAT NFT_COMPAT_ARP NFT_FWD_NETDEV NF_TABLES NF_TABLES_ARP NF_TABLES_NETDEV RADIO_ADAPTERS RADIO_SI4713 RAS RC_CORE REGULATOR RFKILL SND SOUND STAGING TRANSPARENT_HUGEPAGE TYPEC TYPEC_MUX_PI3USB30532 USB_LJCA USB_ROLES_INTEL_XHCI USB_ROLE_SWITCH VIDEO_DEV VIRTIO_FS WAN ZONE_DEVICE] picked [v6.11 v6.10 v6.9 v6.7 v6.5 v6.3 v6.1 v5.19 v5.16 v5.13 v5.10 v5.7 v5.4 v5.1 v4.19] out of 34 release tags testing release v6.11 testing commit 98f7e32f20d28ec452afb208f9cffc08448a2652 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 2566d8f841b3ea3b0302a4509689fcedc5775954f0f3f00af2953f76e672a7b2 all runs: OK false negative chance: 0.000 # git bisect start c88416ba074a8913cf6d61b789dd834bbca6681c 98f7e32f20d28ec452afb208f9cffc08448a2652 Bisecting: 11421 revisions left to test after this (roughly 14 steps) [b707512b8b07396f8982103a84285a165a1bd94c] Merge tag 'staging-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging testing commit b707512b8b07396f8982103a84285a165a1bd94c gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 9fff8e0532e9b955b3e0b6e99bde877b4851b5b3009484fdee0aa6465ea4a0c0 all runs: OK false negative chance: 0.000 # git bisect good b707512b8b07396f8982103a84285a165a1bd94c Bisecting: 5747 revisions left to test after this (roughly 13 steps) [f8cb7e48d1bbb928d368a158aca5121746864715] Merge branch 'next' of git://git.linuxtv.org/media testing commit f8cb7e48d1bbb928d368a158aca5121746864715 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: c683d585d8d7d920058b2b0ec2964f55fe6d162d4523ab29c63a18d6ee4d2802 all runs: OK false negative chance: 0.000 # git bisect good f8cb7e48d1bbb928d368a158aca5121746864715 Bisecting: 2874 revisions left to test after this (roughly 12 steps) [032beb9fd8a0f03d37de548277124819e3da244f] Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git testing commit 032beb9fd8a0f03d37de548277124819e3da244f gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 3d0ed50bdfb7198c1a93b25d9c1b0a578e3e69ef821b8d287cbdcd261adc261b all runs: OK false negative chance: 0.000 # git bisect good 032beb9fd8a0f03d37de548277124819e3da244f Bisecting: 1437 revisions left to test after this (roughly 11 steps) [2a4478dcc10ac951cb6c5078abab44d73f1cbecc] Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux.git testing commit 2a4478dcc10ac951cb6c5078abab44d73f1cbecc gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 70d7f455ba054eb6d85f853e72829fd2108e56e278876225da0b0b46549db42b all runs: crashed: WARNING in io_get_cqe_overflow representative crash: WARNING in io_get_cqe_overflow, types: [WARNING] # git bisect bad 2a4478dcc10ac951cb6c5078abab44d73f1cbecc Bisecting: 699 revisions left to test after this (roughly 10 steps) [c8e401a534fd8f857161c8dcb5e65f1fe22cbd08] Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux.git testing commit c8e401a534fd8f857161c8dcb5e65f1fe22cbd08 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: b6a2728e83b862b4e1d050ccdd28a98f956f554802093bf8f69d6defd0733e4d all runs: crashed: WARNING in io_get_cqe_overflow representative crash: WARNING in io_get_cqe_overflow, types: [WARNING] # git bisect bad c8e401a534fd8f857161c8dcb5e65f1fe22cbd08 Bisecting: 315 revisions left to test after this (roughly 9 steps) [1ada6a27778781bfcc69df1cd3d90d23f1c64d83] Merge branch 'for-next' of git://git.kernel.dk/linux-block.git testing commit 1ada6a27778781bfcc69df1cd3d90d23f1c64d83 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 9d909272a20d616348a4c81111743f70faf05fd9878d7c4a3bca8a06b2acc3d0 all runs: crashed: WARNING in io_get_cqe_overflow representative crash: WARNING in io_get_cqe_overflow, types: [WARNING] # git bisect bad 1ada6a27778781bfcc69df1cd3d90d23f1c64d83 Bisecting: 207 revisions left to test after this (roughly 8 steps) [f5b1ef6895cd9a4b585b8ccc7980a5ce49ab6cd3] Merge branch 'modules-next' of git://git.kernel.org/pub/scm/linux/kernel/git/modules/linux.git testing commit f5b1ef6895cd9a4b585b8ccc7980a5ce49ab6cd3 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 15e5d10f1c2b7f1cf155d346ed78518f7383df78eacfcc8ef5da213bcc192778 all runs: OK false negative chance: 0.000 # git bisect good f5b1ef6895cd9a4b585b8ccc7980a5ce49ab6cd3 Bisecting: 103 revisions left to test after this (roughly 7 steps) [d4b9721e53b5de1588e7103d3bf75402c4bffa56] Merge branch 'for-6.13/block' into for-next testing commit d4b9721e53b5de1588e7103d3bf75402c4bffa56 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 97b8a4f4591d42dcd66207235fb4e6fa33fc9b83c588c3431b0ed9e89d3c53b2 all runs: crashed: WARNING in io_get_cqe_overflow representative crash: WARNING in io_get_cqe_overflow, types: [WARNING] # git bisect bad d4b9721e53b5de1588e7103d3bf75402c4bffa56 Bisecting: 51 revisions left to test after this (roughly 6 steps) [0f576012ae2ff08009ce91e2294832e2b88aba06] io_uring/rsrc: fix error code in io_clone_buffers() testing commit 0f576012ae2ff08009ce91e2294832e2b88aba06 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: a69b5afc32981f3e57d0dde965dcbe26c5725f621c98396df5f524eb47aa7945 all runs: crashed: WARNING in io_get_cqe_overflow representative crash: WARNING in io_get_cqe_overflow, types: [WARNING] # git bisect bad 0f576012ae2ff08009ce91e2294832e2b88aba06 Bisecting: 25 revisions left to test after this (roughly 5 steps) [52838787350d4ea8132804940d5308d95ce5e035] io_uring/net: don't alias send user pointer reads testing commit 52838787350d4ea8132804940d5308d95ce5e035 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: e8f0bbd60c05b019c5dd9867fbd5cbccc6aaf0cdacf2e5fa8b7cc3b49f34d070 all runs: OK false negative chance: 0.000 # git bisect good 52838787350d4ea8132804940d5308d95ce5e035 Bisecting: 12 revisions left to test after this (roughly 4 steps) [743fb58a35cde8fe27b07ee5a985ae76563845e3] io_uring/splice: open code 2nd direct file assignment testing commit 743fb58a35cde8fe27b07ee5a985ae76563845e3 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 0ef9c3601a2f49fa921079aa03acf13f10af9d5ec31358123603d249645cff99 all runs: OK false negative chance: 0.000 # git bisect good 743fb58a35cde8fe27b07ee5a985ae76563845e3 Bisecting: 6 revisions left to test after this (roughly 3 steps) [fd4fac1603070978665fe7519ac7e0d1cde9eb2c] io_uring/rsrc: unify file and buffer resource tables testing commit fd4fac1603070978665fe7519ac7e0d1cde9eb2c gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: abd33e4b55ea571d492652cb6c3ca213669aa61020269341d8528aedb6cf8ed3 all runs: crashed: WARNING in io_get_cqe_overflow representative crash: WARNING in io_get_cqe_overflow, types: [WARNING] # git bisect bad fd4fac1603070978665fe7519ac7e0d1cde9eb2c Bisecting: 2 revisions left to test after this (roughly 2 steps) [18ae8ec53f52bfe612eabc01aac3ba0358af1ee4] io_uring/rsrc: get rid of io_rsrc_node allocation cache testing commit 18ae8ec53f52bfe612eabc01aac3ba0358af1ee4 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 190000fb4cd0ce628859b600439ed6134796e045f7fbdd02cb353b0f1fc12c1a all runs: crashed: WARNING in io_get_cqe_overflow representative crash: WARNING in io_get_cqe_overflow, types: [WARNING] # git bisect bad 18ae8ec53f52bfe612eabc01aac3ba0358af1ee4 Bisecting: 0 revisions left to test after this (roughly 1 step) [3f1a546444738b21a8c312a4b49dc168b65c8706] io_uring/rsrc: get rid of per-ring io_rsrc_node list testing commit 3f1a546444738b21a8c312a4b49dc168b65c8706 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 4ee00230792b949b346efd9596c56328e9fded138ab9cd2c1d7a40a8c3bbe013 all runs: crashed: WARNING in io_get_cqe_overflow representative crash: WARNING in io_get_cqe_overflow, types: [WARNING] # git bisect bad 3f1a546444738b21a8c312a4b49dc168b65c8706 Bisecting: 0 revisions left to test after this (roughly 0 steps) [e410ffca588691e36d5449a5bf521a1a7b712911] io_uring/rsrc: kill io_charge_rsrc_node() testing commit e410ffca588691e36d5449a5bf521a1a7b712911 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: ac6a5bed6dc9285bb79e399db9f881dbce2691cc4f237b019fea47655ed76c2f all runs: OK false negative chance: 0.000 # git bisect good e410ffca588691e36d5449a5bf521a1a7b712911 3f1a546444738b21a8c312a4b49dc168b65c8706 is the first bad commit commit 3f1a546444738b21a8c312a4b49dc168b65c8706 Author: Jens Axboe Date: Fri Oct 25 19:27:39 2024 -0600 io_uring/rsrc: get rid of per-ring io_rsrc_node list Work in progress, but get rid of the per-ring serialization of resource nodes, like registered buffers and files. Main issue here is that one node can otherwise hold up a bunch of other nodes from getting freed, which is especially a problem for file resource nodes and networked workloads where some descriptors may not see activity in a long time. As an example, instantiate an io_uring ring fd and create a sparse registered file table. Even 2 will do. Then create a socket and register it as fixed file 0, F0. The number of open files in the app is now 5, with 0/1/2 being the usual stdin/out/err, 3 being the ring fd, and 4 being the socket. Register this socket (eg "the listener") in slot 0 of the registered file table. Now add an operation on the socket that uses slot 0. Finally, loop N times, where each loop creates a new socket, registers said socket as a file, then unregisters the socket, and finally closes the socket. This is roughly similar to what a basic accept loop would look like. At the end of this loop, it's not unreasonable to expect that there would still be 5 open files. Each socket created and registered in the loop is also unregistered and closed. But since the listener socket registered first still has references to its resource node due to still being active, each subsequent socket unregistration is stuck behind it for reclaim. Hence 5 + N files are still open at that point, where N is awaiting the final put held up by the listener socket. Rewrite the io_rsrc_node handling to NOT rely on serialization. Struct io_kiocb now gets explicit resource nodes assigned, with each holding a reference to the parent node. A parent node is either of type FILE or BUFFER, which are the two types of nodes that exist. A request can have two nodes assigned, if it's using both registered files and buffers. Since request issue and task_work completion is both under the ring private lock, no atomics are needed to handle these references. It's a simple unlocked inc/dec. As before, the registered buffer or file table each hold a reference as well to the registered nodes. Final put of the node will remove the node and free the underlying resource, eg unmap the buffer or put the file. Outside of removing the stall in resource reclaim described above, it has the following advantages: 1) It's a lot simpler than the previous scheme, and easier to follow. No need to specific quiesce handling anymore. 2) There are no resource node allocations in the fast path, all of that happens at resource registration time. 3) The structs related to resource handling can all get simplified quite a bit, like io_rsrc_node and io_rsrc_data. io_rsrc_put can go away completely. 4) Handling of resource tags is much simpler, and doesn't require persistent storage as it can simply get assigned up front at registration time. Just copy them in one-by-one at registration time and assign to the resource node. The only real downside is that a request is now explicitly limited to pinning 2 resources, one file and one buffer, where before just assigning a resource node to a request would pin all of them. The upside is that it's easier to follow now, as an individual resource is explicitly referenced and assigned to the request. With this in place, the above mentioned example will be using exactly 5 files at the end of the loop, not N. Needs to get broken up a bit and there are certainly rough edges, but that's why it's a work in progress... But it does remove a ton more code than it adds, and passes the liburing tests. Signed-off-by: Jens Axboe include/linux/io_uring_types.h | 10 +- io_uring/fdinfo.c | 2 +- io_uring/filetable.c | 52 ++--- io_uring/filetable.h | 25 ++- io_uring/io_uring.c | 38 ++-- io_uring/net.c | 11 +- io_uring/nop.c | 6 +- io_uring/notif.c | 3 +- io_uring/rsrc.c | 480 +++++++++++++++-------------------------- io_uring/rsrc.h | 71 ++---- io_uring/rw.c | 8 +- io_uring/splice.c | 16 +- io_uring/uring_cmd.c | 12 +- 13 files changed, 269 insertions(+), 465 deletions(-) accumulated error probability: 0.00 culprit signature: 4ee00230792b949b346efd9596c56328e9fded138ab9cd2c1d7a40a8c3bbe013 parent signature: ac6a5bed6dc9285bb79e399db9f881dbce2691cc4f237b019fea47655ed76c2f revisions tested: 22, total time: 8h7m45.378397374s (build: 4h35m33.802717175s, test: 3h6m22.333226191s) first bad commit: 3f1a546444738b21a8c312a4b49dc168b65c8706 io_uring/rsrc: get rid of per-ring io_rsrc_node list recipients (to): ["asml.silence@gmail.com" "axboe@kernel.dk" "axboe@kernel.dk" "io-uring@vger.kernel.org"] recipients (cc): ["linux-kernel@vger.kernel.org"] crash: WARNING in io_get_cqe_overflow ------------[ cut here ]------------ WARNING: CPU: 0 PID: 976 at io_uring/io_uring.h:142 io_lockdep_assert_cq_locked io_uring/io_uring.h:142 [inline] WARNING: CPU: 0 PID: 976 at io_uring/io_uring.h:142 io_get_cqe_overflow+0x19f/0x410 io_uring/io_uring.h:166 Modules linked in: CPU: 0 UID: 0 PID: 976 Comm: kworker/u8:10 Not tainted 6.12.0-rc4-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 Workqueue: iou_exit io_ring_exit_work RIP: 0010:io_lockdep_assert_cq_locked io_uring/io_uring.h:142 [inline] RIP: 0010:io_get_cqe_overflow+0x19f/0x410 io_uring/io_uring.h:166 Code: 0f b6 04 28 84 c0 0f 85 63 02 00 00 8b 05 e9 4d b1 04 f6 c3 04 75 18 85 c0 74 26 65 48 8b 04 25 80 b1 03 00 48 39 c5 74 18 90 <0f> 0b 90 eb 12 85 c0 74 0e e8 d3 1e be fe 48 85 c0 0f 84 24 01 00 RSP: 0018:ffffc90002ee77f0 EFLAGS: 00010202 RAX: ffff888112c33980 RBX: 0000000000400548 RCX: 0000000000000001 RDX: 0000000000000000 RSI: ffffc90002ee7880 RDI: ffff888179566000 RBP: ffff888171618000 R08: 0000000000000003 R09: fffff520005dcef8 R10: dffffc0000000000 R11: fffff520005dcef8 R12: ffff888179566000 R13: dffffc0000000000 R14: 006c6f6f74687465 R15: dffffc0000000000 FS: 0000000000000000(0000) GS:ffff8881f6000000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007ffe46594b28 CR3: 0000000113894000 CR4: 00000000003506f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: io_get_cqe io_uring/io_uring.h:182 [inline] io_fill_cqe_aux io_uring/io_uring.c:826 [inline] __io_post_aux_cqe io_uring/io_uring.c:847 [inline] io_post_aux_cqe+0xdd/0x3c0 io_uring/io_uring.c:859 io_free_rsrc_node+0xb2/0x2e0 io_uring/rsrc.c:474 io_put_rsrc_node io_uring/rsrc.h:76 [inline] __io_sqe_files_unregister+0x13f/0x570 io_uring/rsrc.c:504 io_sqe_files_unregister+0x3e/0x50 io_uring/rsrc.c:522 io_ring_ctx_free+0x40/0xde0 io_uring/io_uring.c:2724 io_ring_exit_work+0x48e/0x7e0 io_uring/io_uring.c:2962 process_one_work kernel/workqueue.c:3229 [inline] process_scheduled_works+0x96c/0x1540 kernel/workqueue.c:3310 worker_thread+0x727/0xb10 kernel/workqueue.c:3391 kthread+0x2e0/0x380 kernel/kthread.c:389 ret_from_fork+0x32/0x60 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244