lkml.org 
[lkml]   [2018]   [Nov]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 2/2] fs/epoll: deal with wait_queue only once
On Wed, 14 Nov 2018, Andrew Morton wrote:

>Why was this moved to before the ep_reset_busy_poll_napi_id() call?
>That movement placed the code ahead of the block comment which serves
>to explain its function.

Yikes, that was a brain fart.

>
>
>This? Which also fixes that comment and reflows it to use 80 cols.

Looks good, thanks.

>
>--- a/fs/eventpoll.c~fs-epoll-deal-with-wait_queue-only-once-fix
>+++ a/fs/eventpoll.c
>@@ -1787,15 +1787,6 @@ fetch_events:
> if (eavail)
> goto send_events;
>
>- if (!waiter) {
>- waiter = true;
>- init_waitqueue_entry(&wait, current);
>-
>- spin_lock_irq(&ep->wq.lock);
>- __add_wait_queue_exclusive(&ep->wq, &wait);
>- spin_unlock_irq(&ep->wq.lock);
>- }
>-
> /*
> * Busy poll timed out. Drop NAPI ID for now, we can add
> * it back in when we have moved a socket with a valid NAPI
>@@ -1804,10 +1795,18 @@ fetch_events:
> ep_reset_busy_poll_napi_id(ep);
>
> /*
>- * We don't have any available event to return to the caller.
>- * We need to sleep here, and we will be wake up by
>- * ep_poll_callback() when events will become available.
>+ * We don't have any available event to return to the caller. We need
>+ * to sleep here, and we will be woken by ep_poll_callback() when events
>+ * become available.
> */
>+ if (!waiter) {
>+ waiter = true;
>+ init_waitqueue_entry(&wait, current);
>+
>+ spin_lock_irq(&ep->wq.lock);
>+ __add_wait_queue_exclusive(&ep->wq, &wait);
>+ spin_unlock_irq(&ep->wq.lock);
>+ }
>
> for (;;) {
> /*
>_
>

\
 
 \ /
  Last update: 2018-11-15 02:04    [W:0.042 / U:1.648 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site