Re: [PATCH UPDATED 1/3] vhost: replace vhost_workqueue with per-vhost kthread
From: Tejun Heo <tj@kernel.org>
Date: 2010-07-28 07:49:19
Also in:
kvm, lkml
From: Tejun Heo <tj@kernel.org>
Date: 2010-07-28 07:49:19
Also in:
kvm, lkml
On 07/27/2010 09:19 PM, Michael S. Tsirkin wrote:
quoted
Thinking a bit more about it, it kind of sucks that queueing to another worker from worker->func() breaks flush. Maybe the right thing to do there is using atomic_t for done_seq?I don't believe it will help: we might have: worker1 runs work work requeues itself queued index = 1 worker1 reads queued index = 1 worker2 runs work work requeues itself queued index = 2 worker2 runs work worker2 reads queued index = 2 worker2 writes done index = 2 worker1 writes done index = 1 As you see, done index got moved back.
Yeah, I think the flushing logic should be moved to the worker. Are you interested in doing it w/ your change? Thanks. -- tejun