netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jarek Poplawski <jarkao2@o2.pl>
To: Oleg Nesterov <oleg@tv-sign.ru>
Cc: "Maciej W\. Rozycki" <macro@linux-mips.org>,
	Andy Fleming <afleming@freescale.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Jeff Garzik <jgarzik@pobox.com>,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] flush_work_sync vs. flush_scheduled_work Re: [PATCH] PHYLIB: IRQ event workqueue handling fixes
Date: Tue, 23 Oct 2007 08:59:51 +0200	[thread overview]
Message-ID: <20071023065951.GA1847@ff.dom.local> (raw)
In-Reply-To: <20071022180259.GA967@tv-sign.ru>

On Mon, Oct 22, 2007 at 10:02:59PM +0400, Oleg Nesterov wrote:
> On 10/22, Jarek Poplawski wrote:
...
> > OK, I know I'm dumber and dumber everyday,
> 
> You are not alone. I have the same feeling about myself!

Feeling is not the same, only true knowledge counts!

> 
> > these all flushes are
> > rtnl lockup vulnerable wrt. other work functions, but cancel_work_sync
> > looks perfectly fine
> 
> Yes,
> 
> > Then, if by any chance I'm right, something like flush_work_sync
> > (or changed flush_scheduled_work, if there is no problem with such
> > a change of implementation) could be safely (if it's called without
> > locks used by flushed work only) done cancel_work_sync() way, by
> > running a work function after try_to_grab_pending() returns 1
> 
> If this work doesn't rearm itself - yes. (otherwise, the same ->func
> can run twice _at the same time_)
> 
> But again, in this case wait_on_work() after try_to_grab_pending() == 1
> doesn't block, so we can just do
> 
> 	if (cancel_work_sync(w))
> 		w->func();

Of course, I should have written it much shorter by saying
flush_scheduled_work could be done internally just like you suggested!

My point is to make this all safer and simpler, so we don't have to
remember each time about these differences wrt. locking. Then checking
of such patches could be much easier. Unless this current behavior
of flush_scheduled_work has any real advantages, worth of this
potential unsafety. (Btw. is there any reason to use this with
rearming works, anyway?)

Thanks,
Jarek P.

  reply	other threads:[~2007-10-23  6:56 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-19 14:38 [PATCH] PHYLIB: IRQ event workqueue handling fixes Maciej W. Rozycki
2007-09-20 23:53 ` Andrew Morton
2007-09-21 12:51   ` Maciej W. Rozycki
2007-09-21 18:42     ` Andrew Morton
2007-10-15 12:53 ` Jarek Poplawski
2007-10-15 17:03   ` Maciej W. Rozycki
2007-10-16  6:21     ` Jarek Poplawski
2007-10-16 17:19       ` Maciej W. Rozycki
2007-10-17  8:58         ` Jarek Poplawski
2007-10-17  9:08           ` Benjamin Herrenschmidt
2007-10-17  9:09           ` Jarek Poplawski
2007-10-18  6:31           ` Jarek Poplawski
2007-10-18  7:05             ` [PATCH] flush_work_sync vs. flush_scheduled_work " Jarek Poplawski
2007-10-18 15:48               ` Oleg Nesterov
2007-10-18 15:58                 ` Maciej W. Rozycki
2007-10-19  7:50                 ` Jarek Poplawski
2007-10-19  8:01                   ` Jarek Poplawski
2007-10-22  6:11                   ` Jarek Poplawski
2007-10-22 18:02                     ` Oleg Nesterov
2007-10-23  6:59                       ` Jarek Poplawski [this message]
2007-10-23  9:21                       ` Jarek Poplawski
2007-10-19  8:00                 ` Johannes Berg
2007-10-18 11:37             ` Maciej W. Rozycki
2007-10-18 11:30           ` Maciej W. Rozycki
2007-10-18 14:37             ` Jarek Poplawski
2007-10-18 15:31               ` Maciej W. Rozycki
2007-10-19  8:17             ` Jarek Poplawski
2007-10-19 12:57               ` Maciej W. Rozycki
2007-10-19 11:38             ` Maciej W. Rozycki
2007-10-19 14:39               ` Jarek Poplawski
2007-10-19 17:58                 ` Maciej W. Rozycki
2007-10-19 21:46                 ` Benjamin Herrenschmidt

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=20071023065951.GA1847@ff.dom.local \
    --to=jarkao2@o2.pl \
    --cc=afleming@freescale.com \
    --cc=akpm@linux-foundation.org \
    --cc=jgarzik@pobox.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=macro@linux-mips.org \
    --cc=netdev@vger.kernel.org \
    --cc=oleg@tv-sign.ru \
    /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).