From: Johannes Weiner <hannes@saeurebad.de>
To: Oleg Nesterov <oleg@tv-sign.ru>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Roland McGrath <roland@redhat.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] coredump: kill mm->core_done
Date: Sun, 20 Jul 2008 01:31:49 +0200 [thread overview]
Message-ID: <87d4l9jvru.fsf@saeurebad.de> (raw)
In-Reply-To: <20080715140715.GA25824@tv-sign.ru> (Oleg Nesterov's message of "Tue, 15 Jul 2008 18:07:15 +0400")
Hi,
Oleg Nesterov <oleg@tv-sign.ru> writes:
> Now that we have core_state->dumper list we can use it to wake up the
> sub-threads waiting for the coredump completion.
>
> This uglifies the code and .text grows by 47 bytes, but otoh mm_struct
> lessens by sizeof(struct completion). Also, with this change we can
> decouple exit_mm() from the coredumping code.
>
> Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
>
> include/linux/mm_types.h | 4 +---
> kernel/exit.c | 8 +++++++-
> fs/exec.c | 25 ++++++++++++++++++++++---
> 3 files changed, 30 insertions(+), 7 deletions(-)
>
> --- 26-rc2/include/linux/mm_types.h~5_KILL_CORE_DONE 2008-07-13 18:28:36.000000000 +0400
> +++ 26-rc2/include/linux/mm_types.h 2008-07-15 17:06:58.000000000 +0400
> @@ -229,9 +229,7 @@ struct mm_struct {
>
> unsigned long flags; /* Must use atomic bitops to access the bits */
>
> - /* coredumping support */
> - struct core_state *core_state;
> - struct completion core_done;
> + struct core_state *core_state; /* coredumping support */
>
> /* aio bits */
> rwlock_t ioctx_list_lock; /* aio lock */
> --- 26-rc2/kernel/exit.c~5_KILL_CORE_DONE 2008-07-13 19:58:19.000000000 +0400
> +++ 26-rc2/kernel/exit.c 2008-07-15 17:06:58.000000000 +0400
> @@ -680,7 +680,13 @@ static void exit_mm(struct task_struct *
> if (atomic_dec_and_test(&core_state->nr_threads))
> complete(&core_state->startup);
>
> - wait_for_completion(&mm->core_done);
> + for (;;) {
> + set_task_state(tsk, TASK_UNINTERRUPTIBLE);
> + if (!self.task) /* see coredump_finish() */
kernel/exit.c: In function `exit_mm':
kernel/exit.c:686: error: `self' undeclared (first use in this function)
kernel/exit.c:686: error: (Each undeclared identifier is reported only once
kernel/exit.c:686: error: for each function it appears in.)
make[1]: *** [kernel/exit.o] Error 1
Hannes
next prev parent reply other threads:[~2008-07-19 23:32 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-15 14:07 [PATCH] coredump: kill mm->core_done Oleg Nesterov
2008-07-15 16:21 ` Oleg Nesterov
2008-07-15 22:44 ` Andrew Morton
2008-07-19 23:31 ` Johannes Weiner [this message]
2008-07-20 8:47 ` Oleg Nesterov
2008-07-20 11:35 ` Johannes Weiner
2008-07-20 12:37 ` Oleg Nesterov
2008-07-20 13:19 ` Johannes Weiner
2008-07-20 3:20 ` Roland McGrath
2008-07-20 8:51 ` Oleg Nesterov
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=87d4l9jvru.fsf@saeurebad.de \
--to=hannes@saeurebad.de \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=oleg@tv-sign.ru \
--cc=roland@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.