2.1 CPUFreq policy notifiers ; These are notified when a new policy is created or removed. ; The phase is specified in the second argument to the notifier. The phase is CPUFREQ_CREATE_POLICY when the policy is first created and it is CPUFREQ_REMOVE_POLICY when the policy is removed. ; The third argument, a void *pointer, points to a struct cpufreq_policy consisting of several values, including min, max (the lower and upper frequencies (in kHz) of the new policy).
2. Statistics Provided (with example) ; cpufreq stats provides following statistics (explained in detail below). All the statistics will be from the time the stats driver has been inserted (or the time the stats were reset) to the time when a read of a particular statistic is done. Obviously, stats driver will not have any information about the frequency transitions before the stats driver insertion. Write-only attribute that can be used to reset the stat counters. This can be useful for evaluat...
Name: linux/Documentation ; Author : Many. Location : Documentation/ Keywords : text files, Sphinx. Description : Documentation that comes with the kernel sources, inside the Documentation directory. Some pages from this document (including this document itself) have been moved there, and might be more up to date than the web version.
The current state of Linux has four in-tree versions of a virtual network device (IBM pSeries Virtual Eth- ernet, IBM iSeries Virtual Ethernet, UML Virtual Net- work Device, and TUN/TAP)...
What is a circular buffer? ; First of all, what is a circular buffer? A circular buffer is a buffer of fixed, finite size into which there are two indices: Typically when the tail pointer is equal to the head pointer, the buffer is empty; and the buffer is full when the head pointer is one less than the tail pointer. The head index is incremented when items are added, and the tail index when items are removed. The tail index should never jump the head index, and both indices should be wrapped to...
Freezing of tasks ; IV. Why do we do that? ; V. Are there any problems related to the freezing of tasks? ; VI. Are there any precautions to be taken to prevent freezing failures?
Technology: which SEV technology provides this ioctl. SEV, SEV-ES, SEV-SNP or all. Type: hypervisor or guest. The ioctl can be used inside the guest or the hypervisor. Parameters: what parameters are accepted by the ioctl. Returns: the return value. General error numbers (-ENOMEM, -EINVAL) are not detailed, but errors with specific meanings are.
Energy Model of devices ; The Energy Model (EM) framework serves as an interface between drivers knowing the power consumed by devices at various performance levels, and the kernel subsystems willing to use that information to make energy-aware decisions. The source of the information about the power consumed by devices can vary greatly from one platform to another. These power costs can be estimated using devicetree data in some cases. In others, the firmware will know better. Alternatively, us...
The need for a document like this one became apparent in the linux-kernel mailing list as the same questions, asking for pointers to information, appeared again and again. Fortunately, as more and more people get to GNU/Linux, more and more get interested in the Kernel. But reading the sources is not always enough. It is easy to understand the code, but miss the concepts, the philosophy and design decisions behind this code. Unfortunately, not many documents are available for beginners to start....
Background ; what are robust futexes? To answer that, we first need to understand what futexes are: normal futexes are special types of locks that in the noncontended case can be acquired/released from userspace without having to enter the kernel. A futex is in essence a user-space address, e.g. a 32-bit lock variable field. If userspace notices contention (the lock is already owned and someone else wants to grab it too) then the lock is marked with a value that says “there’s a waiter pendin...