All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Phillips <phillips@istop.com>
To: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: Andrew Morton <akpm@osdl.org>,
	lmb@suse.de, arjanv@redhat.com, sdake@mvista.com,
	teigland@redhat.com, linux-kernel@vger.kernel.org
Subject: Re: [ANNOUNCE] Minneapolis Cluster Summit, July 29-30
Date: Mon, 26 Jul 2004 23:31:43 -0400	[thread overview]
Message-ID: <200407262331.44176.phillips@istop.com> (raw)
In-Reply-To: <40F34978.60709@yahoo.com.au>

On Monday 12 July 2004 22:31, Nick Piggin wrote:
> Daniel Phillips wrote:
> > On Monday 12 July 2004 16:54, Andrew Morton wrote:
> >>Nick Piggin <nickpiggin@yahoo.com.au> wrote:
> >>>I don't see why it would be a problem to implement a "this task
> >>>facilitates page reclaim" flag for userspace tasks that would take
> >>>care of this as well as the kernel does.
> >>
> >>Yes, that has been done before, and it works - userspace "block drivers"
> >>which permanently mark themselves as PF_MEMALLOC to avoid the obvious
> >>deadlocks.
> >>
> >>Note that you can achieve a similar thing in current 2.6 by acquiring
> >>realtime scheduling policy, but that's an artifact of some brainwave
> >> which a VM hacker happened to have and isn't a thing which should be
> >> relied upon.
> >
> > Do you have a pointer to the brainwave?
>
> Search for rt_task in mm/page_alloc.c

Ah, interesting idea: realtime tasks get to dip into the PF_MEMALLOC reserve, 
until it gets down to some threshold, then they have to give up and wait like 
any other unwashed nobody of a process.  _But_ if there's a user space 
process sitting in the writeout path and some other realtime process eats the 
entire realtime reserve, everything can still grind to a halt.

So it's interesting for realtime, but does not solve the userspace PF_MEMALLOC 
inversion.

> >>A privileged syscall which allows a task to mark itself as one which
> >>cleans memory would make sense.
> >
> > For now we can do it with an ioctl, and we pretty much have to do it for
> > pvmove.  But that's when user space drives the kernel by syscalls; there
> > is also the nasty (and common) case where the kernel needs userspace to
> > do something for it while it's in PF_MEMALLOC.  I'm playing with ideas
> > there, but nothing I'm proud of yet.  For now I see the in-kernel
> > approach as the conservative one, for anything that could possibly find
> > itself on the VM writeout path.
>
> You'd obviously want to make the PF_MEMALLOC task as tight as possible,
> and running mlocked:

Not just tight, but bounded.  And tight too, of course.

> I don't particularly see why such a task would be any safer in-kernel.

The PF_MEMALLOC flag is inherited down a call chain, not across a pipe or 
similar IPC to user space.

> PF_MEMALLOC tasks won't enter page reclaim at all. The only way they
> will reach the writeout path is if you are write(2)ing stuff (you may
> hit synch writeout).

That's the problem.

Regards,

Daniel

  reply	other threads:[~2004-07-27  3:29 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-07-05  6:09 [ANNOUNCE] Minneapolis Cluster Summit, July 29-30 Daniel Phillips
2004-07-05 15:09 ` Christoph Hellwig
2004-07-05 18:42   ` Daniel Phillips
2004-07-05 19:08     ` Chris Friesen
2004-07-05 20:29       ` Daniel Phillips
2004-07-07 22:55         ` Steven Dake
2004-07-08  1:30           ` Daniel Phillips
2004-07-05 19:12     ` Lars Marowsky-Bree
2004-07-05 20:27       ` Daniel Phillips
2004-07-06  7:34         ` Lars Marowsky-Bree
2004-07-06 21:34           ` Daniel Phillips
2004-07-07 18:16             ` Lars Marowsky-Bree
2004-07-08  1:14               ` Daniel Phillips
2004-07-08  9:10                 ` Lars Marowsky-Bree
2004-07-08 10:53                   ` David Teigland
2004-07-08 14:14                     ` Chris Friesen
2004-07-08 16:06                       ` David Teigland
2004-07-08 18:22                     ` Daniel Phillips
2004-07-08 19:41                       ` Steven Dake
2004-07-10  4:58                         ` David Teigland
2004-07-10  4:58                         ` Daniel Phillips
2004-07-10 17:59                           ` Steven Dake
2004-07-10 20:57                             ` Daniel Phillips
2004-07-10 23:24                               ` Steven Dake
2004-07-11 19:44                                 ` Daniel Phillips
2004-07-11 21:06                                   ` Lars Marowsky-Bree
2004-07-12  6:58                                     ` Arjan van de Ven
2004-07-12 10:05                                       ` Lars Marowsky-Bree
2004-07-12 10:11                                         ` Arjan van de Ven
2004-07-12 10:21                                           ` Lars Marowsky-Bree
2004-07-12 10:28                                             ` Arjan van de Ven
2004-07-12 11:50                                               ` Lars Marowsky-Bree
2004-07-12 12:01                                                 ` Arjan van de Ven
2004-07-12 13:13                                                   ` Lars Marowsky-Bree
2004-07-12 13:40                                                     ` Nick Piggin
2004-07-12 20:54                                                       ` Andrew Morton
2004-07-13  2:19                                                         ` Daniel Phillips
2004-07-13  2:31                                                           ` Nick Piggin
2004-07-27  3:31                                                             ` Daniel Phillips [this message]
2004-07-27  4:07                                                               ` Nick Piggin
2004-07-27  5:57                                                                 ` Daniel Phillips
2004-07-14 12:19                                                         ` Pavel Machek
2004-07-15  2:19                                                           ` Nick Piggin
2004-07-15 12:03                                                             ` Marcelo Tosatti
2004-07-14  8:32                                             ` Pavel Machek
2004-07-12  4:08                                   ` Steven Dake
2004-07-12  4:23                                     ` Daniel Phillips
2004-07-12 18:21                                       ` Steven Dake
2004-07-12 19:54                                         ` Daniel Phillips
2004-07-13 20:06                                         ` Pavel Machek
2004-07-12 10:14                     ` Lars Marowsky-Bree
     [not found] <fa.io9lp90.1c02foo@ifi.uio.no>
     [not found] ` <fa.go9f063.1i72joh@ifi.uio.no>
2004-07-06  6:39   ` Aneesh Kumar K.V
  -- strict thread matches above, loose matches on Subject: below --
2004-07-10 14:58 James Bottomley
2004-07-10 16:04 ` David Teigland
2004-07-10 16:26   ` James Bottomley

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=200407262331.44176.phillips@istop.com \
    --to=phillips@istop.com \
    --cc=akpm@osdl.org \
    --cc=arjanv@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lmb@suse.de \
    --cc=nickpiggin@yahoo.com.au \
    --cc=sdake@mvista.com \
    --cc=teigland@redhat.com \
    /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.