lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 19 Sep 2016 23:45:12 +0200
From:   Tobias Jakobi <tjakobi@...h.uni-bielefeld.de>
To:     Marek Szyprowski <m.szyprowski@...sung.com>,
        linux-pm@...r.kernel.org, linux-kernel@...r.kernel.org,
        iommu@...ts.linux-foundation.org, linux-samsung-soc@...r.kernel.org
Cc:     Joerg Roedel <joro@...tes.org>, Inki Dae <inki.dae@...sung.com>,
        Kukjin Kim <kgene@...nel.org>,
        Krzysztof Kozlowski <k.kozlowski@...sung.com>,
        Bartlomiej Zolnierkiewicz <b.zolnierkie@...sung.com>,
        "Rafael J. Wysocki" <rjw@...ysocki.net>,
        Mark Brown <broonie@...nel.org>,
        "Luis R. Rodriguez" <mcgrof@...nel.org>,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        Tomeu Vizoso <tomeu.vizoso@...labora.com>,
        Lukas Wunner <lukas@...ner.de>,
        Kevin Hilman <khilman@...nel.org>
Subject: Re: [PATCH v3 0/2] Exynos IOMMU: proper runtime PM support (use
 device dependencies)

Hello Marek,

I did some tests with the new version today. Sadly the reboot/shutdown
issues are still present.

Here's what appears on the UART last:
> [  399.538147] sd 0:0:0:0: [sda] Synchronizing SCSI cache
> [  404.970649] smsc95xx 1-2.1.1:1.0 eth0: Failed to read reg index 0x00000114: -110
> [  404.972426] smsc95xx 1-2.1.1:1.0 eth0: Error reading MII_ACCESS
> [  404.978336] smsc95xx 1-2.1.1:1.0 eth0: MII is busy in smsc95xx_mdio_read
> [  404.985020] smsc95xx 1-2.1.1:1.0 eth0: Failed to read MII_BMSR
> [  434.170626] usb 1-2-port2: cannot reset (err = -110)
> [  435.210242] usb 1-2-port2: cannot reset (err = -110)
> [  436.250261] usb 1-2-port2: cannot reset (err = -110)
> [  437.290241] usb 1-2-port2: cannot reset (err = -110)
> [  438.330241] usb 1-2-port2: cannot reset (err = -110)
> [  438.330346] usb 1-2-port2: Cannot enable. Maybe the USB cable is bad?
> [  439.370608] usb 1-2-port2: cannot disable (err = -110)
> [  440.410225] usb 1-2-port2: cannot reset (err = -110)
> [  441.450236] usb 1-2-port2: cannot reset (err = -110)
> [  442.490222] usb 1-2-port2: cannot reset (err = -110)
> [  443.530224] usb 1-2-port2: cannot reset (err = -110)
> [  444.570228] usb 1-2-port2: cannot reset (err = -110)
> [  444.570331] usb 1-2-port2: Cannot enable. Maybe the USB cable is bad?
> [  445.610227] usb 1-2-port2: cannot disable (err = -110)
> [  446.650230] usb 1-2-port2: cannot reset (err = -110)
> [  447.690231] usb 1-2-port2: cannot reset (err = -110)
> [  448.730235] usb 1-2-port2: cannot reset (err = -110)
> [  449.770235] usb 1-2-port2: cannot reset (err = -110)
> [  450.810239] usb 1-2-port2: cannot reset (err = -110)
> [  450.810342] usb 1-2-port2: Cannot enable. Maybe the USB cable is bad?
> [  451.850240] usb 1-2-port2: cannot disable (err = -110)
> [  452.890243] usb 1-2-port2: cannot reset (err = -110)
> [  453.930271] usb 1-2-port2: cannot reset (err = -110)
> [  454.970247] usb 1-2-port2: cannot reset (err = -110)
> [  456.010250] usb 1-2-port2: cannot reset (err = -110)
> [  457.050251] usb 1-2-port2: cannot reset (err = -110)
> [  457.050353] usb 1-2-port2: Cannot enable. Maybe the USB cable is bad?
> [  458.090250] usb 1-2-port2: cannot disable (err = -110)
> [  459.130603] usb 1-2-port2: cannot disable (err = -110)
> [  464.330286] hub 1-2:1.0: hub_ext_port_status failed (err = -110)


