OpenBMC on RCS platforms

Timothy Pearson tpearson at raptorengineering.com
Sat Apr 24 05:00:01 AEST 2021



----- Original Message -----
> From: "Ed Tanous" <ed at tanous.net>
> To: "Timothy Pearson" <tpearson at raptorengineering.com>
> Cc: "openbmc" <openbmc at lists.ozlabs.org>
> Sent: Friday, April 23, 2021 12:23:23 PM
> Subject: Re: OpenBMC on RCS platforms

> On Fri, Apr 23, 2021 at 7:36 AM Timothy Pearson
> <tpearson at raptorengineering.com> wrote:
>>
> 
> First off, this is great feedback, and despite some of my comments
> below, I do really appreciate you putting it out there.
> 
>> All,
>>
>> I'm reaching out after some internal discussion on how we can better integrate
>> our platforms with the OpenBMC project.  As many of you may know, we have been
>> using OpenBMC in our lineup of OpenPOWER-based server and desktop products,
>> with a number of custom patches on top to better serve our target markets.
>>
>> While we have had fairly good success with OpenBMC in the server / datacenter
>> space, reception has been lukewarm at best in the desktop space.  This is not
>> too surprising, given OpenBMC's historical focus on datacenter applications,
>> but it is also becoming an expensive technical and PR pain point for us as the
>> years go by.  To make matters worse, we're still shielding our desktop /
>> workstation customer base to some degree from certain design decisions that
>> persist in upstream OpenBMC, and we'd like to open discussion on all of these
>> topics to see if a resolution can be found with minimal wasted effort from all
>> sides.
>>
>> Roughly speaking, we see issues in OpenBMC in 5 main areas:
>>
>>
>> == Fan control ==
>>
>> Out of all of the various pain points we've dealt with over the years, this has
>> proven the most costly and is responsible on its own for the lack of RCS
>> platforms upstream in OpenBMC.
>>
>> To be perfectly frank, OpenBMC's current fan control subsystem is a technical
>> embarrassment, and not up to the high quality seen elsewhere in the project.
> 
> Which fan control subsystem are you referring to?  Phosphor-fans or
> phosphor-pid-control?
> 
>>  Worse, this multi-daemon DBUS-interconnected Rube Goldberg contraption has
>>  somehow managed to persist over the past 4+ years, likely because it reached a
>>  complexity level where it is both tightly integrated with the rest of the
>>  OpenBMC system and extremely difficult to understand, therefore it is equally
>>  difficult to replace.  Furthering the lack of progress is the fact that it is
>>  mostly "working" for datacenter applications, so there may be a "don't touch
>>  what isn't broken" mentality in play.
> 
> I'm not really sure I agree with that.  If someone came with a design
> for "We should replace dbus with X", had good technical foundations
> for why X was better, and was putting forward the monumental effort to
> do the work, I know that I personally wouldn't be opposed.  For the
> record, I agree with you about the complexity here, but most of the
> ideas I've heard to make it better were "Throw everything out and
> start over", which, if that's what you want to do, by all means do,
> but I don't think the community is willing to redo all of the untold
> hours of engineering effort spent over the years the project has
> existed.
> 
> FWIW, u-bmc was a project that took the existing kernel, threw out all
> the userspace and started over.  From my view outside the project,
> they seem to have failed to gain traction, and only support a couple
> of platforms.
> 
>>  From a technical perspective, it is indirected to a sufficient level as to be
>>  nearly incomprehensible to most people, with the source spread across multiple
>>  different projects and repositories, yet somehow it remains rigid / fragile
>>  enough to not support basic features like runtime (or even post-compile) fan
>>  configuration for a given server.
> 
> With respect, this statement is incorrect.  On an entity-manager
> enabled system + phosphor-pid-control, all of the fan control
> parameters are fully modifiable at runtime either from within the
> system (through dbus) or through Redfish out of band through the
> OEMManager API.  If you haven't ported your systems to entity-manager
> yet, there's quite a bit of people doing it at the moment and are
> discussing this stuff on discord basically every day that I'm sure
> would be able to give you some direction on where to start getting
> your systems moved over.

<snip>

Interesting.  I assume entity-manager is pretty new still?  A year ago there was zero solution to the problem of runtime configuration, and when I checked several weeks ago the bug report on it [1] had no meaningful progress.  Looks like that's finally changing.

Is the entity manager fairly stable API-wise at this point?  That might be enough of a game changer for me to go back and get approval for what will effectively be our fourth port of the Talos II systems to OpenBMC.

[1] https://github.com/openbmc/openbmc/issues/3595


More information about the openbmc mailing list