Messages in this thread |  | | Date | Wed, 11 Jun 2003 10:48:23 +1000 | From | Nick Piggin <> | Subject | Re: [PATCH] io stalls |
| |
Andrea Arcangeli wrote:
>On Mon, Jun 09, 2003 at 05:39:23PM -0400, Chris Mason wrote: > >>+ if (!waitqueue_active(&q->wait_for_requests[rw])) >>+ clear_queue_full(q, rw); >> > >you've an smp race above, the smp safe implementation is this: > > if (!waitqueue_active(&q->wait_for_requests[rw])) { > clear_queue_full(q, rw); > mb(); > if (unlikely(waitqueue_active(&q->wait_for_requests[rw]))) > wake_up(&q->wait_for_requests[rw]); > } > >I'm also unsure what the "waited" logic does, it doesn't seem necessary. >
When a task is woken up, it is quite likely that the queue is still marked full.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |