From: vomlehn@texas.net
To: linux-rt-users@vger.kernel.org
Subject: msleep_interruptible() sleeps *way* too long on PowerPC
Date: Mon, 01 Oct 2012 12:35:52 -0500 [thread overview]
Message-ID: <1349112952.5069d4780f4ae@webmail.texas.net> (raw)
When I run a command from the Busybox shell (ash), I sometimes experience a
very long delay, on a system with the RT patches enabled (fully-preempible),
before the prompt appears. Busybox calls tcdrain() prior to printing the
prompt, which eventually winds up in uart_wait_until_sent(). This function
uses msleep_interruptible() to wait for a millisecond, but doesn't actually
complete for many seconds, even minutes, on an otherwise idle system.
when I change the preemption model to low-latency desktop, the system behaves
as I would expect it to. It's worth mentioning that this is on a PowerPC
processor, which handles timer interrupts through a slightly different path
than other interrupts, but I don't see an issue with this yet.
Another observation which seems pretty vital--if I send a ping packet to one
of the network interfaces, the msleep_interruptible() completes. It is as
though it queued the timer and didn't realize it while timer interrupts were
happening (lost in softIRQ processing?). Then, when the network interrupt
happened, it went through some queue and processed the timeout.
I've verified that the struct timer_list is added and it looks to be in the
right place.
There is an IPI-related PowerPC patch that went into 3.2.30 that sounded a lot
like this, commit 241ee90a69ede9cf9255df1a18036210beeb8adf, but our
configuration doesn't use this and it appears as though this happens when the
task queueing the timer is still on the same processor when it gets the
wakeup. Thus IPIs don't appear to be an issue.
Any thoughts would be appreciated!
--
David VL
next reply other threads:[~2012-10-01 17:59 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-01 17:35 vomlehn [this message]
2012-10-01 23:45 ` msleep_interruptible() sleeps *way* too long on PowerPC Steven Rostedt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1349112952.5069d4780f4ae@webmail.texas.net \
--to=vomlehn@texas.net \
--cc=linux-rt-users@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.