system76 / ec

System76 Open Source Embedded Controller
GNU General Public License v3.0
318 stars 72 forks source link

darp10: Add custom fan points #489

Closed crawfxrd closed 1 month ago

XV-02 commented 1 month ago

If I'm reading this correctly, we're moving the fans between 27% and 77% duty cycles across the thermal range?

If that is correct, why are we capping at 77%?

crawfxrd commented 1 month ago

It's harder to make our fan tables now by only looking at the Clevo tables since:

Since we don't support target RPM, I used the average between 2 of the 6 profiles that Clevo provides as the duty.

I don't know the actual duty required for the 7700 RPM target, so I considered it 100%.

XV-02 commented 1 month ago

For the fan curves, where are we actually sampling the temps? are we using the "Package" temps or the "CPU" temp as would be reported with sensors?

crawfxrd commented 1 month ago

We use PECI to read the package temperature every 250+ ms.

From the PECI user guide:

XV-02 commented 1 month ago

Okay, looks like the Max fan speeds are ~9000rpm +/- ~10% on the lab units. The duty cycle is working, and package/for temps are successfully driving fan speeds at the desired duty.

Do you want to adjust the curves in light of different values for 100% duty than you expected? For reference, in a 25⁰C environment, building kernels and running stress loads aren't pulling temps much above 80⁰C, or fan speeds much above ~6200 rpm. If not, I'm comfortable to approve this.

crawfxrd commented 1 month ago

No, I'll leave it as-is. The primary concern with moving away from the default points on all boards is having the fans cool below 70⁰C.

I want to look into #453 more which will change how all this is defined anyways.