public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Oleg Nesterov <oleg@redhat.com>
To: Vasiliy Kulikov <segoon@openwall.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Balbir Singh <bsingharora@gmail.com>,
	Jerome Marchand <jmarchan@redhat.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/2] taskstats: add_del_listener() should ignore !valid listener's
Date: Wed, 20 Jul 2011 23:01:46 +0200	[thread overview]
Message-ID: <20110720210146.GA6273@redhat.com> (raw)
In-Reply-To: <20110720194603.GA3385@albatros>

On 07/20, Vasiliy Kulikov wrote:
>
> On Wed, Jul 20, 2011 at 21:00 +0200, Oleg Nesterov wrote:
> > When send_cpu_listeners() finds the orphaned listener it marks
> > it as !valid and drops listeners->sem. Before it takes this sem
> > for wrinting, s->pid can be reused and add_del_listener() can
> > wrongly try to re-use this entry.
> >
> > Change add_del_listener() to check ->valid = T.
>
> I think the current logic is wrong.

me too ;)

still I think this patch makes sense anyway.

> If s was claimed is invalid, it
> then points to a dead task,

I forgot everything I knew about netlink. But, it seems, netlink_bind()
can use nl_pid != current->pid. But even if this is not true,

> it is unknown when it died.  As the same pid
> can be reused by a new process BEFORE add_del_listener(), it is unknown
> whether ->pid points to the actual owner task.

And? Why should we try to reuse the !valid entries? struct listener
is just the "addr" we should send the message to. If someone calls
add_listener() it should works regardless of dead entries with the
same ->pid.

> Rather than optimizing the wrong algorithm it's better to change the
> processes keeping way.

Not sure I understand... This is not optimizing, the patch tries to
fix the unlikely (in fact mostly theoretical) and minor problem. Still
this is the problem, no?

Thanks,

Oleg.


  reply	other threads:[~2011-07-20 21:04 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-20 18:59 [PATCH 0/2] 26c4caea "don't allow duplicate entries in listener mode" fix Oleg Nesterov
2011-07-20 19:00 ` [PATCH 1/2] taskstats: add_del_listener() shouldn't use the wrong node Oleg Nesterov
2011-07-20 19:50   ` Vasiliy Kulikov
2011-07-21 12:28   ` Jerome Marchand
2011-07-20 19:00 ` [PATCH 2/2] taskstats: add_del_listener() should ignore !valid listener's Oleg Nesterov
2011-07-20 19:46   ` Vasiliy Kulikov
2011-07-20 21:01     ` Oleg Nesterov [this message]
2011-07-21 12:50       ` Vasiliy Kulikov
2011-07-21 14:29         ` Oleg Nesterov
2011-07-21 15:49   ` Balbir Singh

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=20110720210146.GA6273@redhat.com \
    --to=oleg@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=bsingharora@gmail.com \
    --cc=jmarchan@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=segoon@openwall.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox