9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: "Russ Cox" <rsc@swtch.com>
To: 9fans@9fans.net
Subject: Re: [9fans] odd out-of-memory behavior
Date: Fri, 25 Jul 2008 15:39:27 -0400	[thread overview]
Message-ID: <20080725193713.036781E8C1C@holo.morphisms.net> (raw)
In-Reply-To: <cbcbfad8e6f2b28cfa1687706520823b@coraid.com>

> how would that happen?  upas/fs -p doesn't fork.
> (it's being run from imap4d.)

maybe more than one process isn't involved.
that would make your job easier.  ☺

> i originally thought someone else might be sitting
> on the shared segments, but i couldn't explain how
> that might be happening.  i also thought the purpose
> of this loop was to hunt down relatives sharing memory
> with killbig's vic:
>
> 	for(p = procalloc.arena; p < ep; p++) {
> 		if(p->state == Dead || p->kp)
> 			continue;
> 		if(p != kp && p->seg[BSEG] && p->seg[BSEG] == kp->seg[BSEG])
> 			p->procctl = Proc_exitbig;
> 	}
>
> so much for the "careful" thought.  what am i missing?

that loop identifies and marks them, but it doesn't kill them.
they won't die until the next time they attempt to cross
the kernel-user boundary.

i also wonder if perhaps there is some way that you
can manage to end up sleeping for the pager in fixfault
while holding the lock of the big segment.  i don't see
one immediately, but that doesn't mean it's not there.

if you can get acid running, 100 seconds should be plenty
of time to get stack traces that would solve this.

russ



  reply	other threads:[~2008-07-25 19:39 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-25 16:44 erik quanstrom
2008-07-25 18:09 ` Russ Cox
2008-07-25 18:25   ` erik quanstrom
2008-07-25 19:39     ` Russ Cox [this message]
2008-07-27  1:20   ` erik quanstrom
2008-07-27  2:20     ` Russ Cox
2008-07-27  2:21     ` Russ Cox

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=20080725193713.036781E8C1C@holo.morphisms.net \
    --to=rsc@swtch.com \
    --cc=9fans@9fans.net \
    /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;
as well as URLs for NNTP newsgroup(s).