Re: [RFC PATCH] freezer: revert 27920651fe "PM / Freezer: Make fake_signal_wake_up() wake TASK_KILLABLE tasks too"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/01, Tejun Heo wrote:
>
> Yeah yeah, Trond already pointed it out.  I forgot about the
> sigpending special case in schedule(), which I think is rather odd,

I disagree with "rather odd" ;)

We have a lot of examples of

	current->state = TASK_INTERRUPTIBLE;
	...
	if (signal_pending())
		break;
	schedule();

Without that special case in schedule() the code above becomes racy.
Just consider __wait_event_interruptible().

> Any better ideas?

Well. As a simple (probably temporary) fix, I'd suggest

	#define wait_event_freezekillable(wq, condition)
	{
		freezer_do_not_count();
		__retval = wait_event_killable(condition);
		freezer_count();
		__retval;
	}

Do you think it can work?

Oleg.

--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux