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@kroah.com> Sent: Wednesday, September 21, 2022 8:16 PM To: Chan Kim <ckim@etri.re.kr> Cc: kernelnewbies@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