From: Daniel Phillips <phillips@bonn-fries.net>
To: yodaiken@fsmlabs.com
Cc: yodaiken@fsmlabs.com, Alan Cox <alan@lxorguk.ukuu.org.uk>,
Jeff Dike <jdike@karaya.com>, Benjamin LaHaise <bcrl@redhat.com>,
"H. Peter Anvin" <hpa@zytor.com>,
linux-kernel@vger.kernel.org
Subject: Re: [RFC] Arch option to touch newly allocated pages
Date: Thu, 7 Mar 2002 19:07:23 +0100 [thread overview]
Message-ID: <E16j2IV-0003B6-00@starship.berlin> (raw)
In-Reply-To: <E16iyGp-0002IL-00@the-village.bc.nu> <E16izrK-00038v-00@starship.berlin> <20020307095046.A29364@hq.fsmlabs.com>
In-Reply-To: <20020307095046.A29364@hq.fsmlabs.com>
On March 7, 2002 05:50 pm, yodaiken@fsmlabs.com wrote:
> On Thu, Mar 07, 2002 at 04:31:10PM +0100, Daniel Phillips wrote:
> > > > > Why is that a fix? And how can it work?
> > > >
> > > > Since there is always at least one freeable page in the system (or we're oom) then
> > > > we just have to find it and we know we can forcibly unmap it. We do need to know
> > > > the total of pinned pages, I should have said locked/dirty/pinned.
> > >
> > > What if we are oom?
> >
> > This problem didn't get any worse, we still have to deal with it. We can wait, so
> > we deal with it in the standard way (i.e., we puke, have to do something about that.)
>
> So it can return NULL?
Returning null here won't help if the caller doesn't have a fallback, or if the fallback
is unacceptable, such as losing a filesystem transaction.
> > > What if we are on our way to deadlock?
> >
> > huh??
>
> Process A needs 4 pages, Process B needs 4 pages, each grabs 3.
This is no new deadlock. Supposing each has successfully grabbed 3, what
good does it do if the process is too clueless to release the pages it's
already grabbed, because the 4th page alloc fails? (The first 3 may have
been alloced in a completely different part of the program.) And if the
process does know how to do this, it should tell the VM that *then* the VM
should feel free to fail it.
> One easy, traditional unix algorithm for dealing with this is
> for(i=0; i < 4; i++)if !(p[i]=kmallloc(...))
> free all that we have so far
Just or in GFP_ok_to_fail there.
> > > What if the caller of kmalloc will make less good use of the page
> > > than the current owner of the page?
> >
> > That's life, that's what lrus are for.
>
> Really? I thought LRUs were to approximate working sets. Obviously
> if a program is kmallocing its working set is changing but that
> does not tell us anything about whether it is a correct decision to
> rip a page from the working set of another process.
We're getting way far from the original question here. Our lru has no
concept of working set, it's completely global. That's not so great and
it's another problem to tackle. Sometime.
> > You won't find one if you don't look for it.
>
> I'm too dumb to come up with a solution here, but you are the one
> changing the interface, so surely you have a couple of "less borked"
> solutions in mind - right?
Yes. Well, I'm not alone here, ping Marcelo on that if you like. This is
known borkness that's been deferred while more pressing borkness is dealt
with.
--
Daniel
next prev parent reply other threads:[~2002-03-07 18:13 UTC|newest]
Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-03-03 21:12 [RFC] Arch option to touch newly allocated pages Jeff Dike
2002-03-03 22:01 ` Alan Cox
2002-03-03 23:27 ` Jeff Dike
2002-03-03 23:48 ` Alan Cox
2002-03-04 3:16 ` Jeff Dike
2002-03-04 3:35 ` Alan Cox
2002-03-04 5:04 ` Jeff Dike
2002-03-04 15:09 ` Alan Cox
2002-03-04 17:42 ` Jeff Dike
2002-03-04 18:29 ` Alan Cox
2002-03-04 18:36 ` Jeff Dike
2002-03-04 18:49 ` Alan Cox
2002-03-04 20:46 ` Jeff Dike
2002-03-04 22:49 ` Alan Cox
2002-03-04 17:46 ` H. Peter Anvin
2002-03-04 18:34 ` Jeff Dike
2002-03-04 18:33 ` H. Peter Anvin
2002-03-04 20:36 ` Jeff Dike
2002-03-04 22:51 ` Alan Cox
2002-03-05 4:15 ` Jeff Dike
2002-03-05 4:28 ` Benjamin LaHaise
2002-03-05 4:40 ` Jeff Dike
2002-03-05 5:34 ` H. Peter Anvin
2002-03-05 14:43 ` Jeff Dike
2002-03-05 16:37 ` H. Peter Anvin
2002-03-05 16:56 ` Wayne Whitney
2002-03-05 18:12 ` Jeff Dike
2002-03-05 18:30 ` Benjamin LaHaise
2002-03-06 14:59 ` Daniel Phillips
2002-03-06 15:24 ` Benjamin LaHaise
2002-03-06 15:24 ` Daniel Phillips
2002-03-06 16:36 ` Benjamin LaHaise
2002-03-06 23:14 ` Daniel Phillips
2002-03-06 23:20 ` Benjamin LaHaise
2002-03-06 23:26 ` Daniel Phillips
2002-03-06 23:33 ` H. Peter Anvin
2002-03-07 0:08 ` Daniel Phillips
2002-03-07 1:27 ` Jeff Dike
2002-03-07 1:52 ` Benjamin LaHaise
2002-03-08 19:17 ` Jeff Dike
2002-03-08 21:22 ` Benjamin LaHaise
2002-03-07 13:49 ` Alan Cox
2002-03-07 13:36 ` Daniel Phillips
2002-03-07 14:04 ` yodaiken
2002-03-07 14:21 ` Daniel Phillips
2002-03-07 14:38 ` yodaiken
2002-03-07 15:31 ` Daniel Phillips
2002-03-07 16:50 ` yodaiken
2002-03-07 18:07 ` Daniel Phillips [this message]
2002-03-07 18:15 ` yodaiken
2002-03-07 19:22 ` Alan Cox
2002-03-07 22:43 ` David Woodhouse
2002-03-07 23:09 ` Alan Cox
2002-03-07 22:57 ` David Woodhouse
2002-03-07 14:43 ` Alan Cox
2002-03-07 15:32 ` Daniel Phillips
2002-03-07 16:19 ` Alan Cox
2002-03-07 17:54 ` Daniel Phillips
2002-03-07 15:34 ` Daniel Phillips
2002-03-07 19:18 ` Andrew Morton
2002-03-07 20:10 ` Rik van Riel
2002-03-07 20:56 ` Andrew Morton
2002-03-07 21:23 ` Rik van Riel
2002-03-07 22:02 ` Andrew Morton
2002-03-07 22:10 ` Rik van Riel
2002-03-07 22:23 ` Andrew Morton
2002-03-07 22:27 ` Rik van Riel
2002-03-07 22:41 ` Andrew Morton
2002-03-07 22:42 ` David Lang
2002-03-06 16:03 ` Jesse Pollard
2002-03-06 17:08 ` Jeff Dike
2002-03-06 17:33 ` Alan Cox
2002-03-07 0:28 ` Jeff Dike
2002-03-07 0:44 ` Alan Cox
2002-03-05 18:46 ` H. Peter Anvin
2002-03-06 1:30 ` Alan Cox
2002-03-06 10:49 ` David Woodhouse
2002-03-06 14:26 ` Jeff Dike
2002-03-06 16:50 ` Alan Cox
2002-03-06 20:25 ` Jeff Dike
2002-03-06 20:54 ` Alan Cox
2002-03-06 21:27 ` Malcolm Beattie
2002-03-06 23:26 ` Jeff Dike
2002-03-06 21:27 ` David Woodhouse
2002-03-06 22:25 ` Joseph Malicki
2002-03-07 0:04 ` Richard Gooch
2002-03-07 0:28 ` Jeff Dike
2002-03-07 0:44 ` Alan Cox
2002-03-06 22:21 ` Pavel Machek
2002-03-07 11:30 ` Dave Jones
2002-03-07 18:21 ` H. Peter Anvin
2002-03-05 14:43 ` Jeff Dike
2002-03-05 16:57 ` H. Peter Anvin
2002-03-05 18:14 ` Jeff Dike
2002-03-05 18:45 ` H. Peter Anvin
2002-03-05 17:30 ` Jan Harkes
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=E16j2IV-0003B6-00@starship.berlin \
--to=phillips@bonn-fries.net \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=bcrl@redhat.com \
--cc=hpa@zytor.com \
--cc=jdike@karaya.com \
--cc=linux-kernel@vger.kernel.org \
--cc=yodaiken@fsmlabs.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.