Re: [PATCHv5] OMAP3: Serial: Improved sleep logic

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



<Tero.Kristo@xxxxxxxxx> writes:

[...]

>>Here's my hunch as to what's happening:
>>
>>I think the problem is a deadlock in getrawmonotonic().  Nested calls
>>here will deadlock due to the xtime_lock being held.
>
> Looking at the seqlock code, I think a seqlock reader can "hang" only in a case where someone is constantly writing the seqlock. And, as we are inside interrupt, this should not be possible.
>
>>When updading the timeout, sleep_timeout_store() does a
>>getrawmonotonic() to update the expiry time.  While this happening,
>>the UART interrupt could fire, causing an omap_uart_block_sleep()
>>which would also getrawmonotonic() and deadlock in interrupt mode.
>
> It does not really explain why it hangs after the 5 second period though, as the device has called getrawmonotonic several times by this already. I have not seen this kind of behavior in my testing, even while fiddling with the sleep_timeout_store().

minor clarification...

For me the hang is not after the 5 second timeout.  For me it happens
as soon as I write a non-zero value to
/sys/devices/.../serial8250.2/sleep_timeout.

Kevin
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux