Revision tags: v6.2.1, v6.2.0, v6.3.0, v6.0.1, v6.0.0, v6.0.0rc1, v6.1.0 |
|
#
e9dbfea1 |
| 21-Mar-2021 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Add kmalloc_obj subsystem step 1
* Implement per-zone memory management to kmalloc() in the form of kmalloc_obj() and friends. Currently the subsystem uses the same malloc_type struct
kernel - Add kmalloc_obj subsystem step 1
* Implement per-zone memory management to kmalloc() in the form of kmalloc_obj() and friends. Currently the subsystem uses the same malloc_type structure but is otherwise distinct from the normal kmalloc(), so to avoid programming mistakes the *_obj() subsystem post-pends '_obj' to malloc_type pointers passed into it.
This mechanism will eventually replace objcache. This mechanism is designed to greatly reduce fragmentation issues on systems with long uptimes.
Eventually the feature will be better integrated and I will be able to remove the _obj stuff.
* This is a object allocator, so the zone must be dedicated to one type of object with a fixed size. All allocations out of the zone are of the object.
The allocator is not quite type-stable yet, but will be once existential locks are integrated into the freeing mechanism.
* Implement a mini-slab allocator for management. Since the zones are single-object, similar to objcache, the fixed-size mini-slabs are a lot easier to optimize and much simpler in construction than the main kernel slab allocator.
Uses a per-zone/per-cpu active/alternate slab with an ultra-optimized allocation path, and a per-zone partial/full/empty list.
Also has a globaldata-based per-cpu cache of free slabs. The mini-slab allocator frees slabs back to the same cpu they were originally allocated from in order to retain memory locality over time.
* Implement a passive cleanup poller. This currently polls kmalloc zones very slowly looking for excess full slabs to release back to the global slab cache or the system (if the global slab cache is full).
This code will ultimately also handle existential type-stable freeing.
* Fragmentation is greatly reduced due to the distinct zones. Slabs are dedicated to the zone and do not share allocation space with other zones. Also, when a zone is destroyed, all of its memory is cleanly disposed of and there will be no left-over fragmentation.
* Initially use the new interface for the following. These zones tend to or can become quite big:
vnodes namecache (but not related strings) hammer2 chains hammer2 inodes tmpfs nodes tmpfs dirents (but not related strings)
show more ...
|
Revision tags: v5.8.3, v5.8.2 |
|
#
a85cb24f |
| 27-Jul-2020 |
François Tigeot <ftigeot@wolfpond.org> |
drm: Update to Linux 4.12.14
* Initial Geminilake support
* Support improvements and model-specific bug fixes for Broxton, Haswell, Broadwell, Skylake and Kabylake hardware
* Various generic i91
drm: Update to Linux 4.12.14
* Initial Geminilake support
* Support improvements and model-specific bug fixes for Broxton, Haswell, Broadwell, Skylake and Kabylake hardware
* Various generic i915 bug fixes, including page flipping and memory corruption issues
* Minor radeon bug fixes
show more ...
|
#
f1cbac97 |
| 15-Jun-2020 |
François Tigeot <ftigeot@wolfpond.org> |
drm/linux: Add kmem_cache functions and related constants
|
Revision tags: v5.8.1, v5.8.0, v5.9.0, v5.8.0rc1, v5.6.3 |
|
#
1dedbd3b |
| 17-Nov-2019 |
François Tigeot <ftigeot@wolfpond.org> |
drm: Update generic, ttm and radeon code to Linux 4.9
* Generally cleanup non driver-specific code and increase its robustness
* DisplayPort support improvements
* Atomic modesetting improvement
drm: Update generic, ttm and radeon code to Linux 4.9
* Generally cleanup non driver-specific code and increase its robustness
* DisplayPort support improvements
* Atomic modesetting improvements
* Radeon performance and stability improvements
* drm/i915 stays based on Linux 4.7.10 with Linux 4.19 changes for now
Reviewed-by: Romick
show more ...
|
Revision tags: v5.6.2, v5.6.1, v5.6.0, v5.6.0rc1, v5.7.0, v5.4.3, v5.4.2, v5.4.1, v5.4.0, v5.5.0, v5.4.0rc1, v5.2.2, v5.2.1, v5.2.0, v5.3.0, v5.2.0rc, v5.0.2 |
|
#
39cfddd2 |
| 27-Nov-2017 |
François Tigeot <ftigeot@wolfpond.org> |
drm/linux: Add or improve various header files
|
Revision tags: v5.0.1, v5.0.0, v5.0.0rc2, v5.1.0, v5.0.0rc1, v4.8.1, v4.8.0, v4.6.2, v4.9.0, v4.8.0rc, v4.6.1, v4.6.0, v4.6.0rc2, v4.6.0rc, v4.7.0 |
|
#
c8480522 |
| 12-Apr-2016 |
François Tigeot <ftigeot@wolfpond.org> |
drm/linux: Move M_DRM declaration to linux/slab.h
|
Revision tags: v4.4.3, v4.4.2, v4.4.1, v4.4.0, v4.5.0, v4.4.0rc |
|
#
e0b9e154 |
| 29-Oct-2015 |
Sascha Wildner <saw@online.de> |
kernel/drm: In linux/slab.h, add parentheses around macro parameters.
Such parameters must be in parentheses for numerous good reasons, one of which is precedence issues like the one we had in intel
kernel/drm: In linux/slab.h, add parentheses around macro parameters.
Such parameters must be in parentheses for numerous good reasons, one of which is precedence issues like the one we had in intel_sdvo.c before this commit:
msgs = kcalloc(args_len + 3, sizeof(*msgs), GFP_KERNEL);
show more ...
|
Revision tags: v4.2.4, v4.3.1, v4.2.3, v4.2.1, v4.2.0, v4.0.6, v4.3.0, v4.2.0rc |
|
#
29f241cf |
| 09-May-2015 |
François Tigeot <ftigeot@wolfpond.org> |
drm: Implement kcalloc()
|
Revision tags: v4.0.5, v4.0.4 |
|
#
f43360b9 |
| 06-Feb-2015 |
François Tigeot <ftigeot@wolfpond.org> |
drm: Implement kzalloc()
|
#
158486a6 |
| 24-May-2015 |
François Tigeot <ftigeot@wolfpond.org> |
drm: Implement and use the Linux version of kfree()
|