Vasily Tarasov d58cdfb89c [PATCH] block layer: ioprio_best function fix
Currently ioprio_best function first checks wethere aioprio or bioprio equals
IOPRIO_CLASS_NONE (ioprio_valid() macros does that) and if it is so it returns
bioprio/aioprio appropriately. Thus the next four lines, that set aclass/bclass
to IOPRIO_CLASS_BE, if aclass/bclass == IOPRIO_CLASS_NONE, are never executed.

The second problem: if aioprio from class IOPRIO_CLASS_NONE and bioprio from
class IOPRIO_CLASS_IDLE are passed to ioprio_best function, it will return
IOPRIO_CLASS_IDLE. It means that during __make_request we can merge two
requests and set the priority of merged request to IDLE, while one of
the initial requests originates from a process with NONE (default) priority.
So we can get a situation when a process with default ioprio will experience
IO starvation, while there is no process from real-time class in the system.

Just removing ioprio_valid check should correct situation.

Signed-off-by: Vasily Tarasov <vtaras@openvz.org>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2006-10-12 15:09:51 +02:00
..
2006-10-11 11:14:23 -07:00
2006-10-10 16:15:33 -07:00
2006-10-03 22:36:44 +02:00
2006-10-03 23:28:36 +02:00
2006-10-09 14:19:08 -07:00
2006-10-11 11:14:21 -07:00
2006-10-11 11:14:21 -07:00
2006-10-11 11:14:19 -07:00
2006-10-11 11:17:06 -07:00
2006-10-10 16:15:34 -07:00
2006-10-11 11:14:23 -07:00
2006-10-02 09:55:27 -05:00
2006-10-11 11:14:23 -07:00
2006-10-03 23:01:26 +02:00
2006-10-11 11:14:23 -07:00
2006-10-11 11:14:23 -07:00
2006-10-05 16:18:55 -07:00
2006-10-10 16:15:34 -07:00
2006-10-03 23:37:55 +02:00
2006-01-11 18:42:13 -08:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2006-10-04 06:51:26 -06:00
2006-10-11 11:14:25 -07:00
2006-01-08 20:12:40 -08:00
2006-10-11 11:14:21 -07:00
2006-10-02 07:57:15 -07:00
2006-04-11 13:53:33 +02:00
2006-10-10 15:37:23 -07:00
2006-10-01 00:39:33 -07:00
2006-06-26 09:58:17 -07:00
2005-11-07 18:18:11 -08:00
2006-10-01 00:39:19 -07:00
2005-04-16 15:20:36 -07:00
2006-03-23 07:38:11 -08:00
2006-10-01 00:39:29 -07:00
2006-03-23 07:38:12 -08:00
2006-10-01 00:39:19 -07:00
2005-04-16 15:20:36 -07:00
2006-10-09 14:20:38 -07:00