13 Feb, 2007

1 commit


12 Oct, 2006

1 commit

  • 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
    Signed-off-by: Jens Axboe

    Vasily Tarasov
     

01 Oct, 2006

3 commits

  • As people often look for the copyright in files to see who to mail,
    update the link to a neutral one.

    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • Signed-off-by: Oleg Nesterov
    Signed-off-by: Jens Axboe

    Oleg Nesterov
     
  • cfq_exit_lock is protecting two things now:

    - The per-ioc rbtree of cfq_io_contexts

    - The per-cfqd linked list of cfq_io_contexts

    The per-cfqd linked list can be protected by the queue lock, as it is (by
    definition) per cfqd as the queue lock is.

    The per-ioc rbtree is mainly used and updated by the process itself only.
    The only outside use is the io priority changing. If we move the
    priority changing to not browsing the rbtree, we can remove any locking
    from the rbtree updates and lookup completely. Let the sys_ioprio syscall
    just mark processes as having the iopriority changed and lazily update
    the private cfq io contexts the next time io is queued, and we can
    remove this locking as well.

    Signed-off-by: Jens Axboe

    Jens Axboe
     

21 Aug, 2006

3 commits


01 Jul, 2006

1 commit

  • Add a new security hook definition for the sys_ioprio_get operation. At
    present, the SELinux hook function implementation for this hook is
    identical to the getscheduler implementation but a separate hook is
    introduced to allow this check to be specialized in the future if
    necessary.

    This patch also creates a helper function get_task_ioprio which handles the
    access check in addition to retrieving the ioprio value for the task.

    Signed-off-by: David Quigley
    Acked-by: Stephen Smalley
    Signed-off-by: James Morris
    Cc: Jens Axboe
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Quigley
     

23 Jun, 2006

1 commit

  • Implement an LSM hook for setting a task's IO priority, similar to the hook
    for setting a tasks's nice value.

    A previous version of this LSM hook was included in an older version of
    multiadm by Jan Engelhardt, although I don't recall it being submitted
    upstream.

    Also included is the corresponding SELinux hook, which re-uses the setsched
    permission in the proccess class.

    Signed-off-by: James Morris
    Acked-by: Stephen Smalley
    Cc: Jan Engelhardt
    Cc: Chris Wright
    Cc: Jens Axboe
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    James Morris
     

12 Jan, 2006

1 commit


08 Nov, 2005

1 commit


21 Aug, 2005

1 commit


08 Jul, 2005

1 commit

  • - Make ioprio syscalls return long, like set/getpriority syscalls.
    - Move function prototypes into syscalls.h so we can pick them up in the
    32/64bit compat code.

    Signed-off-by: Anton Blanchard
    Acked-by: Jens Axboe
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Anton Blanchard
     

28 Jun, 2005

1 commit

  • This updates the CFQ io scheduler to the new time sliced design (cfq
    v3). It provides full process fairness, while giving excellent
    aggregate system throughput even for many competing processes. It
    supports io priorities, either inherited from the cpu nice value or set
    directly with the ioprio_get/set syscalls. The latter closely mimic
    set/getpriority.

    This import is based on my latest from -mm.

    Signed-off-by: Jens Axboe
    Signed-off-by: Linus Torvalds

    Jens Axboe