If I trigger a stack trace via SysRq at this point, I get this here:
> [  672.679321] sysrq: SysRq : Show backtrace of all active CPUs
> [  672.679448] Sending NMI to all CPUs:
> [  672.682901] NMI backtrace for cpu 0
> [  672.686377] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.8.0-rc7-debug+ #6
> [  672.693149] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
> [  672.699223] Backtrace: 
> [  672.701657] [<c010c9bc>] (dump_backtrace) from [<c010cb68>] (show_stack+0x18/0x1c)
> [  672.709212]  r6:c0c25e40 r5:600401d3 r4:00000000 r3:00040800
> [  672.714845] [<c010cb50>] (show_stack) from [<c039bef8>] (dump_stack+0xb0/0xdc)
> [  672.722062] [<c039be48>] (dump_stack) from [<c03a089c>] (nmi_cpu_backtrace+0x88/0x8c)
> [  672.729870]  r8:c0c27f88 r7:c010e87c r6:00000000 r5:00000000 r4:00000000 r3:00000000
> [  672.737590] [<c03a0814>] (nmi_cpu_backtrace) from [<c010e8d8>] (raise_nmi+0x5c/0x60)
> [  672.745320]  r5:c0c0281c r4:c0c0281c
> [  672.748868] [<c010e87c>] (raise_nmi) from [<c03a0800>] (nmi_trigger_all_cpu_backtrace+0x120/0x134)
> [  672.757821]  r4:00000001 r3:00000000
> [  672.761367] [<c03a06e0>] (nmi_trigger_all_cpu_backtrace) from [<c010f5c0>] (arch_trigger_all_cpu_backtrace+0x18/0x1c)
> [  672.771972]  r7:00000001 r6:00000008 r5:0000006c r4:c0c0cf0c
> [  672.777601] [<c010f5a8>] (arch_trigger_all_cpu_backtrace) from [<c03fc7c0>] (sysrq_handle_showallcpus+0x14/0x18)
> [  672.787774] [<c03fc7ac>] (sysrq_handle_showallcpus) from [<c03fcfc8>] (__handle_sysrq+0x104/0x268)
> [  672.796711] [<c03fcec4>] (__handle_sysrq) from [<c03fd5d4>] (handle_sysrq+0x34/0x38)
> [  672.804431]  r8:c0c02100 r7:c0c2b994 r6:00000040 r5:00000000 r4:c0c2b964
> [  672.811106] [<c03fd5a0>] (handle_sysrq) from [<c0412564>] (s3c24xx_serial_rx_drain_fifo+0x1fc/0x22c)
> [  672.820236] [<c0412368>] (s3c24xx_serial_rx_drain_fifo) from [<c04133f8>] (s3c24xx_serial_rx_chars+0x74/0x1a8)
> [  672.830214]  r10:0001000f r9:ee1f2200 r8:200401d3 r7:ed01cc00 r6:c0c2b994 r5:ee2a5550
> [  672.838013]  r4:c0c2b964
> [  672.840529] [<c0413384>] (s3c24xx_serial_rx_chars) from [<c041357c>] (s3c64xx_serial_handle_irq+0x50/0x68)
> [  672.850178]  r10:c0c01e24 r9:00000000 r8:00000047 r7:c0c00000 r6:00000047 r5:00000001
> [  672.857977]  r4:c0c2b964
> [  672.860496] [<c041352c>] (s3c64xx_serial_handle_irq) from [<c01843b8>] (__handle_irq_event_percpu+0x7c/0x4c4)
> [  672.870403]  r6:c0c02848 r5:eeb0a100 r4:ed76b8c0 r3:c041352c
> [  672.876030] [<c018433c>] (__handle_irq_event_percpu) from [<c0184824>] (handle_irq_event_percpu+0x24/0x60)
> [  672.885679]  r10:c0c01ee8 r9:ee808000 r8:00000001 r7:00000000 r6:c0c02848 r5:eeb0a100
> [  672.893478]  r4:eeb0a100
> [  672.895994] [<c0184800>] (handle_irq_event_percpu) from [<c01848a0>] (handle_irq_event+0x40/0x64)
> [  672.904860]  r5:eeb0a160 r4:eeb0a100
> [  672.908406] [<c0184860>] (handle_irq_event) from [<c01881d0>] (handle_fasteoi_irq+0xd8/0x1a8)
> [  672.916925]  r6:c0c02848 r5:eeb0a160 r4:eeb0a100 r3:00000000
> [  672.922554] [<c01880f8>] (handle_fasteoi_irq) from [<c0183ae8>] (generic_handle_irq+0x2c/0x3c)
> [  672.931160]  r7:00000000 r6:00000047 r5:00000000 r4:c0b42270
> [  672.936790] [<c0183abc>] (generic_handle_irq) from [<c0183b7c>] (__handle_domain_irq+0x84/0xf4)
> [  672.945486] [<c0183af8>] (__handle_domain_irq) from [<c0101510>] (gic_handle_irq+0x5c/0xa0)
> [  672.953815]  r10:c0c02524 r9:f0821000 r8:f0820000 r7:c0c01ee8 r6:f082000c r5:c0c26380
> [  672.961616]  r4:c0c02848 r3:c0c01ee8
> [  672.965172] [<c01014b4>] (gic_handle_irq) from [<c010d7b0>] (__irq_svc+0x70/0xb0)
> [  672.972651] Exception stack(0xc0c01ee8 to 0xc0c01f30)
> [  672.977679] 1ee0:                   00000001 00000001 00000000 c011b660 c0c00000 c0c448cc
> [  672.985846] 1f00: c0c024d4 00000001 00000000 00000000 c0c02524 c0c01f44 c0c01f08 c0c01f38
> [  672.994005] 1f20: c01743d4 c01089d4 20040053 ffffffff
> [  672.999029]  r9:c0c00000 r8:00000000 r7:c0c01f1c r6:ffffffff r5:20040053 r4:c01089d4
> [  673.006758] [<c01089a8>] (arch_cpu_idle) from [<c016cdd8>] (default_idle_call+0x28/0x38)
> [  673.014838] [<c016cdb0>] (default_idle_call) from [<c016d190>] (cpu_startup_entry+0x3a8/0x484)
> [  673.023436] [<c016cde8>] (cpu_startup_entry) from [<c0807b00>] (rest_init+0x168/0x178)
> [  673.031327]  r7:ffffffff
> [  673.033834] [<c0807998>] (rest_init) from [<c0b00cf8>] (start_kernel+0x384/0x390)
> [  673.041308]  r5:c0c49000 r4:00000001
> [  673.044855] [<c0b00974>] (start_kernel) from [<40008078>] (0x40008078)
> [  673.051486] NMI backtrace for cpu 3
> [  673.054844] CPU: 3 PID: 0 Comm: swapper/3 Not tainted 4.8.0-rc7-debug+ #6
> [  673.061615] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
> [  673.067692] task: ee8b3200 task.stack: ee8be000
> [  673.072201] PC is at arch_cpu_idle+0x2c/0x44
> [  673.076455] LR is at trace_hardirqs_on_caller+0x158/0x200
> [  673.081840] pc : [<c01089d4>]    lr : [<c01743d4>]    psr: 20010053
> [  673.088089] sp : ee8bff90  ip : ee8bff60  fp : ee8bff9c
> [  673.093294] r10: c0c02524  r9 : 00000000  r8 : 00000000
> [  673.098503] r7 : 00000008  r6 : c0c024d4  r5 : c0c448cc  r4 : ee8be000
> [  673.105014] r3 : c011b660  r2 : 00000000  r1 : 00000001  r0 : 00000001
> [  673.111525] Flags: nzCv  IRQs on  FIQs off  Mode SVC_32  ISA ARM  Segment none
> [  673.118736] Control: 10c5387d  Table: 6dc5804a  DAC: 00000051
> [  673.124459] CPU: 3 PID: 0 Comm: swapper/3 Not tainted 4.8.0-rc7-debug+ #6
> [  673.131229] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
> [  673.137306] Backtrace: 
> [  673.139730] [<c010c9bc>] (dump_backtrace) from [<c010cb68>] (show_stack+0x18/0x1c)
> [  673.147292]  r6:c0c25e40 r5:600101d3 r4:00000000 r3:00040800
> [  673.152929] [<c010cb50>] (show_stack) from [<c039bef8>] (dump_stack+0xb0/0xdc)
> [  673.160138] [<c039be48>] (dump_stack) from [<c0108c5c>] (show_regs+0x14/0x18)
> [  673.167251]  r8:f082c000 r7:ee8bff40 r6:c0b42270 r5:00000003 r4:ee8bff40 r3:00040800
> [  673.174982] [<c0108c48>] (show_regs) from [<c03a0880>] (nmi_cpu_backtrace+0x6c/0x8c)
> [  673.182707] [<c03a0814>] (nmi_cpu_backtrace) from [<c010f1c0>] (handle_IPI+0x14c/0x434)
> [  673.190692]  r5:c0b42270 r4:00000007
> [  673.194241] [<c010f074>] (handle_IPI) from [<c0101550>] (gic_handle_irq+0x9c/0xa0)
> [  673.201803]  r10:c0c02524 r9:f082d000 r8:f082c000 r7:ee8bff40 r6:f082c00c r5:c0c26380
> [  673.209615]  r4:c0c02848
> [  673.212121] [<c01014b4>] (gic_handle_irq) from [<c010d7b0>] (__irq_svc+0x70/0xb0)
> [  673.219596] Exception stack(0xee8bff40 to 0xee8bff88)
> [  673.224624] ff40: 00000001 00000001 00000000 c011b660 ee8be000 c0c448cc c0c024d4 00000008
> [  673.232790] ff60: 00000000 00000000 c0c02524 ee8bff9c ee8bff60 ee8bff90 c01743d4 c01089d4
> [  673.240952] ff80: 20010053 ffffffff
> [  673.244411]  r9:ee8be000 r8:00000000 r7:ee8bff74 r6:ffffffff r5:20010053 r4:c01089d4
> [  673.252147] [<c01089a8>] (arch_cpu_idle) from [<c016cdd8>] (default_idle_call+0x28/0x38)
> [  673.260221] [<c016cdb0>] (default_idle_call) from [<c016d190>] (cpu_startup_entry+0x3a8/0x484)
> [  673.268816] [<c016cde8>] (cpu_startup_entry) from [<c010ee88>] (secondary_start_kernel+0xf8/0x100)
> [  673.277755]  r7:c0c49328
> [  673.280259] [<c010ed90>] (secondary_start_kernel) from [<401015ec>] (0x401015ec)
> [  673.287648]  r5:00000051 r4:6e89406a
> [  673.291197] NMI backtrace for cpu 2
> [  673.294670] CPU: 2 PID: 3729 Comm: reboot Not tainted 4.8.0-rc7-debug+ #6
> [  673.301443] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
> [  673.307518] task: ee030c80 task.stack: edec8000
> [  673.312029] PC is at _raw_spin_unlock_irq+0x30/0x64
> [  673.316891] LR is at mark_held_locks+0x74/0x9c
> [  673.321317] pc : [<c080ee84>]    lr : [<c0174254>]    psr: 200a0053
> [  673.327569] sp : edec9df0  ip : c0d9a4d4  fp : edec9e04
> [  673.332775] r10: 00000000  r9 : ee029c44  r8 : c0c49020
> [  673.337984] r7 : ee029cb0  r6 : 00000000  r5 : ee029d84  r4 : ee029cb0
> [  673.344495] r3 : 600a00d3  r2 : 00000000  r1 : ee031158  r0 : 00000001
> [  673.351005] Flags: nzCv  IRQs on  FIQs off  Mode SVC_32  ISA ARM  Segment none
> [  673.358215] Control: 10c5387d  Table: 6d7ec04a  DAC: 00000051
> [  673.363937] CPU: 2 PID: 3729 Comm: reboot Not tainted 4.8.0-rc7-debug+ #6
> [  673.370709] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
> [  673.376784] Backtrace: 
> [  673.379209] [<c010c9bc>] (dump_backtrace) from [<c010cb68>] (show_stack+0x18/0x1c)
> [  673.386773]  r6:c0c25e40 r5:600a01d3 r4:00000000 r3:00040800
> [  673.392408] [<c010cb50>] (show_stack) from [<c039bef8>] (dump_stack+0xb0/0xdc)
> [  673.399618] [<c039be48>] (dump_stack) from [<c0108c5c>] (show_regs+0x14/0x18)
> [  673.406732]  r8:f0828000 r7:edec9da0 r6:c0b42270 r5:00000002 r4:edec9da0 r3:00040800
> [  673.414462] [<c0108c48>] (show_regs) from [<c03a0880>] (nmi_cpu_backtrace+0x6c/0x8c)
> [  673.422187] [<c03a0814>] (nmi_cpu_backtrace) from [<c010f1c0>] (handle_IPI+0x14c/0x434)
> [  673.430173]  r5:c0b42270 r4:00000007
> [  673.433722] [<c010f074>] (handle_IPI) from [<c0101550>] (gic_handle_irq+0x9c/0xa0)
> [  673.441283]  r10:00000000 r9:f0829000 r8:f0828000 r7:edec9da0 r6:f082800c r5:c0c26380
> [  673.449095]  r4:c0c02848
> [  673.451601] [<c01014b4>] (gic_handle_irq) from [<c010d7b0>] (__irq_svc+0x70/0xb0)
> [  673.459076] Exception stack(0xedec9da0 to 0xedec9de8)
> [  673.464103] 9da0: 00000001 ee031158 00000000 600a00d3 ee029cb0 ee029d84 00000000 ee029cb0
> [  673.472272] 9dc0: c0c49020 ee029c44 00000000 edec9e04 c0d9a4d4 edec9df0 c0174254 c080ee84
> [  673.480430] 9de0: 200a0053 ffffffff
> [  673.483892]  r9:edec8000 r8:c0c49020 r7:edec9dd4 r6:ffffffff r5:200a0053 r4:c080ee84
> [  673.491627] [<c080ee54>] (_raw_spin_unlock_irq) from [<c047ab90>] (pm_runtime_barrier+0x68/0xbc)
> [  673.500395]  r4:ee029c10 r3:00000080
> [  673.503942] [<c047ab28>] (pm_runtime_barrier) from [<c046c6d4>] (device_shutdown+0x110/0x1c8)
> [  673.512460]  r7:c140755c r6:ee029c10 r5:c0c2e210 r4:ee029c1c
> [  673.518094] [<c046c5c4>] (device_shutdown) from [<c014ad10>] (kernel_restart_prepare+0x3c/0x40)
> [  673.526782]  r9:c0c0ae1c r8:00000010 r7:c0c0b244 r6:01234567 r5:00000000 r4:00000000
> [  673.534506] [<c014acd4>] (kernel_restart_prepare) from [<c014ae68>] (kernel_restart+0x14/0x58)
> [  673.543100] [<c014ae54>] (kernel_restart) from [<c014b13c>] (SyS_reboot+0x114/0x200)
> [  673.550824]  r4:c0c02448 r3:01234567
> [  673.554374] [<c014b028>] (SyS_reboot) from [<c0107ee0>] (ret_fast_syscall+0x0/0x1c)
> [  673.562021]  r9:edec8000 r8:c0108084 r7:00000058 r6:010a0008 r5:be9f6ce0 r4:00000001
> [  673.569748] NMI backtrace for cpu 1
> [  673.573211] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.8.0-rc7-debug+ #6
> [  673.579984] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
> [  673.586059] task: ee8b1900 task.stack: ee8ba000
> [  673.590570] PC is at arch_cpu_idle+0x2c/0x44
> [  673.594823] LR is at trace_hardirqs_on_caller+0x158/0x200
> [  673.600206] pc : [<c01089d4>]    lr : [<c01743d4>]    psr: 200b0053
> [  673.606457] sp : ee8bbf90  ip : ee8bbf60  fp : ee8bbf9c
> [  673.611664] r10: c0c02524  r9 : 00000000  r8 : 00000000
> [  673.616872] r7 : 00000002  r6 : c0c024d4  r5 : c0c448cc  r4 : ee8ba000
> [  673.623383] r3 : c011b660  r2 : 00000000  r1 : 00000001  r0 : 00000001
> [  673.629894] Flags: nzCv  IRQs on  FIQs off  Mode SVC_32  ISA ARM  Segment none
> [  673.637103] Control: 10c5387d  Table: 6df9804a  DAC: 00000051
> [  673.642827] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.8.0-rc7-debug+ #6
> [  673.649598] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
> [  673.655672] Backtrace: 
> [  673.658098] [<c010c9bc>] (dump_backtrace) from [<c010cb68>] (show_stack+0x18/0x1c)
> [  673.665660]  r6:c0c25e40 r5:600b01d3 r4:00000000 r3:00040800
> [  673.671296] [<c010cb50>] (show_stack) from [<c039bef8>] (dump_stack+0xb0/0xdc)
> [  673.678506] [<c039be48>] (dump_stack) from [<c0108c5c>] (show_regs+0x14/0x18)
> [  673.685620]  r8:f0824000 r7:ee8bbf40 r6:c0b42270 r5:00000001 r4:ee8bbf40 r3:00040800
> [  673.693350] [<c0108c48>] (show_regs) from [<c03a0880>] (nmi_cpu_backtrace+0x6c/0x8c)
> [  673.701075] [<c03a0814>] (nmi_cpu_backtrace) from [<c010f1c0>] (handle_IPI+0x14c/0x434)
> [  673.709061]  r5:c0b42270 r4:00000007
> [  673.712610] [<c010f074>] (handle_IPI) from [<c0101550>] (gic_handle_irq+0x9c/0xa0)
> [  673.720171]  r10:c0c02524 r9:f0825000 r8:f0824000 r7:ee8bbf40 r6:f082400c r5:c0c26380
> [  673.727983]  r4:c0c02848
> [  673.730489] [<c01014b4>] (gic_handle_irq) from [<c010d7b0>] (__irq_svc+0x70/0xb0)
> [  673.737964] Exception stack(0xee8bbf40 to 0xee8bbf88)
> [  673.742992] bf40: 00000001 00000001 00000000 c011b660 ee8ba000 c0c448cc c0c024d4 00000002
> [  673.751160] bf60: 00000000 00000000 c0c02524 ee8bbf9c ee8bbf60 ee8bbf90 c01743d4 c01089d4
> [  673.759319] bf80: 200b0053 ffffffff
> [  673.762780]  r9:ee8ba000 r8:00000000 r7:ee8bbf74 r6:ffffffff r5:200b0053 r4:c01089d4
> [  673.770515] [<c01089a8>] (arch_cpu_idle) from [<c016cdd8>] (default_idle_call+0x28/0x38)
> [  673.778588] [<c016cdb0>] (default_idle_call) from [<c016d190>] (cpu_startup_entry+0x3a8/0x484)
> [  673.787182] [<c016cde8>] (cpu_startup_entry) from [<c010ee88>] (secondary_start_kernel+0xf8/0x100)
> [  673.796123]  r7:c0c49328
> [  673.798627] [<c010ed90>] (secondary_start_kernel) from [<401015ec>] (0x401015ec)
> [  673.806016]  r5:00000051 r4:6e89406a

