mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Linus Torvalds <torvalds@linux-foundation.org>
To: "Török Edwin" <edwintorok@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>, Roland McGrath <roland@redhat.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Elias Oltmanns <eo@nebensachen.de>,
	Arjan van de Ven <arjan@infradead.org>,
	Oleg Nesterov <oleg@tv-sign.ru>
Subject: Re: [PATCH] x86_64: fix delayed signals
Date: Sat, 12 Jul 2008 13:47:36 -0700 (PDT)	[thread overview]
Message-ID: <alpine.LFD.1.10.0807121339430.2875@woody.linux-foundation.org> (raw)
In-Reply-To: <48791393.1020107@gmail.com>



On Sat, 12 Jul 2008, Török Edwin wrote:
> 
> A bit off-topic, but something I noticed during the tests:
> In my original test I have rm-ed the files right after launching dd in
> the background, yet it still continued to write to the disk.
> I can understand that if the file is opened O_RDWR, you might seek back
> and read what you wrote, so Linux needs to actually do the write,
> but why does it insist on writing to the disk, on a file opened with
> O_WRONLY, after the file itself got unlinked?

Linux itself doesn't insist on writing to disk. In fact, at least with 
traditional UNIX filesystems (eg minix, ext2) the deleted writes would be 
undone.

But some filesystems can't just invalidate dirty buffers (some won't do it 
for meta-data, others won't do it for _any_ data). So again, this 
behaviour depends on the filesystem. And sadly, the more "advanced" 
filesystem, the worse it usually behaves here.


> I have my filesystems mounted as noatime already.
> But yes, I am using different filesystems, the x86-64 box has reiserfs,
> and the x86-32 box has xfs.
> 
> > You can try to limit the amount of dirty data in flight by tweaking 
> > /proc/sys/vm/dirty*ratio
> 
> I have these in my /etc/rc.local:
> echo 5 > /proc/sys/vm/dirty_background_ratio
> echo 10 >/proc/sys/vm/dirty_ratio

That matches the modern defaults. You can try playing with them if you 
want to. And yes, it's worth testing nr_requests too.

> > Ok, that is definitel not related to signals at all. You're simply stuck 
> > waiting for IO - or perhaps some fundamental filesystem semaphore which is 
> > held while some IO needs to be flushed.
> 
> AFAICT reiserfs still uses the BKL, could that explain why one I/O
> delays another?

The BKL should be ok in this respect - it gets automatically dropped when 
doing synchronous waiting (this is somethign that will possibly go away as 
we try to convince people to get rid of the BKL, but it certainly hasn't 
happened yet).

So it actually gets worse with other locks - semaphores or mutexes - that 
stay held over IO. And reiserfs has a journal lock (and a "commit" lock), 
but I don't know how they are held and whether this could be part of the 
issue.

> > This is also why your trace on just 'kill_pgrp' and 'detach_pid' is not 
> > interesting. It's _normal_ to have a delay between them. It can happen 
> > because the process blocks (or catches) signals, but it will also happen 
> > if some system call waits for disk.
> 
> Is there a way to trace what happens between those 2 functions?

You could try to trace not just those functions, but scheduling events 
too. Or yes, do something special-caed.

Trying to figure out latencies in the block trace is likely also going to 
be interesting (although you won't see any signal issues there - but any 
long read latencies will automatically tend to imply latency issues not 
just for signals, but for pretty much any operations).

		Linus

  reply	other threads:[~2008-07-12 20:48 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-10 21:50 Roland McGrath
2008-07-10 22:06 ` Linus Torvalds
2008-07-10 22:42   ` Roland McGrath
2008-07-10 22:51     ` Linus Torvalds
2008-07-10 23:02       ` Linus Torvalds
2008-07-11  0:52       ` Roland McGrath
2008-07-11  1:18         ` Linus Torvalds
2008-07-11  1:27           ` Roland McGrath
2008-07-11  1:48         ` Linus Torvalds
2008-07-11  2:02           ` Linus Torvalds
2008-07-11  2:22             ` Linus Torvalds
2008-07-11  2:26               ` Linus Torvalds
2008-07-12 12:24             ` Andi Kleen
2008-07-11  5:46 ` Ingo Molnar
2008-07-11 11:13   ` Török Edwin
2008-07-11 12:24   ` Elias Oltmanns
2008-07-11 17:58   ` Linus Torvalds
2008-07-11 18:07     ` Roland McGrath
2008-07-11 18:16       ` Linus Torvalds
2008-07-11 18:17         ` Linus Torvalds
2008-07-11 18:10     ` Linus Torvalds
2008-07-11 18:31       ` Linus Torvalds
2008-07-11 22:53         ` Arjan van de Ven
2008-07-12 10:33           ` Török Edwin
2008-07-11 20:37       ` Linus Torvalds
2008-07-11 23:22         ` Linus Torvalds
2008-07-12 10:32           ` Török Edwin
2008-07-12 13:42             ` Török Edwin
2008-07-12 14:55               ` Arjan van de Ven
2008-07-12 18:00                 ` Linus Torvalds
2008-07-12 18:15                   ` Arjan van de Ven
2008-07-12 18:28                     ` Linus Torvalds
2008-07-12 17:29             ` Linus Torvalds
2008-07-12 20:26               ` Török Edwin
2008-07-12 20:47                 ` Linus Torvalds [this message]
2008-07-12 20:57                 ` Denys Vlasenko
2008-07-13 10:46                   ` Oleg Nesterov
2008-07-13 12:34                     ` Denys Vlasenko
2008-07-13 18:36                     ` Linus Torvalds
2008-07-13 18:45                       ` Peter T. Breuer
2008-07-12 12:27     ` Andi Kleen
2008-07-12 17:41       ` Linus Torvalds
2008-07-13  9:38         ` Andi Kleen
2008-07-13 17:32           ` Linus Torvalds
2008-07-13 18:59             ` Andi Kleen
2008-07-13 19:08               ` Linus Torvalds

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.1.10.0807121339430.2875@woody.linux-foundation.org \
    --to=torvalds@linux-foundation.org \
    --cc=akpm@linux-foundation.org \
    --cc=arjan@infradead.org \
    --cc=edwintorok@gmail.com \
    --cc=eo@nebensachen.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=oleg@tv-sign.ru \
    --cc=roland@redhat.com \
    --cc=tglx@linutronix.de \
    /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®