Messages in this thread | | | Subject | Re: Crash in elevator_dispatch_fn() (e.g. deadline_dispatch()) when changing elevators. | From | Frank Mayhar <> | Date | Thu, 23 Jan 2014 10:38:33 -0800 |
| |
On Wed, 2014-01-22 at 07:46 -0800, Frank Mayhar wrote: > On Tue, 2014-01-21 at 07:58 -0800, Frank Mayhar wrote: > > Replacing? Or adding to? Is BYPASS always set when DYING is set? (My > > guess is not but I haven't done an exhaustive analysis.) So the > > relevant code snippet in __elv_next_request() would be: > > if (unlikely(blk_queue_dying(q)) || > > unlikely(blk_queue_bypass(q)) || > > !q->elevator->type->ops.elevator_dispatch_fn(q, 0)) > > return NULL; > > FYI, I've made this change and tested it. I can't say for certain that > it fixes the crash (since it's one of those races that's difficult to > reproduce), but it does seem to pass all the tests I've thrown at it so > far.
Um, does anyone care about this? Tejun? Jens? Anyone?
This is a real crash; it would be nice if someone would weigh in. -- Frank Mayhar 310-460-4042
| |