Page MenuHomeFreeBSD

hmp(4): add provider interface
Needs ReviewPublic

Authored by minsoochoo0122_proton.me on Tue, Apr 21, 10:21 AM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Apr 22, 1:19 AM
Unknown Object (File)
Tue, Apr 21, 9:16 PM

Details

Reviewers
imp
olce
Summary

Sponsored by: FreeBSD Foundation

Signed-off-by: Minsoo Choo <minsoochoo0122@proton.me>

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 72455
Build 69338: arc lint + arc unit

Event Timeline

Reflect moving sysctl in parent revision

Separate capacity and score providers and update sysctls

I'm facing some challenges while working on making IntelHFI compatible with HMP, and I'd like to ask for your advice.

It seems that the current HMP mechanism doesn't allow for dynamic loading of providers like intelhfi using kldload.
I understand that the probe() and init() callbacks registered with HMP_PROVIDER_DECLARE are called only when HMP is initialized during the initial stages of kernel startup, and they evaluate which provider to use.

I understand that HMP providers don't require dynamic loading or unloading for their purpose, hence this approach. Is my understanding correct?

(Currently, intelhfi is being developed as a device driver, so changing to this approach would require some adjustments.)

It seems that the current HMP mechanism doesn't allow for dynamic loading of providers like intelhfi using kldload.
I understand that the probe() and init() callbacks registered with HMP_PROVIDER_DECLARE are called only when HMP is initialized during the initial stages of kernel startup, and they evaluate which provider to use.

I understand that HMP providers don't require dynamic loading or unloading for their purpose, hence this approach. Is my understanding correct?

(Currently, intelhfi is being developed as a device driver, so changing to this approach would require some adjustments.)

Yes. The reason is that this will be integrated with scheduler later, and I haven't found a good approach to kldload/kldunload on runtime without confusing the scheduler.