So this seems to be PM related, since it hangs in pm_runtime_barrier()
in device_shutdown().

Anyway, I noticed something else on boot:
> [    7.567702] usb-storage 1-2.2:1.0: USB Mass Storage device detected
> [    7.569762] scsi host0: usb-storage 1-2.2:1.0
> [    7.579054] scsi host0: runtime PM trying to activate child device host0 but parent (1-2.2:1.0) is not active


Maybe some details about my storage setup. While boot and rootfs are on
a SD card, /var and some other things are on a USB thumb drive (/dev/sda
is that drive).

My guess is that with the runpm changes the failure to sync the thumb
drive now blocks the rest of the shutdown/reboot procedure.


With best wishes,
Tobias



Marek Szyprowski wrote:
> Hello,
> 
> This patch series finally implements proper runtime PM support in Exynos
> IOMMU driver. This has been achieved by using recently introduce device
> links, which lets SYSMMU controller's runtime PM to follow master's device
> runtime PM state (the device which actually performs DMA transaction).
> The main idea behind this solution is an observation that any DMA activity
> from master device can be done only when master device is active, thus when
> master device is suspended SYSMMU controller device can also be suspended.
> 
> This patchset solves the situation that power domains are always enabled,
> because all SYSMMU controllers (which belongs to those domains) are
> permanently active (because existing driver was simplified and kept
> SYSMMU device active all the time after initialization).
> 
> Patch requires second version of Rafeal's "Functional dependencies
> between devices" patchset, which is available here:
> https://lkml.org/lkml/2016/9/8/798
> 
> If one wants to test this patchset, I've provided a branch with all needed
> patches (some fixes for Exynos4 FIMC-IS driver are needed):
> https://git.linaro.org/people/marek.szyprowski/linux-srpol.git v4.8-iommu-pm-v3
> 
> Patches are based on vanilla v4.8-rc6 kernel with Rafael's patches applied.
> 
> Best regards
> Marek Szyprowski
> Samsung R&D Institute Poland
> 
> 
> Changelog:
> v3:
> - rebased on top of latest device dependencies/links patchset
> - added proper locking between runtime pm, iommu_attach/detach and sysmmu
>   enable/disable(added per iommu owner device's rpm lock)
> 
> v2:
> - replaced PM notifiers with generic device dependencies/links developped
>   by Rafael J. Wysocki
> 
> v1: http://www.spinics.net/lists/arm-kernel/msg509600.html
> - initial version
> 
> 
> Patch summary:
> 
> Marek Szyprowski (2):
>   iommu/exynos: Remove excessive, useless debug
>   iommu/exynos: Add proper runtime pm support
> 
>  drivers/iommu/exynos-iommu.c | 228 ++++++++++++++++++-------------------------
>  1 file changed, 94 insertions(+), 134 deletions(-)
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