[brussels-dev] PSARC 2007/429 Brussels (another brussels issue...)
sowmini.varadhan at sun.com
sowmini.varadhan at sun.com
Mon Oct 15 08:47:52 PDT 2007
On (10/15/07 08:20), Garrett D'Amore wrote:
>
> I was chatting with some folks at the OpenSolaris Developer Summit, and I
> think the Brussels project needs to consider a possible future enhancement
> that NIC drivers are likely to make.
>
> Specifically, in order to save power, many NIC drivers are likely to want
> to switch down to a lower speed from 10G or 1G down to 100Mbps or 10Mbps.
> This is because running at 1G consumes on average about 1W per port.
> Versus less than 1/10th of that at 100Mbps.
> As far as Brussels is concerned, I'm interested in the link state and speed
> properties. Right now the adv_xxx properties indicate both the
> administrator's desired negotiation parameters, and the actual state of the
> MII ANAR register on the PHY.
>
> We need to break that up in the future. Specifically, we are going to need
> a way for the administrator to say "I want autonegotiation, and I'm willing
> to negotiate for everything, but I also want the NIC to downscale the speed
> when the NIC drops below a certain utilization for a while." And we need a
> way to be able to see that.
>
> But *independently*, we need a way to look at the current state of the ANAR
> register for debug. When the NIC is running at a lower speed, it may have
> ANAR register bits cleared that would otherwise be set once the demand for
> bandwidth increases.
Garrett,
Interesting point. It seems to me that the best way to provision
for advanced power-management concepts would be to add additional
enhanced properties.
Thus, we could have the existing adv* properties, plus additional
enable_link_pm modifiers (with the associated versions to examine
the link state, and set the capability), i.e., the suggestion below:
> * add new "enable_xxx" (where xxx is 100fdx, 100hdx, etc.) properties
> which becomes the administrative *control* point.
> * and new properties, "cap_link_pm", "enable_link_pm", and
> "link_pm_state", which are boolean values indicate the ability to do this
> kind of link power management, whether it is turned on, and the current
> state (link speed is reduced for power management or not).
is the ideal solution.
The existing adv* tunables have been around for far too long, so
lowering their stability with Brussels would discourage adoption,
as Jim points out in
http://mail.opensolaris.org/pipermail/brussels-dev/2007-October/000462.html
> Note that the above suggestion would require adding new enable_xxx
> properties even to NICs that don't have link power management. (And yes,
> it isn't strictly "required", but it would be a lot simpler if all NICs
> were administered the same way from the first time the project integrated.)
Agreed. As you point out, the set of "public" properties is a rapidly
changing one. The idea, with PSARC 2007/429, is to offer the bare minimum
of interfaces with the framework so that cutting-edge projects like
suspend/resume can contribute/modify the set efficiently.
--Sowmini
More information about the brussels-dev
mailing list