Language Selection

English French German Italian Portuguese Spanish

Kernel and Graphics: Vulkan, NVIDIA Memory Compaction and Intel DRM Driver

Filed under
Graphics/Benchmarks
Linux
  • vkBasalt CAS Vulkan Layer Adds FXAA Support

    The open-source vkBasalt project is the independent effort implementing AMD Radeon Image Sharpening / Contrast Adaptive Sharpening technique as a Vulkan post-processing layer that can be used regardless of the (Vulkan-powered) game. With vkBasalt 0.1 also now comes the ability to apply FXAA.

    Fast Approximate Anti-Aliasing (FXAA) is the latest feature of vkBasalt besides the contrast adaptive sharpening. However, for the v0.1 release, CAS and FXAA cannot both be enabled at the same time. It's on the project TODO list for being able to enable both FXAA and CAS in a future release. Like the existing CAS support, the anti-aliasing technique can be used for any Vulkan game thanks to this being implemented as a post-processing layer for this graphics API.

  • mm: Proactive compaction
    For some applications we need to allocate almost all memory as
    hugepages. However, on a running system, higher order allocations can
    fail if the memory is fragmented. Linux kernel currently does on-demand
    compaction as we request more hugepages but this style of compaction
    incurs very high latency. Experiments with one-time full memory
    compaction (followed by hugepage allocations) shows that kernel is able
    to restore a highly fragmented memory state to a fairly compacted memory
    state within <1 sec for a 32G system. Such data suggests that a more
    proactive compaction can help us allocate a large fraction of memory as
    hugepages keeping allocation latencies low.
    
    For a more proactive compaction, the approach taken here is to define
    per page-node tunable called ‘hpage_compaction_effort’ which dictates
    bounds for external fragmentation for HPAGE_PMD_ORDER pages which
    kcompactd should try to maintain.
    
    The tunable is exposed through sysfs:
      /sys/kernel/mm/compaction/node-n/hpage_compaction_effort
    
    The value of this tunable is used to determine low and high thresholds
    for external fragmentation wrt HPAGE_PMD_ORDER order.
    
    Note that previous version of this patch [1] was found to introduce too
    many tunables (per-order, extfrag_{low, high}) but this one reduces them
    to just (per-node, hpage_compaction_effort). Also, the new tunable is an
    opaque value instead of asking for specific bounds of “external
    fragmentation” which would have been difficult to estimate. The internal
    interpretation of this opaque value allows for future fine-tuning.
    
    Currently, we use a simple translation from this tunable to [low, high]
    extfrag thresholds (low=100-hpage_compaction_effort, high=low+10%). To
    periodically check per-node extfrag status, we reuse per-node kcompactd
    threads which are woken up every few milliseconds to check the same. If
    any zone on its corresponding node has extfrag above the high threshold
    for the HPAGE_PMD_ORDER order, the thread starts compaction in
    background till all zones are below the low extfrag level for this
    order. By default. By default, the tunable is set to 0 (=> low=100%,
    high=100%).
    
    This patch is largely based on ideas from Michal Hocko posted here:
    https://lore.kernel.org/linux-mm/20161230131412.GI13301@dhcp22.suse.cz/
    
    * Performance data
    
    System: x64_64, 32G RAM, 12-cores.
    
    I made a small driver that allocates as many hugepages as possible and
    measures allocation latency:
    
    The driver first tries to allocate hugepage using GFP_TRANSHUGE_LIGHT
    and if that fails, tries to allocate with `GFP_TRANSHUGE |
    __GFP_RETRY_MAYFAIL`. The drives stops when both methods fail for a
    hugepage allocation.
    
    Before starting the driver, the system was fragmented from a userspace
    program that allocates all memory and then for each 2M aligned section,
    frees 3/4 of base pages using munmap. The workload is mainly anonymous
    userspace pages which are easy to move around. I intentionally avoided
    unmovable pages in this test to see how much latency we incur just by
    hitting the slow path for most allocations.
    
  • NVIDIA Engineer Continues Working On Proactive Memory Compaction For Linux

    NVIDIA's Nitin Gupta continues working on proactive compaction for the Linux kernel's memory management code.

    This proactive compaction is designed to avoid the high latency introduced right now when the Linux kernel does on-demand compaction when an application needs a lot of hugepages. With this proactive compaction, a large number of hugepages can be requested while avoiding high latencies.

  • Intel Submits Last Bits For Linux 5.5 DRM Driver - Includes More TGL/Gen12, Discrete Bit

    Intel's open-source crew has submitted the last of their feature updates to their "i915" Direct Rendering Manager graphics driver for staging in DRM-Next ahead of the upcoming Linux 5.5 kernel cycle.

    In the previous weeks they've been bringing up a lot of their Tiger Lake / Gen12 graphics code as the dominating theme for the Linux 5.5 kernel. There has also been Jasper Lake support, Xe multi-GPU prepping, and their other routine code clean-ups and driver improvements. Out this morning is the last of their feature work targeting Linux 5.5.

More in Tux Machines

Multi-touch Gestures in elementary OS 6

One of the most hotly requested features for years has been to have multi-touch gestures in elementary OS, and with 6.0 I’m excited to say that we will deliver. Like the dark style preference, delivering a great multi-touch experience is a little more complicated than it seems on the surface. There have been some 3rd party tools to detect touchpad gestures and then trigger actions after-the-fact, but it wasn’t until recently that we’ve had the technical ability to provide smooth, responsive animations that track 1:1 with your finger movement across a touchpad or touch screen. We’ve had the great pleasure of working with José Expósito, the author of Touchégg, on our window manager gestures. In elementary OS 6, we use Touchégg Daemon behind the scenes to capture input events and communicate them to Gala, our window manager. Read more Also: elementary OS 6 to get great looking multi-touch gestures

Watch Live TV on Linux With Hypnotix: A New IPTV Application Being Developed by Linux Mint Team

The rise of streaming services like Netflix made people speculate about the dim future of TV channels. While the newer generation might not watch TV anymore, TV channels are not out of fashion, yet. Many streaming services like Hulu and Hotstar include TV channels in their offering. TV channels are also utilizing live streaming to broadcast their content to viewers on the internet. Another way to watch live TV is by using IPTV. There are a number of TV channels available via IPTV so that viewers can use internet to watch the live broadcast. Some channels are available for free while some might require subscription. Read more

Best Linux distros for power users in 2020

The Linux power user is a celebrated breed, and one that does not simply burst fully-formed from the earth. All newbies must toil long and hard with their Linux installations before they can describe themselves as one. At the very least, the power user will have a great degree of skill concerning all things Linux, whether it's the kernel, Bash or package management systems – and they won’t be afraid to get their hands dirty in the name of configuring the system. Read more

Budgie 10.5.2 Desktop Environment Released with Support for the GNOME 3.38 Stack

More than a year in the works, Budgie 10.5.2 is here with a wide range of changes, starting with support for GNOME Project’s latest GNOME 3.38 stack. However, Budgie still supports the older GNOME 3.36 stack to make it easier for Linux OS maintainers to backport it to older operating systems. The biggest new feature in this release is the new desktop icons implementation called Budgie Desktop View. While an initial release, it already supports single (default) or double-click for launching items. However, future releases will bring drag and drop support, keyboard navigation, and GTK4 support. Read more