fbpx
Wikipedia

Completely fair queueing

Completely Fair Queuing (CFQ) is an I/O scheduler for the Linux kernel which was written in 2003 by Jens Axboe.[1]

Description edit

CFQ places synchronous requests submitted by processes into a number of per-process queues and then allocates timeslices for each of the queues to access the disk. The length of the time slice and the number of requests a queue is allowed to submit depends on the I/O priority of the given process. Asynchronous requests for all processes are batched together in fewer queues, one per priority. While CFQ does not do explicit anticipatory I/O scheduling, it achieves the same effect of having good aggregate throughput for the system as a whole, by allowing a process queue to idle at the end of synchronous I/O thereby "anticipating" further close I/O from that process. It can be considered a natural extension of granting I/O time slices to a process.

History edit

Prior to the integration edit

In February 2003 Andrea Arcangeli put forward his idea for a Stochastic Fair Queueing I/O scheduler to Jens Axboe who then implemented it. Jens Axboe made improvements to his first implementation, calling the new version the Completely Fair Queueing scheduler, and produced a patch to apply it to the 2.5.60 development series kernel.

Kernel 2.6.6 (10 May 2004) edit

The CFQ I/O scheduler was first integrated into the mainline kernel as an optional I/O scheduler. It was possible to change the scheduler at boot time with the 'elevator' parameter to kernel.

Kernel 2.6.9 (19 October 2004) edit

Red Hat Enterprise Linux 4 used this I/O scheduler as the default even though it used a kernel based on a 2.6.9.[2]

Kernel 2.6.10 (24 December 2004) edit

The second release of the CFQ scheduler dubbed CFQv2 is included in the 2.6.10, improvements include better responsiveness and the elimination of some starvation issues which were present in the earlier version. The scheduler now is also switchable at run time by modifying the /sys/block/<block_device>/queue/scheduler variable in the sysfs filesystem.

Kernel 2.6.13 (27 June 2005) edit

CFQ scheduler moved to a new time sliced design dubbed CFQv3. Among other things, it implements ioprio_get(2) and ioprio_set(2) which allows user to set per-process I/O priorities, usually using ionice(1) command (although using nice(1) also modifies I/O priorities somewhat)

Kernel 2.6.18 (20 September 2006) edit

CFQ became the default scheduler, replacing the anticipatory scheduler.[3]

Kernel 5.0 (2019-03-03) edit

CFQ has been removed.[4][5] CFQ evolved into Budget Fair Queueing (BFQ).[6][7]

See also edit

References edit

  1. ^ "Source code of the IO scheduler, (contains copyright information in header)". Retrieved 28 December 2017.
  2. ^ D. John Shakshober (June 2005). . Red Hat magazine. Archived from the original on 27 August 2007. Retrieved 20 November 2011.
  3. ^ Jens Axboe (June 2006). "Linux Kernel 2.6.18 - Make CFQ the default IO scheduler". Retrieved 20 March 2016.
  4. ^ Jens Axboe (2018-10-12). "block: remove legacy IO schedulers". Retrieved 2020-10-25.
  5. ^ Linus Torvalds (2018-12-28). "Merge tag 'for-4.21/block-20181221' of git.kernel.dk/linux-block". Retrieved 2020-10-25.
  6. ^ "Budget Fair Queueing I/O Scheduler".
  7. ^ "BFQ I/O Scheduler Queued For Linux 4.12 - Phoronix". www.phoronix.com.

Sources edit

  • (archived from here)
  • Coming in 2.6.10

External links edit

  • Documentation of CFQ from the Linux source code
  • CFQ - Tuning guide from RedHat's knowledge base

