Language Selection

English French German Italian Portuguese Spanish

Linux and Intel: Active State Power Management (ASPM), TPAUSE and More

Filed under
Linux
  • Linux Systems Will Save More Power As Kernel Removes Disabled ASPM

    Active State Power Management (ASPM) is an enhancement of Peripheral Component Interconnect Express (PCIe) that saves a lot of power by setting a device in idle state. The Linux kernel has also enabled ASPM support for the PCI Express interface.

    Now it seems like removal of a few lines of code that were ignored for the last 12 years can bring more power saving to some Linux system. Kai-Heng Feng from Canonical reported a bug for disabled ASPM L1 on TI PCIe-to-PCI Bridge. While pushing the patch to Linux, he also stated that disabled ASPM on the device prevents the Intel SoC from entering deeper Package C-State like PC8.

  • Linux 5.8 Prepped To Make Use Of TPAUSE Instruction With New Intel CPUs

    TPAUSE is the new instruction supported by Intel's Tremont microarchitecture and beyond. TPAUSE allows for an optimized state that can provide low wake-up latency compared to existing delay mechanisms. With Linux 5.8, the kernel will begin making use of TPAUSE where supported.

    The Timed Pause instruction already saw patches for enabling new instructions like TPAUSE and UMONITOR/UMWAIT back for Linux 4.19. But now queued in x86/timers ahead of the upcoming Linux 5.8 cycle are the changes for the kernel to actually begin making use of TPAUSE for more power efficient suspension of execution. TPAUSE supports modes of low-latency but with less power savings or aanother state for greater power savings but with longer wake-up latency. That is configurable via an MSR while the default behavior is the greater power savings.

  • Intel Corporation CEO Bob Swan

    After my reinstatement following a won suit, I returned to Intel. Immediately after my return begins a continuous workplace mobbing by my managers towards me.

    With the support of the human resources, which will give me disciplinary measures on the basis of facts built artfully by Intel, with the support of a complacent Intel’s works council.

    Intel proceeds with the systematic falsification of my work results, and the sabotage of all my work activities. it’s a long-term preparation work for my layoff in October 2018.

    My complaints and my requests to stop the workplace mobbing to Intel’s guarantee bodies, the legal department, the personnel department, the general manager of Intel Deutschland GmbH Christin E, have been totally ignored.

    So I decided to write to Intel’s new CEO, Bob Swan.

    The first email receives no reply. The second email within a few months is equally ignored.

    In my emails, I briefly describe workplace bullying and sabotage that I’ve been subjected to for almost a year.

    These are short emails, no excuse for him, the CEO will not have much time to read my emails.

    I offer to provide evidence of what I say. Offer that will not interest Intel CEO Bob Swan, who will never react to my emails.

    [...]

    What about Intel’s Code of Conduct someone could ask?

    Intel’s code of conduct, is a mere statement of beautiful ethical and moral principles, which serves to advertise externally the image of an Intel company attentive to ethics and morals.

    In reality, the code of conduct is very far from a company (Intel Mobbing Company) that has derailed towards an abyss of immorality, which manages to make a mess of any recognized ethical principle.

    Intel Corporation is a company that denies fairness and legality. Who scoffs at the laws, because he knows only one law, those of the strongest.

    The question remains: does Bob Swan, CEO of Intel Corporation, with his smiling face and friendly bald head, know of this rot inside Intel Corporation?

More in Tux Machines

