Le Sat, 24 May 2025 12:56:09 +0200, Kory Maincent <kory.maincent@xxxxxxxxxxx> a écrit : > From: Kory Maincent (Dent Project) <kory.maincent@xxxxxxxxxxx> > > This patch introduces the ability to configure the PSE PI budget evaluation > strategies. Budget evaluation strategies is utilized by PSE controllers to > determine which ports to turn off first in scenarios such as power budget > exceedance. > > The pis_prio_max value is used to define the maximum priority level > supported by the controller. Both the current priority and the maximum > priority are exposed to the user through the pse_ethtool_get_status call. > > This patch add support for two mode of budget evaluation strategies. > 1. Static Method: > > This method involves distributing power based on PD classification. > It’s straightforward and stable, the PSE core keeping track of the > budget and subtracting the power requested by each PD’s class. > > Advantages: Every PD gets its promised power at any time, which > guarantees reliability. > > Disadvantages: PD classification steps are large, meaning devices > request much more power than they actually need. As a result, the power > supply may only operate at, say, 50% capacity, which is inefficient and > wastes money. > > Priority max value is matching the number of PSE PIs within the PSE. > > 2. Dynamic Method: > > To address the inefficiencies of the static method, vendors like > Microchip have introduced dynamic power budgeting, as seen in the > PD692x0 firmware. This method monitors the current consumption per port > and subtracts it from the available power budget. When the budget is > exceeded, lower-priority ports are shut down. > > Advantages: This method optimizes resource utilization, saving costs. > > Disadvantages: Low-priority devices may experience instability. > > Priority max value is set by the PSE controller driver. > > For now, budget evaluation methods are not configurable and cannot be > mixed. They are hardcoded in the PSE driver itself, as no current PSE > controller supports both methods. > > Signed-off-by: Kory Maincent (Dent Project) <kory.maincent@xxxxxxxxxxx> Forgot to add: Acked-by: Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx> -- Köry Maincent, Bootlin Embedded Linux and kernel engineering https://bootlin.com