synoxpe Posted July 1, 2022 Share #1 Posted July 1, 2022 (edited) I'm getting the following error messages from dmesg everytime DSM puts the HDDs to hibernation. I'm running ds918+ Redpill Tinycore DSM 7.0.1-42218 Update 2. Tips? kern :warn : [Mon Jun 27 13:02:38 2022] No such hdd enable pin. Index: 5 kern :warn : [Mon Jun 27 13:02:38 2022] ------------[ cut here ]------------ kern :warn : [Mon Jun 27 13:02:38 2022] WARNING: CPU: 1 PID: 4086 at drivers/ata/libata-core.c:453 SYNO_CTRL_HDD_POWERON+0x4f/0x60() kern :warn : [Mon Jun 27 13:02:38 2022] Modules linked in: cmac cifs tun nf_conntrack_ipv6 nf_defrag_ipv6 ip6table_filter ip6_tables ipt_MASQUERADE xt_REDIRECT nf_nat_masquerade_ipv4 xt_nat iptable_nat nf_nat_ipv4 nf_nat_redirect nf_nat xt_recent xt_iprange xt_limit xt_state xt_tcpudp xt_multiport xt_LOG nf_conntrack_ipv4 nf_defrag_ipv4 nf_conntrack iptable_filter ip_tables x_tables fuse 8021q vfat fat udf isofs loop vhost_scsi(O) vhost(O) tcm_loop(O) iscsi_target_mod(O) target_core_user(O) target_core_ep(O) target_core_multi_file(O) target_core_file(O) target_core_iblock(O) target_core_mod(O) syno_extent_pool(PO) rodsp_ep(O) synoacl_vfs(PO) raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx nfsd btrfs ecryptfs zstd_decompress zstd_compress xxhash xor raid6_pq lockd grace rpcsec_gss_krb5 auth_rpcgss sunrpc aesni_intel kern :warn : [Mon Jun 27 13:02:38 2022] glue_helper lrw gf128mul ablk_helper apollolake_synobios(PO) hid_generic usbhid hid usblp i915 drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops cfbfillrect cfbcopyarea cfbimgblt drm drm_panel_orientation_quirks iosf_mbi fb fbdev video backlight button uhci_hcd ehci_pci ehci_hcd r8168(O) i2c_algo_bit zram igb(O) e1000e(O) sg dm_snapshot dm_bufio crc_itu_t crc_ccitt psnap p8022 llc hfsplus md4 hmac sit tunnel4 ipv6 flashcache_syno(O) flashcache(O) syno_flashcache_control(O) dm_mod arc4 crc32c_intel cryptd sha256_generic ecb aes_x86_64 authenc des_generic ansi_cprng cts md5 cbc cpufreq_powersave cpufreq_performance processor cpufreq_stats vxlan ip6_udp_tunnel udp_tunnel ip_tunnel etxhci_hcd virtio_scsi(OE) virtio_net(OE) virtio_blk(OE) virtio_pci(OE) virtio_mmio(OE) virtio_ring(OE) kern :warn : [Mon Jun 27 13:02:38 2022] virtio(OE) usb_storage xhci_pci xhci_hcd usbcore usb_common [last unloaded: apollolake_synobios] kern :warn : [Mon Jun 27 13:02:38 2022] CPU: 1 PID: 4086 Comm: scsi_eh_10 Tainted: P W OE 4.4.180+ #42218 kern :warn : [Mon Jun 27 13:02:38 2022] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.14.0-0-g155821a1990b-prebuilt.qemu.org 04/01/2014 kern :warn : [Mon Jun 27 13:02:38 2022] 0000000000000000 ffff88017830bcb0 ffffffff812ef89d 0000000000000009 kern :warn : [Mon Jun 27 13:02:38 2022] 0000000000000000 ffff88017830bce8 ffffffff8105255f 0000000000000bb8 kern :warn : [Mon Jun 27 13:02:38 2022] 0000000000000000 0000000000000001 ffff880178978000 0000000000000000 kern :warn : [Mon Jun 27 13:02:38 2022] Call Trace: kern :warn : [Mon Jun 27 13:02:38 2022] [<ffffffff812ef89d>] dump_stack+0x4d/0x70 kern :warn : [Mon Jun 27 13:02:38 2022] [<ffffffff8105255f>] warn_slowpath_common+0x7f/0xb0 kern :warn : [Mon Jun 27 13:02:38 2022] [<ffffffff81052646>] warn_slowpath_null+0x16/0x20 kern :warn : [Mon Jun 27 13:02:38 2022] [<ffffffff8141dcdf>] SYNO_CTRL_HDD_POWERON+0x4f/0x60 kern :warn : [Mon Jun 27 13:02:38 2022] [<ffffffff8142e825>] syno_libata_port_power_ctl+0xc5/0x1a0 kern :warn : [Mon Jun 27 13:02:38 2022] [<ffffffff8142f7c7>] syno_libata_set_deep_sleep+0x2b7/0x9c0 kern :warn : [Mon Jun 27 13:02:38 2022] [<ffffffff81436ee3>] ata_scsi_port_error_handler+0x133/0x1a30 kern :warn : [Mon Jun 27 13:02:38 2022] [<ffffffff8106b0fe>] ? cancel_delayed_work_sync+0xe/0x10 kern :warn : [Mon Jun 27 13:02:38 2022] [<ffffffff81432868>] ? ata_scsi_cmd_error_handler+0x118/0x190 kern :warn : [Mon Jun 27 13:02:38 2022] [<ffffffff8143887b>] ata_scsi_error+0x9b/0xe0 kern :warn : [Mon Jun 27 13:02:38 2022] [<ffffffff813f86f5>] scsi_error_handler+0xa5/0x530 kern :warn : [Mon Jun 27 13:02:38 2022] [<ffffffff81575bcf>] ? __schedule+0x2ef/0x820 kern :warn : [Mon Jun 27 13:02:38 2022] [<ffffffff813f8650>] ? scsi_eh_get_sense+0x170/0x170 kern :warn : [Mon Jun 27 13:02:38 2022] [<ffffffff810700f5>] kthread+0xd5/0xf0 kern :warn : [Mon Jun 27 13:02:38 2022] [<ffffffff81070020>] ? kthread_worker_fn+0x160/0x160 kern :warn : [Mon Jun 27 13:02:38 2022] [<ffffffff81579fef>] ret_from_fork+0x3f/0x80 kern :warn : [Mon Jun 27 13:02:38 2022] [<ffffffff81070020>] ? kthread_worker_fn+0x160/0x160 kern :warn : [Mon Jun 27 13:02:39 2022] ---[ end trace 4d3f8f657722e7be ]--- kern :err : [Mon Jun 27 13:02:42 2022] ata11: wake up successful, the reset fail can be ignored kern :err : [Mon Jun 27 13:02:45 2022] ata10: wake up from deepsleep, reset link now kern :err : [Mon Jun 27 13:02:48 2022] ata10: wake up successful, the reset fail can be ignore Edited July 1, 2022 by synoxpe Quote Link to comment Share on other sites More sharing options...
IG-88 Posted July 1, 2022 Share #2 Posted July 1, 2022 there is no detail about the setup and disk arrangements any lsi sas controllers involved? how did you make the disks in the vm available for the use in dsm? if its more then a "test system" (any backup of the data on disk?) you might want to disable disk sleep in dsm's gui to prevent raid problems and do some testing with another vm before re-enabling it Quote Link to comment Share on other sites More sharing options...
synoxpe Posted July 1, 2022 Author Share #3 Posted July 1, 2022 (edited) Oh so this is SHR1, 5 disks. No LSI SAS controllers, but a JMB 585 5x SATA to PCIe (M.2) adapter used to connect the drives. The complete PCI controller hosting the JMicron card is passed through to the DSM VM from Proxmox. It's a "production" system. And the HDD hibernation was always enabled. Of late (since last weekend) I started seeing these error messages. I've turned off the hibernation completely to avoid the errors, but that beats the purpose of hibernation in the first place. Edited July 1, 2022 by synoxpe Quote Link to comment Share on other sites More sharing options...
IG-88 Posted July 1, 2022 Share #4 Posted July 1, 2022 (edited) 2 hours ago, synoxpe said: I've turned off the hibernation completely to avoid the errors, but that beats the purpose of hibernation in the first place. you could also do a raw mapping with the disks to the vm and let proxmox have the control over the controller (to handle power management) not that i could do much about it but the kernel source related looks like this (given that the 7.0 source 4180 still matches to 7.0.1 42281 drivers/ata/libata-core.c:453 SYNO_CTRL_HDD_POWERON edit2: the thing wanted to say is that it might be something that need to be emulated by the loader to work properly, but i can't say for sure as i don't know enough about the handling of the disks in the loader ... int SYNO_CTRL_HDD_POWERON(int index, int value) { #ifdef MY_DEF_HERE if (0 < g_smbus_hdd_powerctl) { if (!SynoSmbusHddPowerCtl.bl_init){ syno_smbus_hdd_powerctl_init(); } if (syno_is_hw_version(HW_DS1621p)) { if (NULL != SynoSmbusHddPowerCtl.syno_smbus_hdd_enable_write_all_once) { SynoSmbusHddPowerCtl.syno_smbus_hdd_enable_write_all_once(gSynoSmbusHddAdapter, gSynoSmbusHddAddress); } } else { if (NULL != SynoSmbusHddPowerCtl.syno_smbus_hdd_enable_write) { SynoSmbusHddPowerCtl.syno_smbus_hdd_enable_write(gSynoSmbusHddAdapter, gSynoSmbusHddAddress, index, value); } } return 0; } #endif /* MY_DEF_HERE */ if (!HAVE_HDD_ENABLE(index)) { // index is 1-based printk("No such hdd enable pin. Index: %d\n", index); WARN_ON(1); return -EINVAL; } #if defined(MY_DEF_HERE) rtk_hdd_pwren_reset(index, value); #else /* MY_DEF_HERE */ SYNO_GPIO_WRITE(HDD_ENABLE_PIN(index), value); #endif /* MY_DEF_HERE */ ... edit: in 6.2 source (I'm also using jmb585 but baremetal dsm 6.2.3) the code looks very different ... int SYNO_CTRL_HDD_POWERON(int index, int value) { if (!HAVE_HDD_ENABLE(index)) { printk("No such hdd enable pin. Index: %d\n", index); WARN_ON(1); return -EINVAL; } SYNO_GPIO_WRITE(HDD_ENABLE_PIN(index), value); return 0; } EXPORT_SYMBOL(SYNO_CTRL_HDD_POWERON); int SYNO_CHECK_HDD_DETECT(int index) { int ret; if (!HAVE_HDD_DETECT(index)) { return 1; } ret = SYNO_GPIO_READ(HDD_DETECT_PIN(index)); #ifdef MY_DEF_HERE if (ACTIVE_LOW == HDD_DETECT_POLARITY(index)) { #else if (ACTIVE_LOW == HDD_DETECT_POLARITY()) { #endif ... Edited July 1, 2022 by IG-88 Quote Link to comment Share on other sites More sharing options...
IG-88 Posted July 1, 2022 Share #5 Posted July 1, 2022 (edited) looking through some kernel setting i found something interesting in 7.1 kernel config file # CONFIG_SYNO_JMICRON_585_GPIO_LED_CTRL is not set # CONFIG_SYNO_JMICRON_585_FIX is not set # CONFIG_SYNO_JMICRON_585_DUBIOUS_IFS_FIX is not set beside some extra LED control there seems to some extra code for jmb585, can be syno specific or backported code from newer kernel that would need some more investigation to see if its code we have in the source of 7.0 or if it is something we have no code fore (like in source of 7.1) and was this code is about the jmb585 part seems to be active in gemini lake kernel config but not in apollo lake (the two fix entry's) so i'd suggest trying/testing 920+ instead of 918+ for the mentioned problem above there is also something about asm1166/1162 but no special fix for problems # CONFIG_SYNO_ASM_116X_GPIO_LED_CTRL is not set Edited July 1, 2022 by IG-88 1 Quote Link to comment Share on other sites More sharing options...
phone guy Posted July 10, 2022 Share #6 Posted July 10, 2022 @IG-88 How do you know if your HDDs are hibernating? I have a 3622 build on proxmox with an LSI HBA. I dont know if they are going to sleep or not? Anyway to know? Quote Link to comment Share on other sites More sharing options...
IG-88 Posted July 23, 2022 Share #7 Posted July 23, 2022 On 7/11/2022 at 1:27 AM, phone guy said: How do you know if your HDDs are hibernating? I have a 3622 build on proxmox with an LSI HBA. I dont know if they are going to sleep or not? Anyway to know? finger for vibrations and ear for noise, even on a 2.5" hdd you will recognise if the spindle motor is running or starts to spin up On 7/1/2022 at 5:57 PM, IG-88 said: looking through some kernel setting i found something interesting in 7.1 kernel config file config SYNO_SATA_JMB585_FIX bool "Fix JMicron issues" default n select SYNO_SATA_CONTROLLER_INFO help <DSM> #120513 Fix JMicron JMB585 interrupt issues config SYNO_SATA_JMB585_DUBIOUS_IFS_FIX bool "Fix JMicron 585 raise IFS on device error" default n select SYNO_SATA_CONTROLLER_INFO help <DSM> #127949 Fix JMicron 585 raises IFS on device error. Determine the actual error by reading disk ncq log. config SYNO_SATA_JMB585_GPIO_LED_CTRL bool "Interfaces For Jmicron JMB585 GPIO Control" default n depends on SYNO_OF help <DSM> #131900 Provides the infterfaces to operate the GPIO pins on JMB585. config SYNO_SATA_ASM116X_CONTROL bool help <DSM> No bug entry asmedia 116X register read / write function. config SYNO_SATA_ASM116X_AMP_ADJUST bool "adjust amplitude and de-emphasis for asmedia 1061 sata signal" default n select SYNO_SATA_ASM116X_CONTROL help <DSM> No bug entry adjust amplitude and de-emphasis for asmedia 116X sata signal config SYNO_SATA_ASM116X_GPIO_LED_CTRL bool "Interfaces For Asmedia 116X GPIO Control" depends on SYNO_OF default n select SYNO_SATA_ASM116X_CONTROL help <DSM> # Provides the infterfaces to operate the GPIO pins on Asmedia 116X. Quote Link to comment Share on other sites More sharing options...
phone guy Posted July 24, 2022 Share #8 Posted July 24, 2022 3 hours ago, IG-88 said: finger for vibrations and ear for noise, even on a 2.5" hdd you will recognise if the spindle motor is running or starts to spin up 🤣 I was expecting something a little more technical. But yeah, I guess that works too. Quote Link to comment Share on other sites More sharing options...
synoxpe Posted July 24, 2022 Author Share #9 Posted July 24, 2022 On 7/1/2022 at 9:27 PM, IG-88 said: looking through some kernel setting i found something interesting in 7.1 kernel config file # CONFIG_SYNO_JMICRON_585_GPIO_LED_CTRL is not set # CONFIG_SYNO_JMICRON_585_FIX is not set # CONFIG_SYNO_JMICRON_585_DUBIOUS_IFS_FIX is not set beside some extra LED control there seems to some extra code for jmb585, can be syno specific or backported code from newer kernel that would need some more investigation to see if its code we have in the source of 7.0 or if it is something we have no code fore (like in source of 7.1) and was this code is about the jmb585 part seems to be active in gemini lake kernel config but not in apollo lake (the two fix entry's) so i'd suggest trying/testing 920+ instead of 918+ for the mentioned problem above there is also something about asm1166/1162 but no special fix for problems # CONFIG_SYNO_ASM_116X_GPIO_LED_CTRL is not set @IG-88 Thanks much for checking out on my issue. Very insightful as always 😊 So that means to get the best results I need to test hibernation on a 920+ running DSM 7.1? As there they seem to have dealt with the JMB585 issues in particular? Quote Link to comment Share on other sites More sharing options...
Peter Suh Posted October 17, 2023 Share #10 Posted October 17, 2023 (edited) On 7/2/2022 at 12:57 AM, IG-88 said: looking through some kernel setting i found something interesting in 7.1 kernel config file # CONFIG_SYNO_JMICRON_585_GPIO_LED_CTRL is not set # CONFIG_SYNO_JMICRON_585_FIX is not set # CONFIG_SYNO_JMICRON_585_DUBIOUS_IFS_FIX is not set beside some extra LED control there seems to some extra code for jmb585, can be syno specific or backported code from newer kernel that would need some more investigation to see if its code we have in the source of 7.0 or if it is something we have no code fore (like in source of 7.1) and was this code is about the jmb585 part seems to be active in gemini lake kernel config but not in apollo lake (the two fix entry's) so i'd suggest trying/testing 920+ instead of 918+ for the mentioned problem above there is also something about asm1166/1162 but no special fix for problems # CONFIG_SYNO_ASM_116X_GPIO_LED_CTRL is not set I use Silverstone's SS-ECS07 using JMB585. https://www.silverstonetek.com/en/product/info/expansion-cards/ECS07/ The strange thing is that there is no problem during normal booting. Upon reboot, the following log (dmesg) occurs and the storage is not recognized. [ 2.819555] redpill: module verification failed: signature and/or required key missing - tainting kernel [ 2.846488] PCI host bridge to bus 0001:01 [ 2.851421] pci_bus 0001:01: root bus resource [io 0x0000-0xffff] [ 2.858882] pci_bus 0001:01: root bus resource [mem 0x00000000-0x7fffffffff] [ 2.867376] pci_bus 0001:01: root bus resource [bus 00-ff] [ 2.873980] pci 0001:01:00.0: [1b4b:9215] type 00 class 0x010601 [ 2.881226] pci 0001:01:00.0: Can't map mv9235 registers [ 2.887654] PCI host bridge to bus 0001:02 [ 2.892604] pci_bus 0001:02: root bus resource [io 0x0000-0xffff] [ 2.900063] pci_bus 0001:02: root bus resource [mem 0x00000000-0x7fffffffff] [ 2.908547] pci_bus 0001:02: busn_res: can not insert [bus 02-ff] under domain [bus 00-ff] (conflicts with (null) [bus 01-ff]) [ 2.922288] pci_bus 0001:02: root bus resource [bus 00-ff] [ 2.928892] pci 0001:02:00.0: [8086:1539] type 00 class 0x020000 [ 2.936168] PCI host bridge to bus 0001:03 [ 2.941108] pci_bus 0001:03: root bus resource [io 0x0000-0xffff] [ 2.948566] pci_bus 0001:03: root bus resource [mem 0x00000000-0x7fffffffff] [ 2.957068] pci_bus 0001:03: busn_res: can not insert [bus 03-ff] under domain [bus 00-ff] (conflicts with (null) [bus 01-ff]) [ 2.970798] pci_bus 0001:03: root bus resource [bus 00-ff] [ 2.977414] pci 0001:03:00.0: [8086:1539] type 00 class 0x020000 [ 2.984693] PCI host bridge to bus 0001:00 [ 2.989638] pci_bus 0001:00: root bus resource [io 0x0000-0xffff] [ 2.997106] pci_bus 0001:00: root bus resource [mem 0x00000000-0x7fffffffff] [ 3.005609] pci_bus 0001:00: busn_res: can not insert [bus 00-ff] under domain [bus 00-ff] (conflicts with (null) [bus 01-ff]) [ 3.019349] pci_bus 0001:00: root bus resource [bus 00-ff] ... [ 3.498046] pcieport 0000:00:1d.0: AER: Multiple Corrected error received: id=00e8 [ 3.498079] pcieport 0000:00:1d.0: PCIe Bus Error: severity=Corrected, type=Physical Layer, id=00e8(Receiver ID) [ 3.498080] pcieport 0000:00:1d.0: device [8086:a29a] error status/mask=00000001/00002000 [ 3.498081] pcieport 0000:00:1d.0: [ 0] Receiver Error I am using DS918+ Apollo Lake 7.2.1-69057 U1. according to your advice Let's switch to DS920+ Gemini Lake. Edited October 17, 2023 by Peter Suh Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.