how to debug... program hangs while downing for write a rwsem

Chan Kim ckim at etri.re.kr
Thu Sep 22 09:17:34 EDT 2022


Hi, Greg K-H,

I found the scheduler isn't working correct. 
When I run an application instead of the shell, and when I call sleep()
inside the application, it hangs.
So I have to investigate about the clock settings first(in dts, etc).
(The serial port is 8250 compatible uart that we've been using).
Thank you.

Chan Kim

>-----Original Message-----
>From: Greg KH <greg at kroah.com>
>Sent: Wednesday, September 21, 2022 8:16 PM
>To: Chan Kim <ckim at etri.re.kr>
>Cc: kernelnewbies at kernelnewbies.org
>Subject: Re: how to debug... program hangs while downing for write a rwsem
>
>On Wed, Sep 21, 2022 at 08:02:50PM +0900, Chan Kim wrote:
>> Hello kernel experts and users,
>>
>> I'm trying to boot linux-5.10.0-rc5 on our arm64 board (using
>> neoverse-v1 core).
>
>5.10-rc5 is very very very old and obsolete, and not even a real release.
>Why are you using that specific kernel version?
>
>At the very least, use a released and supported 5.10.y tree, but even
>better, use the latest 5.19.y release.
>
>> After the shell comes up, when I press enter key at the prompt, it
>> gives me another prompt.
>> But when I press enter key again, it stops responding.
>> After inspecting where the program hangs, I found it hangs in function
>> tty_set_termios while downing the rwsem.
>> Please see below where I marked "<===== this line "". (in file
>> drivers/tty/tty_ioctl.c)
>>
>> int tty_set_termios(struct tty_struct *tty, struct ktermios
>> *new_termios) {
>>     struct ktermios old_termios;
>>     struct tty_ldisc *ld;
>>
>>     WARN_ON(tty->driver->type == TTY_DRIVER_TYPE_PTY &&
>>         tty->driver->subtype == PTY_TYPE_MASTER);
>>     /*
>>      *  Perform the actual termios internal changes under lock.
>>      */
>>
>>
>>     /* FIXME: we need to decide on some locking/ordering semantics
>>        for the set_termios notification eventually */
>>     down_write(&tty->termios_rwsem);                        <====== this
>> line
>
>What serial driver are you using that is causing this problem?
>
>thanks,
>
>greg k-h







More information about the Kernelnewbies mailing list