Messages in this thread |  | | From | Jeff Moyer <> | Subject | Re: [PATCH 2/8] cfq-iosched: fix async oom queue handling | Date | Mon, 08 Jun 2015 14:42:41 -0400 |
| |
Tejun Heo <tj@kernel.org> writes:
> Async cfqq's (cfq_queue's) are shared across cfq_data. When > cfq_get_queue() obtains a new queue from cfq_find_alloc_queue(), it > stashes the pointer in cfq_data and reuses it from then on; however, > the function doesn't consider that cfq_find_alloc_queue() may return > the oom_cfqq under memory pressure and installs the returned queue > unconditionally. > > If the oom_cfqq is installed as an async cfqq, cfq_set_request() will > continue calling cfq_get_queue() hoping to replace it with a proper > queue; however, cfq_get_queue() will keep returning the cached queue > for the slot - the oom_cfqq. > > Fix it by skipping caching if the queue is the oom one.
Good catch.
Reviewed-by: Jeff Moyer <jmoyer@redhat.com>
|  |