Oleg Nesterov
c2d816443e
sched/wait: Introduce prepare_to_wait_event()
...
Add the new helper, prepare_to_wait_event() which should only be used
by ___wait_event().
prepare_to_wait_event() returns -ERESTARTSYS if signal_pending_state()
is true, otherwise it does prepare_to_wait/exclusive. This allows to
uninline the signal-pending checks in wait_event*() macros.
Also, it can initialize wait->private/func. We do not care if they were
already initialized, the values are the same. This also shaves a couple
of insns from the inlined code.
This obviously makes prepare_*() path a little bit slower, but we are
likely going to sleep anyway, so I think it makes sense to shrink .text:
text data bss dec hex filename
===================================================
before: 5126092 2959248 10117120 18202460 115bf5c vmlinux
after: 5124618 2955152 10117120 18196890 115a99a vmlinux
on my build.
Signed-off-by: Oleg Nesterov <oleg@redhat.com >
Signed-off-by: Peter Zijlstra <peterz@infradead.org >
Link: http://lkml.kernel.org/r/20131007161824.GA29757@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2013-10-16 14:22:18 +02:00
..
2013-09-25 14:07:49 +02:00
2013-04-30 17:04:10 -07:00
2013-10-04 09:58:53 +02:00
2013-09-12 15:38:03 -07:00
2013-09-13 15:09:52 +02:00
2013-09-30 19:40:56 +02:00
2013-09-03 11:38:36 -07:00
2013-10-16 14:22:16 +02:00
2013-09-18 11:24:49 -05:00
2013-09-09 14:42:15 -07:00
2013-04-22 07:09:06 -07:00
2013-05-04 14:57:58 -04:00
2013-03-12 13:59:14 -07:00
2013-06-12 16:29:46 -07:00
2013-01-11 14:54:55 -08:00
2013-09-24 17:00:26 -07:00
2013-07-09 10:33:19 -07:00
2013-07-09 10:33:19 -07:00
2013-07-09 10:33:19 -07:00
2013-10-09 14:47:45 +02:00
2013-09-09 11:19:09 -07:00
2013-08-08 20:11:27 -04:00
2013-09-07 19:54:57 -04:00
2013-05-01 07:21:43 -07:00
2013-05-01 17:29:18 -04:00
2013-10-09 12:36:13 +02:00
2013-10-16 14:22:16 +02:00
2013-09-03 18:25:03 -07:00
2013-01-27 19:23:31 +01:00
2013-07-09 10:33:26 -07:00
2013-09-11 15:58:25 -07:00
2013-10-09 14:47:57 +02:00
2013-07-30 14:05:06 +02:00
2013-02-23 18:50:11 -08:00
2013-06-25 23:11:19 +02:00
2013-08-30 23:44:11 -07:00
2013-07-14 19:36:59 -04:00
2013-08-02 11:02:42 +02:00
2013-02-05 00:48:46 +01:00
2013-08-09 07:53:54 -07:00
2013-04-15 15:17:26 +09:30
2013-05-28 08:50:00 +02:00
2013-09-11 15:59:10 -07:00
2013-09-30 14:31:02 -07:00
2013-09-11 15:58:52 -07:00
2013-09-12 15:38:03 -07:00
2013-04-30 17:04:02 -07:00
2013-07-12 13:51:19 +02:00
2013-05-12 14:16:21 +02:00
2013-09-13 15:09:52 +02:00
2013-03-15 15:09:43 +10:30
2013-09-11 15:58:21 -07:00
2013-09-05 08:50:26 -07:00
2013-09-04 08:18:19 -07:00
2013-09-07 14:35:32 -07:00
2013-08-29 14:37:59 +10:00
2013-09-11 15:59:30 -07:00
2013-09-28 12:35:52 -07:00
2013-09-07 14:35:32 -07:00
2013-09-30 14:31:03 -07:00
2013-07-03 16:54:42 +02:00
2013-04-18 12:51:19 +02:00
2013-07-14 19:36:59 -04:00
2013-09-11 15:59:01 -07:00
2013-06-18 11:32:10 -05:00
2013-08-18 17:40:03 -07:00
2013-09-09 14:42:15 -07:00
2013-07-29 17:07:49 -04:00
2013-07-29 17:07:49 -04:00
2013-08-20 11:38:45 -07:00
2013-08-31 14:44:02 -07:00
2013-05-05 00:16:35 -04:00
2013-09-25 13:53:08 +02:00
2013-08-31 14:44:02 -07:00
2013-09-24 17:00:26 -07:00
2013-07-14 19:36:59 -04:00
2013-09-12 15:38:02 -07:00
2013-07-03 16:08:06 -07:00
2013-02-07 20:51:08 +01:00
2013-04-10 14:48:37 +02:00
2013-05-28 09:23:52 +02:00
2013-03-23 15:53:52 -07:00
2013-03-26 11:07:19 +11:00
2013-04-30 17:04:08 -07:00
2013-09-11 15:58:18 -07:00
2013-09-11 15:58:25 -07:00
2013-07-14 19:36:59 -04:00
2013-10-09 12:36:13 +02:00
2013-09-11 15:58:21 -07:00
2013-02-07 15:19:36 -08:00
2013-10-16 14:22:16 +02:00
2013-05-09 13:46:38 -04:00
2013-08-30 23:44:11 -07:00
2013-06-26 18:01:46 +09:00
2013-10-09 14:48:21 +02:00
2013-09-11 15:58:27 -07:00
2013-04-29 18:28:42 -07:00
2013-06-19 12:58:42 +02:00
2013-02-16 23:17:25 +01:00
2013-09-25 14:07:32 +02:00
2013-04-29 13:55:38 -07:00
2013-01-27 19:23:31 +01:00
2013-08-30 23:44:11 -07:00
2013-09-11 15:58:25 -07:00
2013-09-07 14:35:32 -07:00
2013-02-27 19:10:24 -08:00
2013-08-26 19:17:03 -07:00
2013-02-27 19:10:22 -08:00
2013-08-30 23:44:11 -07:00
2013-10-16 14:22:18 +02:00
2013-09-24 17:00:25 -07:00
2013-06-19 12:58:42 +02:00
2013-09-06 09:36:28 -07:00