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

Chan Kim ckim at etri.re.kr
Thu Sep 22 09:23:28 EDT 2022


And I am also trying to do the experiment with linux5.15.68.
Somehow linux doesn't start with this new setup and I need some time.
Thank you for the advices.

Chan Kim

>-----Original Message-----
>From: Chan Kim <ckim at etri.re.kr>
>Sent: Thursday, September 22, 2022 10:18 PM
>To: 'Greg KH' <greg at kroah.com>
>Cc: 'kernelnewbies at kernelnewbies.org' <kernelnewbies at kernelnewbies.org>
>Subject: RE: how to debug... program hangs while downing for write a rwsem
>
>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