Skip to content
Snippets Groups Projects
Forked from an inaccessible project.
Danilo Krummrich's avatar
Danilo Krummrich authored
Currently, job flow control is implemented simply by limiting the number
of jobs in flight. Therefore, a scheduler is initialized with a credit
limit that corresponds to the number of jobs which can be sent to the
hardware.

This implies that for each job, drivers need to account for the maximum
job size possible in order to not overflow the ring buffer.

However, there are drivers, such as Nouveau, where the job size has a
rather large range. For such drivers it can easily happen that job
submissions not even filling the ring by 1% can block subsequent
submissions, which, in the worst case, can lead to the ring run dry.

In order to overcome this issue, allow for tracking the actual job size
instead of the number of jobs. Therefore, add a field to track a job's
credit count, which represents the number of credits a job contributes
to the scheduler's credit limit.

Signed-off-by: default avatarDanilo Krummrich <dakr@redhat.com>
Reviewed-by: default avatarLuben Tuikov <ltuikov89@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20231110001638.71750-1-dakr@redhat.com
a78422e9
History

The Linux Kernel documentation

This is the top level of the kernel's documentation tree. Kernel documentation, like the kernel itself, is very much a work in progress; that is especially true as we work to integrate our many scattered documents into a coherent whole. Please note that improvements to the documentation are welcome; join the linux-doc list at vger.kernel.org if you want to help out.

Working with the development community

The essential guides for interacting with the kernel's development community and getting your work upstream.

Internal API manuals

Manuals for use by developers working to interface with the rest of the kernel.

Development tools and processes

Various other manuals with useful information for all kernel developers.

User-oriented documentation

The following manuals are written for users of the kernel — those who are trying to get it to work optimally on a given system and application developers seeking information on the kernel's user-space APIs.

See also: the Linux man pages, which are kept separately from the kernel's own documentation.

Firmware-related documentation

The following holds information on the kernel's expectations regarding the platform firmwares.

Architecture-specific documentation

Other documentation

There are several unsorted documents that don't seem to fit on other parts of the documentation body, or may require some adjustments and/or conversion to ReStructured Text format, or are simply too old.

Translations

Indices and tables

  • :ref:`genindex`