No description
  • C 98.2%
  • Assembly 1%
  • Makefile 0.3%
  • Shell 0.2%
  • Python 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Arianna Avanzini e21b7a0b98 block, bfq: add full hierarchical scheduling and cgroups support
Add complete support for full hierarchical scheduling, with a cgroups
interface. Full hierarchical scheduling is implemented through the
'entity' abstraction: both bfq_queues, i.e., the internal BFQ queues
associated with processes, and groups are represented in general by
entities. Given the bfq_queues associated with the processes belonging
to a given group, the entities representing these queues are sons of
the entity representing the group. At higher levels, if a group, say
G, contains other groups, then the entity representing G is the parent
entity of the entities representing the groups in G.

Hierarchical scheduling is performed as follows: if the timestamps of
a leaf entity (i.e., of a bfq_queue) change, and such a change lets
the entity become the next-to-serve entity for its parent entity, then
the timestamps of the parent entity are recomputed as a function of
the budget of its new next-to-serve leaf entity. If the parent entity
belongs, in its turn, to a group, and its new timestamps let it become
the next-to-serve for its parent entity, then the timestamps of the
latter parent entity are recomputed as well, and so on. When a new
bfq_queue must be set in service, the reverse path is followed: the
next-to-serve highest-level entity is chosen, then its next-to-serve
child entity, and so on, until the next-to-serve leaf entity is
reached, and the bfq_queue that this entity represents is set in
service.

Writeback is accounted for on a per-group basis, i.e., for each group,
the async I/O requests of the processes of the group are enqueued in a
distinct bfq_queue, and the entity associated with this queue is a
child of the entity associated with the group.

Weights can be assigned explicitly to groups and processes through the
cgroups interface, differently from what happens, for single
processes, if the cgroups interface is not used (as explained in the
description of the previous patch). In particular, since each node has
a full scheduler, each group can be assigned its own weight.

Signed-off-by: Fabio Checconi <fchecconi@gmail.com>
Signed-off-by: Paolo Valente <paolo.valente@linaro.org>
Signed-off-by: Arianna Avanzini <avanzini.arianna@gmail.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
2017-04-19 08:30:26 -06:00
arch Merge branch 'regset' (PTRACE_SETREGSET data leakage) 2017-03-29 08:55:25 -07:00
block block, bfq: add full hierarchical scheduling and cgroups support 2017-04-19 08:30:26 -06:00
certs
crypto
Documentation block, bfq: add full hierarchical scheduling and cgroups support 2017-04-19 08:30:26 -06:00
drivers nbd: set the max segment size to UINT_MAX 2017-04-19 08:16:06 -06:00
firmware
fs block_dev: use blkdev_issue_zerout for hole punches 2017-04-08 11:25:38 -06:00
include block, bfq: add full hierarchical scheduling and cgroups support 2017-04-19 08:30:26 -06:00
init Change get_random_{int,log} to use the CRNG used by /dev/urandom and 2017-03-11 09:08:47 -08:00
ipc
kernel Merge branch 'stable-4.11' of git://git.infradead.org/users/pcmoore/audit 2017-03-25 15:13:55 -07:00
lib sbitmap: add sbitmap_get_shallow() operation 2017-04-14 14:06:52 -06:00
mm Merge branch 'for-linus' into for-4.12/block 2017-04-07 12:45:20 -06:00
net net: off by one in inet6_pton() 2017-04-14 14:08:54 -06:00
samples
scripts Merge branch 'akpm' (patches from Andrew) 2017-03-10 08:34:42 -08:00
security
sound ALSA: hda - Adding a group of pin definition to fix headset problem 2017-03-23 09:39:55 +01:00
tools Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-03-23 11:29:49 -07:00
usr
virt KVM: pci-assign: do not map smm memory slot pages in vt-d page tables 2017-03-28 10:08:54 +02:00
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS A new EDAC driver for the Pondicherry2 memory controller IP found in the 2017-03-27 11:09:00 -07:00
Makefile Linux 4.11-rc4 2017-03-26 14:15:16 -07:00
README

Linux kernel
============

This file was moved to Documentation/admin-guide/README.rst

Please notice that there are several guides for kernel developers and users.
These guides can be rendered in a number of formats, like HTML and PDF.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.
See Documentation/00-INDEX for a list of what is contained in each file.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.