From: Linus Torvalds <torvalds@linux-foundation.org>
To: Mikael Pettersson <mikpe@it.uu.se>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Kernel Testers List <kernel-testers@vger.kernel.org>,
Alan Cox <alan@linux.intel.com>, Greg KH <gregkh@suse.de>,
Andrew Morton <akpm@linux-foundation.org>,
OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Subject: Re: [Bug #14015] pty regressed again, breaking expect and gcc's testsuite
Date: Fri, 4 Sep 2009 08:11:50 -1000 (HST) [thread overview]
Message-ID: <alpine.LFD.2.00.0909040804450.23850@eeepc.linux-foundation.org> (raw)
In-Reply-To: <alpine.LFD.2.00.0909040753370.17375@eeepc.linux-foundation.org>
On Fri, 4 Sep 2009, Linus Torvalds wrote:
>
> And again - UNTESTED. Maybe this makes the buffering _too_ small (the
> 'memory_used' thing is not really counted in bytes buffered, it's counted
> in how much buffer space we've allocated) and things break even worse and
> pty's don't work at all. But I think it might work.
Actually, scratch that patch.
After writing the above, the voices in my head started clamoring about
this "space allocated" vs "bytes buffered" thing, which I was obviously
aware of, but hadn't thought about as an issue.
And you know what? The thing about "space allocated" vs "bytes buffered"
is that writing _one_ byte (the '\r') can cause a lot more than one byte
to be allocated for a buffer (we do minimum 256-byte buffers).
So let's say that 'space' was initially 20 - plenty big enough to hold two
characters. But if the '\r' just happened to need a new buffer, it would
actually increase 'memory_used' by 256, and now the next time we call
'pty_space()' it doesn't return 19, but 0 - because now memory_used is
larger than the 8192 we allowed.
So I'm starting to suspect that the real bug is that we do that
'pty_space()' in pty_write() call at all. The _callers_ should already
have done the write_room() check, and if somebody doesn't do it, then the
tty buffering will eventually do a hard limit at the 65kB allocation mark.
So doing it in pty_write() is (a) unnecessary and (b) actively wrong,
because it means that in the situation above, pty_write() won't be allowin
the slop that it _needs_ to allow due to the buffering not being exact
"this many bytes buffered up", but "this many bytes allocated for
buffering".
So rather than the previous patch, try this one instead.
Linus
---
drivers/char/pty.c | 6 ------
1 files changed, 0 insertions(+), 6 deletions(-)
diff --git a/drivers/char/pty.c b/drivers/char/pty.c
index d083c73..45a7ca2 100644
--- a/drivers/char/pty.c
+++ b/drivers/char/pty.c
@@ -118,12 +118,6 @@ static int pty_write(struct tty_struct *tty, const unsigned char *buf,
if (tty->stopped)
return 0;
- /* This isn't locked but our 8K is quite sloppy so no
- big deal */
-
- c = pty_space(to);
- if (c > count)
- c = count;
if (c > 0) {
/* Stuff the data into the input queue of the other end */
c = tty_insert_flip_string(to, buf, c);
next prev parent reply other threads:[~2009-09-04 18:12 UTC|newest]
Thread overview: 120+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-25 20:00 2.6.31-rc7-git2: Reported regressions from 2.6.30 Rafael J. Wysocki
2009-08-25 20:00 ` [Bug #13645] NULL pointer dereference at (null) (level2_spare_pgt) Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13819] system freeze when switching to console Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13733] 2.6.31-rc2: irq 16: nobody cared Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13809] oprofile: possible circular locking dependency detected Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13740] X server crashes with 2.6.31-rc2 when options are changed Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13836] suspend script fails, related to stdout? Rafael J. Wysocki
2009-08-26 11:10 ` Tomas M.
2009-08-26 20:56 ` Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13848] iwlwifi (4965) regression since 2.6.30 Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13869] Radeon framebuffer (w/o KMS) corruption at boot Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13935] 2.6.31-rcX breaks Apple MightyMouse (Bluetooth version) Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13906] Huawei E169 GPRS connection causes Ooops Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13943] WARNING: at net/mac80211/mlme.c:2292 with ath5k Rafael J. Wysocki
2009-08-26 6:39 ` Fabio Comolli
2009-08-26 21:00 ` Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13941] x86 Geode issue Rafael J. Wysocki
2009-08-25 23:37 ` Martin-Éric Racine
2009-08-26 20:59 ` Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13940] iwlagn and sky2 stopped working, ACPI-related Rafael J. Wysocki
2009-08-26 0:00 ` Ricardo Jorge da Fonseca Marques Ferreira
2009-08-26 20:58 ` Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13942] Troubles with AoE and uninitialized object Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13960] rtl8187 not connect to wifi Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13950] Oops when USB Serial disconnected while in use Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13947] Libertas: Association request to the driver failed Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13948] ath5k broken after suspend-to-ram Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13987] Received NMI interrupt at resume Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #14011] Kernel paging request failed in kmem_cache_alloc Rafael J. Wysocki
2009-08-26 6:17 ` Pekka Enberg
2009-08-26 14:01 ` Matthias Dahl
2009-08-26 14:59 ` Pekka Enberg
2009-08-26 15:08 ` Eric Paris
2009-08-26 21:03 ` Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #14012] latest git fried my x86_64 imac Rafael J. Wysocki
2009-08-26 0:28 ` Justin P. Mattock
2009-08-26 21:06 ` Rafael J. Wysocki
2009-08-26 21:58 ` Justin P. Mattock
2009-08-27 18:01 ` Justin P. Mattock
2009-08-27 19:45 ` Rafael J. Wysocki
2009-08-27 20:47 ` Randy Dunlap
2009-08-27 21:01 ` Justin P. Mattock
2009-08-25 20:34 ` [Bug #14013] hd don't show up Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #14015] pty regressed again, breaking expect and gcc's testsuite Rafael J. Wysocki
2009-08-27 19:54 ` Mikael Pettersson
2009-08-28 18:56 ` Rafael J. Wysocki
2009-08-28 20:23 ` Mikael Pettersson
2009-08-29 14:16 ` Mikael Pettersson
2009-08-29 19:01 ` Rafael J. Wysocki
2009-08-31 13:22 ` Mikael Pettersson
2009-09-01 1:34 ` Mikael Pettersson
2009-09-01 18:42 ` Rafael J. Wysocki
2009-09-03 1:23 ` Linus Torvalds
2009-09-03 11:29 ` OGAWA Hirofumi
2009-09-03 21:00 ` Mikael Pettersson
2009-09-04 0:01 ` Linus Torvalds
2009-09-04 1:41 ` OGAWA Hirofumi
2009-09-04 1:52 ` Linus Torvalds
2009-09-04 15:28 ` Alan Cox
2009-09-04 17:33 ` Linus Torvalds
2009-09-03 20:27 ` Mikael Pettersson
2009-09-04 13:23 ` Mikael Pettersson
2009-09-04 17:30 ` Linus Torvalds
2009-09-04 17:53 ` Linus Torvalds
2009-09-04 17:55 ` Linus Torvalds
2009-09-04 18:11 ` Linus Torvalds [this message]
2009-09-04 19:11 ` Linus Torvalds
2009-09-04 19:19 ` Linus Torvalds
2009-09-05 10:46 ` Mikael Pettersson
2009-09-05 20:29 ` Linus Torvalds
2009-09-05 22:42 ` Mikael Pettersson
2009-09-05 17:00 ` OGAWA Hirofumi
2009-09-05 18:06 ` Linus Torvalds
2009-09-05 18:56 ` OGAWA Hirofumi
2009-09-05 21:56 ` Alan Cox
2009-09-05 22:46 ` OGAWA Hirofumi
2009-09-04 21:12 ` Alan Cox
2009-08-25 20:34 ` [Bug #14016] mm/ipw2200 regression Rafael J. Wysocki
2009-08-26 6:09 ` Pekka Enberg
2009-08-26 8:27 ` Johannes Weiner
2009-08-26 9:37 ` Mel Gorman
2009-08-26 14:44 ` Andrew Morton
2009-08-27 9:11 ` Zhu Yi
2009-08-27 9:45 ` Mel Gorman
2009-08-28 3:42 ` ipw2200: firmware DMA loading rework Zhu Yi
2009-08-30 12:37 ` Bartlomiej Zolnierkiewicz
2009-09-02 17:48 ` Bartlomiej Zolnierkiewicz
2009-09-02 18:02 ` Luis R. Rodriguez
2009-09-02 18:26 ` Bartlomiej Zolnierkiewicz
2009-09-19 13:25 ` Bartlomiej Zolnierkiewicz
2009-09-21 8:58 ` Mel Gorman
2009-09-21 9:59 ` Bartlomiej Zolnierkiewicz
2009-09-21 10:08 ` Mel Gorman
2009-09-21 10:46 ` Bartlomiej Zolnierkiewicz
2009-09-21 10:56 ` Pekka Enberg
2009-09-21 13:12 ` Bartlomiej Zolnierkiewicz
2009-09-21 13:37 ` Mel Gorman
2009-09-21 11:02 ` Mel Gorman
2009-09-03 12:49 ` Mel Gorman
2009-09-05 14:28 ` Theodore Tso
2009-09-08 11:00 ` Mel Gorman
2009-09-08 20:39 ` Simon Kitching
2009-08-26 9:51 ` [Bug #14016] mm/ipw2200 regression Johannes Weiner
2009-08-25 20:34 ` [Bug #14018] kernel freezes, inotify problem Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #14017] _end symbol missing from Symbol.map Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #14031] dvb_usb_af9015: Oops on hotplugging Rafael J. Wysocki
2009-08-25 23:57 ` Stefan Lippers-Hollmann
2009-08-26 0:03 ` Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #14057] Strange network timeouts w/ e100 Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #14030] Kernel NULL pointer dereference at 0000000000000008, pty-related Rafael J. Wysocki
2009-08-26 0:16 ` Linus Torvalds
2009-08-26 21:11 ` Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #14058] Oops in fsnotify Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #14060] oops: sysfs_remove_link and i915 Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #14062] Failure to boot as xen guest Rafael J. Wysocki
2009-09-01 19:47 ` Jeremy Fitzhardinge
2009-08-25 20:34 ` [Bug #14061] Crash due to buggy flat_phys_pkg_id Rafael J. Wysocki
-- strict thread matches above, loose matches on Subject: below --
2009-08-19 20:20 2.6.31-rc6-git5: Reported regressions from 2.6.30 Rafael J. Wysocki
2009-08-19 20:27 ` [Bug #14015] pty regressed again, breaking expect and gcc's testsuite Rafael J. Wysocki
2009-08-24 10:08 ` Mikael Pettersson
2009-08-24 18:32 ` Rafael J. Wysocki
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=alpine.LFD.2.00.0909040804450.23850@eeepc.linux-foundation.org \
--to=torvalds@linux-foundation.org \
--cc=akpm@linux-foundation.org \
--cc=alan@linux.intel.com \
--cc=gregkh@suse.de \
--cc=hirofumi@mail.parknet.co.jp \
--cc=kernel-testers@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mikpe@it.uu.se \
--cc=rjw@sisk.pl \
/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
Powered by JetHome