Re: 4.6-rc3 hung at tty_port_block_til_ready+0x11c/0x2a0

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

 



On 04/19/2016 01:37 AM, Matwey V. Kornilov wrote:
> 2016-04-19 6:01 GMT+03:00 Peter Hurley <peter@xxxxxxxxxxxxxxxxxx>:
>> On 04/18/2016 07:18 AM, Matwey V. Kornilov wrote:
>>> 2016-04-18 9:55 GMT+03:00 Jiri Slaby <jslaby@xxxxxxx>:
>>>> On 04/17/2016, 02:33 PM, Matwey V. Kornilov wrote:
>>>>> Hello,
>>>>>
>>>>> When running 4.6-rc3 (please find used config attached) on BeagleBone Black with 8250_omap serial driver I see the following hung.
>>
> 
> Hello,
> 
>> What uart # (0-5) are you using?
> 
> I am using uart5 (ttyS5).
> 
>> Are you using not-yet-mainline patches to 8250 driver (like for gpio modem control)?
> 
> No, I use vanilla 4.6-rc3 (and 4.5 behaviour is the same).
> 
>>
>>
>>>>> When test application a.out run twice (test.c source code attached here) the following happens:
>>>>>
>>>>> # ./a.out # ./a.out
>>>>> (hung here, may be interrupted with Ctrl-C)
>>>>>
>>>>> Trace from echo t > /proc/sysrq-trigger is the following:
>>>>>
>>>>> апр 17 12:29:23 nohostname kernel: a.out           S c0c3544c     0   922    882 0x00000000
>>>>> апр 17 12:29:23 nohostname kernel: [<c0c3544c>] (__schedule) from [<c0c3597c>] (schedule+0x5c/0xd0)
>>>>> апр 17 12:29:23 nohostname kernel: [<c0c3597c>] (schedule) from [<c0794820>] (tty_port_block_til_ready+0x11c/0x2a0)
>>>>> апр 17 12:29:23 nohostname kernel: [<c0794820>] (tty_port_block_til_ready) from [<c07abfb0>] (uart_open+0x11c/0x158)
>>>> ...
>>>>>
>>>>> I don't think that open() user-space call should be blocked under such circumstances, so I think that this is rather an issue within the kernel.
>>>>> I've found that the effect dissapears when termios calls are dropped from test.c
>>
>> Assuming you are _not_ using gpio modem control, this shouldn't happen
>> because the driver should report TIOCM_CAR always on if DCD is not
>> pinned out for exactly this reason.
> 
> As Jiri said, CLOCAL prevents open() from blocking. However, my uart
> doesn't have any modem control pins in device tree only rts/cts.

Yes CLOCAL prevents waiting for carrier, but regardless, if the
h/w does not have DCD then the driver should always return TIOCM_CAR.

I tested this last night on a beaglebone, and the MSR read always returns
not asserted for DCD, so the 8250_omap driver should be fixing this
to TIOCM_CAR.

Unfortunately, the situation is not that simple because uart1 can have
modem control signals (including DCD) so the lack of pins will need
to be described by DT.

Regards,
Peter Hurley


>>
>> IOW, could be driver bug.
>>
>> Regards,
>> Peter Hurley
>>
>>
>>>> I suppose the memset in the program cleared CLOCAL and the subsequent
>>>> open waits for carrier...
>>>>
>>>
>>> The same program doesn't hang when fdti_sio based /dev/ttyUSB is being used.
>>>
>>>> thanks,
>>>> --
>>>> js
>>>> suse labs
>>>>
>>>
>>>
>>>
>>
> 
> 
> 

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



[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux