From: Robert Swan <swan.r.l@gmail.com>
To: linux-kernel@vger.kernel.org
Subject: [bisected] pty performance problem
Date: Sun, 22 Nov 2009 09:23:19 +1100 [thread overview]
Message-ID: <20091121222319.GA3905@swanrl.gmail.com> (raw)
I posted this to the kernel-newbies list, but have graduated to the
adults forum:
! Two C programs are having a query-response conversation through a
! pseudo terminal:
!
! A (client) -- forever { send query; read response }
! B (server) -- forever { read query; send response }
!
! Neither has any I/O apart from the pty conversation, so I'd expect to
! see CPU usage at 100%. When I ran it, the CPU was pretty well idle.
! After a fair bit of fiddling, it turned out that both sides were
! taking about 8ms for their read() calls. At that point it seemed
! pretty clear that this was a delay in the kernel, not the code.
!
[snip]
2.6.31-rc2-00205-gb4b21ca good
2.6.31-rc2-00206-gd945cb9 bad
and still bad with the latest: 2.6.32-rc8-00011-ga8a8a66
the git log says:
! commit d945cb9cce20ac7143c2de8d88b187f62db99bdc
! Author: Alan Cox <alan@linux.intel.com>
! Date: Tue Jul 7 16:39:41 2009 +0100
!
! pty: Rework the pty layer to use the normal buffering logic
!
! This fixes the ppp problems and various other issues with call locking
! caused by one side of a pty called in one locking context trying to match
! another with differing rules on the other side. We also get a big slack
! space to work with that means we can bury the flow control deadlock case
! for any conceivable real world situation.
!
! Signed-off-by: Alan Cox <alan@linux.intel.com>
! Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
I can provide reasonably stripped down code which demonstrates the
problem. It has been reproduced by one other person, though his delay
was about 2ms.
Have fun,
Rob.
next reply other threads:[~2009-11-21 22:23 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-21 22:23 Robert Swan [this message]
2009-11-21 23:23 ` [bisected] pty performance problem Alan Cox
2009-11-22 0:27 ` Robert Swan
2009-11-22 12:29 ` Alan Cox
2009-11-22 12:41 ` Mike Galbraith
2009-11-22 21:37 ` Robert Swan
2009-11-22 6:39 ` Ingo Molnar
2009-11-22 7:15 ` Arjan van de Ven
2009-11-22 21:56 ` Robert Swan
2009-11-22 12:23 ` Alan Cox
2009-11-22 12:42 ` Ingo Molnar
2009-11-23 5:00 ` Mike Galbraith
2009-11-23 10:28 ` Alan Cox
2009-11-23 11:31 ` Alan Cox
2009-11-23 11:48 ` Ingo Molnar
2009-11-23 11:59 ` Alan Cox
2009-11-23 12:04 ` Ingo Molnar
2009-11-23 13:34 ` Alan Cox
2009-11-23 17:48 ` Ingo Molnar
2011-07-09 6:29 ` Robert Swan
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=20091121222319.GA3905@swanrl.gmail.com \
--to=swan.r.l@gmail.com \
--cc=linux-kernel@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.