From: David.Kastrup@t-online.de (David Kastrup)
To: linux-kernel@vger.kernel.org
Subject: Scheduling problem with 2.4?
Date: 17 May 2003 13:22:23 +0200 [thread overview]
Message-ID: <x54r3tddhs.fsf@lola.goethe.zz> (raw)
I have a problem with Emacs which crawls when used as a shell. If I
call M-x shell RET and then do something like
hexdump -v /dev/null|dd count=100k bs=1
then characters appear rather slowly at first, most of them in single
character packets, with an occasional 1024 packet in between. More
of them at the end. The rate of the packets does not exceed 100/sec.
Other operating systems do not exhibit this extreme case of
throttling. Emacs is using select calls AFAICS for dealing with
packets arriving, and it would appear that the delivering process
causes a context switch immediately when writing its single byte to
the pipe or is taken from the run queue while the select call is
pending. Whatever. In the ensuing time slice, Emacs processes the
single arriving byte and then enters the select call again.
Now that the pipe is not allowed to fill up in most cases (most: in
some, increasingly more at the later time, the pipe gets filled
alternately complete and with single bytes) before a context switch
occurs is already unfortunate with regard to the efficiency of
processing. What is quite more of a nuisance is the apparent
throttling to a single byte per clock tick: the CPU is idling most of
the time. It would be unfortunate enough if it were going full blast
at processing 1-byte packets, but most of the time it does nothing
but wait for the next tick.
Now I would want to
a) get sufficient information about what might go wrong inside of
Linux as compared to other operating systems.
b) find a good workaround for not triggering this kind of behavior.
I don't have sufficient kernel experience to debug this one, and it
definitely impacts the speed of operations severely, and in close
cooperation with the operating system. So any pointers would be
welcome.
--
David Kastrup, Kriemhildstr. 15, 44793 Bochum
next reply other threads:[~2003-05-17 11:09 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-05-17 11:22 David Kastrup [this message]
2003-05-17 17:41 ` Andrea Arcangeli
2003-05-17 19:36 ` David Kastrup
2003-05-17 20:30 ` Andrea Arcangeli
2003-05-17 20:44 ` David Kastrup
2003-05-17 21:53 ` Andrea Arcangeli
2003-05-17 22:37 ` David Kastrup
2003-05-17 23:50 ` Andrea Arcangeli
2003-05-18 0:16 ` David Schwartz
2003-05-18 1:06 ` Andrea Arcangeli
2003-05-18 9:41 ` David Kastrup
2003-05-18 8:55 ` Mike Galbraith
2003-05-18 17:46 ` David Schwartz
2003-05-18 23:18 ` Andrea Arcangeli
2003-05-19 2:59 ` David Schwartz
2003-05-18 23:11 ` Andrea Arcangeli
2003-05-19 7:16 ` Mike Galbraith
2003-05-19 4:02 ` Mike Galbraith
2003-05-18 0:24 ` David Kastrup
2003-05-17 21:54 ` Barry K. Nathan
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=x54r3tddhs.fsf@lola.goethe.zz \
--to=david.kastrup@t-online.de \
--cc=dak@gnu.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®