completely, fair, queueing, redirects, here, other, uses, disambiguation, this, article, needs, additional, citations, verification, please, help, improve, this, article, adding, citations, reliable, sources, unsourced, material, challenged, removed, find, sou. CFQ redirects here For other uses see CFQ disambiguation This article needs additional citations for verification Please help improve this article by adding citations to reliable sources Unsourced material may be challenged and removed Find sources Completely fair queueing news newspapers books scholar JSTOR February 2013 Learn how and when to remove this message Completely Fair Queuing CFQ is an I O scheduler for the Linux kernel which was written in 2003 by Jens Axboe 1 Contents 1 Description 2 History 2 1 Prior to the integration 2 2 Kernel 2 6 6 10 May 2004 2 3 Kernel 2 6 9 19 October 2004 2 4 Kernel 2 6 10 24 December 2004 2 5 Kernel 2 6 13 27 June 2005 2 6 Kernel 2 6 18 20 September 2006 2 7 Kernel 5 0 2019 03 03 3 See also 4 References 5 Sources 6 External linksDescription editCFQ places synchronous requests submitted by processes into a number of per process queues and then allocates timeslices for each of the queues to access the disk The length of the time slice and the number of requests a queue is allowed to submit depends on the I O priority of the given process Asynchronous requests for all processes are batched together in fewer queues one per priority While CFQ does not do explicit anticipatory I O scheduling it achieves the same effect of having good aggregate throughput for the system as a whole by allowing a process queue to idle at the end of synchronous I O thereby anticipating further close I O from that process It can be considered a natural extension of granting I O time slices to a process History editPrior to the integration edit In February 2003 Andrea Arcangeli put forward his idea for a Stochastic Fair Queueing I O scheduler to Jens Axboe who then implemented it Jens Axboe made improvements to his first implementation calling the new version the Completely Fair Queueing scheduler and produced a patch to apply it to the 2 5 60 development series kernel Kernel 2 6 6 10 May 2004 edit The CFQ I O scheduler was first integrated into the mainline kernel as an optional I O scheduler It was possible to change the scheduler at boot time with the elevator parameter to kernel Kernel 2 6 9 19 October 2004 edit Red Hat Enterprise Linux 4 used this I O scheduler as the default even though it used a kernel based on a 2 6 9 2 Kernel 2 6 10 24 December 2004 edit The second release of the CFQ scheduler dubbed CFQv2 is included in the 2 6 10 improvements include better responsiveness and the elimination of some starvation issues which were present in the earlier version The scheduler now is also switchable at run time by modifying the sys block lt block device gt queue scheduler variable in the sysfs filesystem Kernel 2 6 13 27 June 2005 edit CFQ scheduler moved to a new time sliced design dubbed CFQv3 Among other things it implements ioprio get 2 and ioprio set 2 which allows user to set per process I O priorities usually using ionice 1 command although using nice 1 also modifies I O priorities somewhat Kernel 2 6 18 20 September 2006 edit CFQ became the default scheduler replacing the anticipatory scheduler 3 Kernel 5 0 2019 03 03 edit CFQ has been removed 4 5 CFQ evolved into Budget Fair Queueing BFQ 6 7 See also editNoop scheduler Deadline scheduler Anticipatory schedulingReferences edit Source code of the IO scheduler contains copyright information in header Retrieved 28 December 2017 D John Shakshober June 2005 Choosing an I O Scheduler for Red Hat Enterprise Linux 4 and the 2 6 Kernel Red Hat magazine Archived from the original on 27 August 2007 Retrieved 20 November 2011 Jens Axboe June 2006 Linux Kernel 2 6 18 Make CFQ the default IO scheduler Retrieved 20 March 2016 Jens Axboe 2018 10 12 block remove legacy IO schedulers Retrieved 2020 10 25 Linus Torvalds 2018 12 28 Merge tag for 4 21 block 20181221 of git kernel dk linux block Retrieved 2020 10 25 Budget Fair Queueing I O Scheduler BFQ I O Scheduler Queued For Linux 4 12 Phoronix www phoronix com Sources editShort detail about CFQ archived from here Coming in 2 6 10External links editDocumentation of CFQ from the Linux source code CFQ Tuning guide from RedHat s knowledge base Retrieved from https en wikipedia org w index php title Completely fair queueing amp oldid 1146817829, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.