Messages in this thread | | | Subject | Re: [PATCH v2 memstick: support for legacy sony memsticks | From | Maxim Levitsky <> | Date | Tue, 25 Sep 2012 21:34:39 +0200 |
| |
On Tue, 2012-09-25 at 11:02 -0700, Tejun Heo wrote: > Hello, > > > * Swithced to using a workqueue. > > Unfortunelly, I still see that workqueue items are executed in parallel > > I suspect that this happens if one work item sleeps. In this case I > > don't want other work items to run too. I fixed this with a mutex, and anyway > > it nice to have it to guaranteee this. > > You can use alloc_ordered_workqueue("namefmt", WQ_MEM_RECLAIM). No > mutex needed for inter-work exclusion. But this just adds the WQ_UNBOUND. Dunno, without lock I had several crashes, that for high level of confidence caused by by parallel execution of work items. Once I added this mutex, I couldnt reproduce these.
I had the __blk_end_request fail with NULL msb->req. I can't see how that can happen if work queue isn't executed in parallel. (and then the I didn't even had by mistake the code that sets it to NULL in msb_stop, so I really fail to see how that could happen due internal bug in my code. > > Thanks. >
-- Best regards, Maxim Levitsky
| |