Re: [PATCH] make cancel_rearming_delayed_work() reliable

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Oleg Nesterov
Date: Friday, May 11, 2007 - 7:53 am

On 05/11, Tejun Heo wrote:

Yes I hate this barrier too. That is why changelog explicitly mentions it.

With some trivial code modifications we can move set_wq_data() from insert_work()
to __queue_work(), then

	void set_wq_data(work, cwq)
	{
		struct cpu_workqueue_struct *old = get_wq_data(work);

		if (likely(cwq == old))
			return;

		if (old)
			spin_lock(old->lock);

		atomic_long_set(&work->data, ...);

		if (old)
			spin_lock(old->lock);
	}

I can't say I like this very much, though. I'd prefer use smp_mb__before_spinlock().
Probably we can do something else.

But first I'd like to kill cwq_should_stop(). (Gautham, Srivatsa, you were
right, but I was blind, deaf, and stupid).

Oleg.

-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH] make cancel_rearming_delayed_work() reliable, Oleg Nesterov, (Thu May 3, 1:42 pm)
Re: [PATCH] make cancel_rearming_delayed_work() reliable, Oleg Nesterov, (Fri May 4, 10:09 am)
[PATCH] make-cancel_rearming_delayed_work-reliable-fix, Oleg Nesterov, (Sat May 5, 2:32 pm)
Re: [PATCH] make-cancel_rearming_delayed_work-reliable-fix, Jarek Poplawski, (Mon May 7, 3:31 am)
Re: [PATCH] make-cancel_rearming_delayed_work-reliable-fix, Anton Vorontsov, (Mon May 7, 4:55 am)
Re: [PATCH] make cancel_rearming_delayed_work() reliable, Jarek Poplawski, (Tue May 8, 12:15 am)
Re: [PATCH] make-cancel_rearming_delayed_work-reliable-fix, Jarek Poplawski, (Tue May 8, 2:16 am)
Re: [PATCH] make-cancel_rearming_delayed_work-reliable-fix, Jarek Poplawski, (Tue May 8, 6:07 am)
Re: [PATCH] make cancel_rearming_delayed_work() reliable, Jarek Poplawski, (Tue May 8, 6:56 am)
Re: [PATCH] make cancel_rearming_delayed_work() reliable, Jarek Poplawski, (Tue May 8, 7:12 am)
Re: [PATCH] make cancel_rearming_delayed_work() reliable, Jarek Poplawski, (Tue May 8, 7:32 am)
Re: [PATCH] make cancel_rearming_delayed_work() reliable, Oleg Nesterov, (Fri May 11, 6:47 am)
Re: [PATCH] make cancel_rearming_delayed_work() reliable, Oleg Nesterov, (Fri May 11, 7:53 am)
Re: [PATCH] make cancel_rearming_delayed_work() reliable, Oleg Nesterov, (Sun May 13, 12:27 pm)
Re: [PATCH] make cancel_rearming_delayed_work() reliable, Oleg Nesterov, (Sun May 13, 2:25 pm)
Re: [PATCH] make cancel_rearming_delayed_work() reliable, Oleg Nesterov, (Mon May 14, 12:44 pm)
Re: [PATCH] make cancel_rearming_delayed_work() reliable, Jarek Poplawski, (Tue May 15, 6:09 am)
Re: [PATCH] make cancel_rearming_delayed_work() reliable, Oleg Nesterov, (Tue May 15, 3:00 pm)
Re: [PATCH] make cancel_rearming_delayed_work() reliable, Oleg Nesterov, (Tue May 15, 3:08 pm)
Re: [PATCH] make cancel_rearming_delayed_work() reliable, Jarek Poplawski, (Tue May 15, 10:21 pm)
Re: [PATCH] make cancel_rearming_delayed_work() reliable, Oleg Nesterov, (Wed May 16, 11:52 am)
Re: [PATCH] make cancel_rearming_delayed_work() reliable, Jarek Poplawski, (Fri May 18, 12:35 am)
Re: [PATCH] make cancel_rearming_delayed_work() reliable, Jarek Poplawski, (Fri May 18, 1:13 am)
Re: [PATCH] make cancel_rearming_delayed_work() reliable, Jarek Poplawski, (Mon May 21, 12:00 am)
Re: [PATCH] make cancel_rearming_delayed_work() reliable, Jarek Poplawski, (Mon May 21, 3:10 am)