Page MenuHomeFreeBSD

coredirector - Intel TD/HFI driver - Part2: Enable thermal interrupt handler for Local APIC's.
Needs ReviewPublic

Authored by koinec_yahoo.co.jp on Mar 21 2024, 12:18 PM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Nov 13, 1:01 AM
Unknown Object (File)
Oct 7 2024, 3:42 AM
Unknown Object (File)
Oct 6 2024, 5:38 AM
Unknown Object (File)
Oct 3 2024, 5:32 AM
Unknown Object (File)
Oct 3 2024, 12:02 AM
Unknown Object (File)
Sep 27 2024, 12:24 PM
Unknown Object (File)
Sep 24 2024, 1:10 PM
Unknown Object (File)
Sep 24 2024, 9:24 AM
Subscribers
This revision needs review, but there are no reviewers specified.

Details

Reviewers
None
Summary

I developed the Intel Thread Director (ITD) / Hardware Feedback Interfce (HFI) device driver to obtain performance/efficiency information for each CPU core, which was implemented to improve the performance of Intel hybrid architecture CPUs. (e.g. Raptor Lake (refresh), Alder Lake, LakeField processors)

This driver simply obtains performance/efficiency information from the CPU and stores it in the "cpu_group" struct data referenced by the ULE scheduler.
However, since the ULE scheduler side is not yet supported, performance/efficiency cannot be improved by installing this driver at this time.

I will try to modify the ULE scheduler side in the future, but I posted this driver first because it can be implemented independently of this driver and it is difficult to modify the ULE scheduler.

There are seven patches, and this is the Part 2.
The performance/efficiency information of the ITD/HFI is updated using the Local APIC thermal interrupt, but the current implementation of the FreeBSD kernel does not use the Local APIC thermal interrupt. So enable this.
It also allows you to register interrupt mask control and handler functions.

Test Plan

With the remaining patches to be submitted later, I ran the tests listed below.

  • FreeBSD 15-current: Be able to apply patches and build to the latest source tree as of 2024/03/20. After building, restart the OS and be able to start the kernel correctly.
  • FreeBSD 14.0-Release: The source tree can be patched and built. After building, it is possible to load the driver and correctly obtain performance values from the CPU.

Due to my development environment, I developed it on FreeBSD 14.0-RELEASE and ported it to FreeBSD 15-current on a virtual environment.
However, I have also confirmed that the parts related to the code modified this time have hardly changed between 14.0-RELEASE and 15-current.
For this reason, I believe that it will probably work with 15-current, but if you are able to test it, please help confirm that it works.

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

koinec_yahoo.co.jp created this revision.

Attach the full context patch file.

Attach the patch file created with the git format-patch command.