Kernel: Virtualisation, BPF, and Btrfs

  • QEMU 5.1 Bringing Many CPU Improvements From Loongson To RISC-V To s390

    QEMU 5.1-rc0 is available as the first step towards this next feature release of this important component to the Linux virtualization stack. The QEMU 5.1-rc0 release marks the hard feature freeze for this next release. Weekly release candidates will continue until QEMU 5.1 is ready to ship around the middle of August.

  • Sleepable BPF programs

    When support for classic BPF was added to the kernel many years ago, there was no question of whether BPF programs could block in their execution. Their functionality was limited to examining a packet's contents and deciding whether the packet should be forwarded or not; there was nothing such a program could do to block. Since then, BPF has changed a lot, but the assumption that BPF programs cannot sleep has been built deeply into the BPF machinery. More recently, classic BPF has been pushed aside by the extended BPF dialect; the wider applicability of extended BPF is now forcing a rethink of some basic assumptions. BPF programs can now do many things that were not possible for classic BPF programs, including calling helper functions in the kernel, accessing data structures ("maps") shared with the kernel or user space, and synchronizing with spinlocks. The core assumption that BPF programs are atomic has not changed, though. Once the kernel jumps into a BPF program, that program must complete without doing anything that might put the thread it is running in to sleep. BPF programs themselves have no way of invoking any sort of blocking action, and the helper functions exported to BPF programs by the kernel are required to be atomic. As BPF gains functionality and grows toward some sort of sentient singularity moment, though, the inability to block is increasingly getting in the way. There has, thus, been interest in making BPF programs sleepable for some time now, and that interest has recently expressed itself as code in the form of this patch set from Alexei Starovoitov. The patch adds a new flag, BPF_F_SLEEPABLE, that can be used when loading BPF programs into the kernel; it marks programs that may sleep during their execution. That, in turn, informs the BPF verifier about the nature of the program, and brings a number of new restrictions into effect. Most of these restrictions are the result of the simple fact that the BPF subsystem was never designed with sleepable programs in mind. Parts of that subsystem have been updated to handle sleeping programs correctly, but many other parts have not. That is likely to change over time but, until then, the functionality implemented by any part of the BPF subsystem that still expects atomicity is off-limits to sleepable programs. For example, of the many types of BPF programs supported by the kernel, only two are allowed to block: those run from the Linux security module subsystem and tracing programs (BPF_PROG_TYPE_LSM and BPF_PROG_TYPE_TRACING). Even then, tracing programs can only sleep if they are attached to security hooks or are attached to functions that have been set up for error injection. Other types of programs are likely to be added in the future, but the coverage will never be universal. Many types of BPF programs are invoked from within contexts that, themselves, do not allow sleeping — deep within the network packet-processing code or attached to atomic functions, for example — so making those programs sleepable is just not going to happen.

  • Btrfs at Facebook

    The Btrfs filesystem has had a long and sometimes turbulent history; LWN first wrote about it in 2007. It offers features not found in any other mainline Linux filesystem, but reliability and performance problems have prevented its widespread adoption. There is at least one company that is using Btrfs on a massive scale, though: Facebook. At the 2020 Open Source Summit North America virtual event, Btrfs developer Josef Bacik described why and how Facebook has invested deeply in Btrfs and where the remaining challenges are. Every Facebook service, Bacik began, runs within a container; among other things, that makes it easy to migrate services between machines (or even between data centers). Facebook has a huge number of machines, so it is impossible to manage them in any sort of unique way; the company wants all of these machines to be as consistent as possible. It should be possible to move any service to any machine at any time. The company will, on occasion, bring down entire data centers to test how well its disaster-recovery mechanisms work.

today's howtos

Home Assistant improves performance in 0.112 release

The Home Assistant project has released version 0.112 of the open-source home automation hub we have previously covered, which is the eighth release of the project this year. While previous releases have largely focused on new integrations and enhancements to the front-end interface, in this release the focus has shifted more toward improving the performance of the database. It is important to be aware that there are significant database changes and multiple potential backward compatibility breaks to understand before attempting an upgrade to take advantage of the improvements. According to the release notes written by contributor Franck Nijhof, better performance has been a major goal of this release with a focus on both the logbook and history components. This builds on the work of the previous release (v0.111) from a performance perspective, which focused on reducing the time it takes to initialize the hub at startup. Read more

Android Leftovers