From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=3.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id ECC12C388F9 for ; Wed, 11 Nov 2020 06:40:37 +0000 (UTC) Received: from lists.ozlabs.org (lists.ozlabs.org [203.11.71.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A675520786 for ; Wed, 11 Nov 2020 06:40:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=google.com header.i=@google.com header.b="LOp8UtlK" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A675520786 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=google.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=openbmc-bounces+openbmc=archiver.kernel.org@lists.ozlabs.org Received: from bilbo.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 4CWFV960NVzDqXS for ; Wed, 11 Nov 2020 17:40:33 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=google.com (client-ip=2a00:1450:4864:20::12d; helo=mail-lf1-x12d.google.com; envelope-from=wak@google.com; receiver=) Authentication-Results: lists.ozlabs.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.a=rsa-sha256 header.s=20161025 header.b=LOp8UtlK; dkim-atps=neutral Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com [IPv6:2a00:1450:4864:20::12d]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4CWFSl5dKszDqG9 for ; Wed, 11 Nov 2020 17:39:12 +1100 (AEDT) Received: by mail-lf1-x12d.google.com with SMTP id d17so1661407lfq.10 for ; Tue, 10 Nov 2020 22:39:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=SHHM/dGTMKYIxjCd4CoXvtukP0UH2o8XOZ1iAFh1eow=; b=LOp8UtlKXqGGxQWTOhdhxyslUVhzNIoBO5xOOplSHwGQewhhLJW1GAY2rsbiHjtMpz U9XxqYjIa6ejcPrnRRwFMqdEKumSchoa4LxWeoihlvdOU3O2xH+KGspzTgwbXFBG3+/P pouKuhtEUScxeDiK8yX6dps6hjI6doE9Ch8lWB9yicFThkj0SGJ06mlExTezEtr6cRi7 0OxsYOEZegGbzJRnjwtfmK0s1wDFr6XhXOD+ARFpofyUc9omStr/Nr/W0jDSi5DBIml1 GFt//wkufBV+cJsCJwXxVc3LGtNig8pkwKHjFfVnBtuf+CRQX2oJNb/fyzwnLG6sZNKz RYQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=SHHM/dGTMKYIxjCd4CoXvtukP0UH2o8XOZ1iAFh1eow=; b=SAeNZYbeK4ByfSYFf1yrJcAK7GRdzYeIWFuj6vMk/Zf/Tk4+U7r+5BiBjEv2SvJYtU mu7J6udFQi0XpbW+SYBp/agYaA4fOwPcGECDYligA/CGYneJ9WvLciKlma1WfOKUKm9Z ywDv55pJtE9Sre9uiFYnyGhInKrDO3/Onkg+0232CJcLED1t4b7ZMGJ7WSDiVldz2w7m NlK1PX0L1KuwCYGc0bWUM6R6yp80bMMr549eRaAflIvT6Esrm41l2gSZ9/FPPdubKTQR S3qIyt8iE2FCN/TG/uxDVa9zE8vQsHuQ4AizOQSo44zMO+J9sfXTGN6NawKW5DgtFwQr Py6A== X-Gm-Message-State: AOAM531wkNQC5J2Y/lX52j7UwZHz+oHPlAeQN7z27kFsBc3w6ZUL+mXi b3vaE6e7OFD9VUEASi1tzhNtJZmWj0x33pd3OhYY+A== X-Google-Smtp-Source: ABdhPJz6optpchcIx9TEe31DdoKMVN/wt/j87FYL9Z6tWZZp/K7WruMhzU8xcHJ7kC2MiYqVwisi872HbSbhKGgbzyA= X-Received: by 2002:a19:c1:: with SMTP id 184mr5120723lfa.170.1605076746501; Tue, 10 Nov 2020 22:39:06 -0800 (PST) MIME-Version: 1.0 References: <20201007014324.GG6152@heinlein> In-Reply-To: From: William Kennington Date: Tue, 10 Nov 2020 22:38:55 -0800 Message-ID: Subject: Re: Request to create repository google-ipmi-bmc-health To: Vijay Khemka Content-Type: multipart/alternative; boundary="00000000000050647c05b3cf0ddc" X-BeenThere: openbmc@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development list for OpenBMC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: OpenBMC Maillist , Sui Chen Errors-To: openbmc-bounces+openbmc=archiver.kernel.org@lists.ozlabs.org Sender: "openbmc" --00000000000050647c05b3cf0ddc Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable My 2c... We have plenty of blob handlers that have their own repos to keep maintainership and purposes separate. The phosphor-ipmi-blobs repository intends to provide a framework, not specific implementations. On Tue, Nov 10, 2020 at 10:35 PM Vijay Khemka wrote: > > > =EF=BB=BFOn 11/5/20, 3:55 PM, "Sui Chen" wrote: > > On Tue, Oct 6, 2020 at 6:43 PM Patrick Williams > wrote: > > > > On Tue, Oct 06, 2020 at 03:57:30PM -0700, Sui Chen wrote: > > > On Fri, Oct 2, 2020 at 1:54 PM Vijay Khemka > wrote: > > > > If I understand correctly, protocol buffer will be used by > daemon who > > > > Is responding to the IPMI request and connecting to this daemon > via > > > > library call, then it is completely restricted for the use of > protocol buffer. > > > > If you are passing protocol buffer to this daemon then we have > to define > > > > some policy here. > > > > > > The Protocol buffer is only for serializing the data to be sent > > > outside of the BMC. It is not used for communication inside > > > phosphor-health-monitor and will not be passed to the daemon. > > > > Why isn't this part done from within an existing IPMI provider > (ideally > > to me a google-ipmi-* repository at this time)? I'm not especially > keen > > on these details leaking out into other non-IPMI repositories. > > > > > > > > > > Other than these two things I think adding new metrics to > > > > phosphor-health-monitor should be manageable. I can start b= y > trying to > > > > add the IPMI blob handler to phosphor-health-monitor; my > first attempt > > > > might not look very elegant, but if we find answers to the > two > > > > questions above, the merged result will look a lot better. > Hopefully > > > > we can find a solution that works well for everyone. > > > > > > > > I am looking forward to your patches > > > > > > Please check out this WIP: > > > > https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-health-monitor/+/37= 092 > > > > > > This WIP currently just adds the IPMI blob-based code to > > > phosphor-health-monitor almost as-is. > > > It also shows what we already have now. > > > > > > There will be some work to merge the daemon and the blob handler > in an > > > organic way, and I am open to discussion with you how to do that. > The > > > first step I think I can do is to put the code for extracting the > > > metrics (metrics.cpp, blob/metric.cpp) into a single file and sha= re > > > that between the daemon and the IPMI blob handler. > > > > > > Another issue I found is I am not using the latest sdbusplus so I > have > > > to comment out the usage of ValueIface::Unit::Percent for now. > > > > > > To build this requires 1) adding a pkgconfig file to > > > phosphor-ipmi-blobs (before > > > > https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-ipmi-blobs/+/37133 > > > gets merged) and 2) adding phosphor-ipmi-blobs and protobuf to > DEPENDS > > > in phosphor-health-monitor's Bitbake recipe. > > > > > > Hope this WIP change illustrates our intention clearly. > > > > > > Thanks! > > > > -- > > Patrick Williams > > > Hello Patrick and Vijay, > > As far as I know, the only two "google-ipmi-*" repositories are 1) > google-ipmi-sys and 2) google-ipmi-i2c, and neither seem to be relate= d > to the health monitoring task we're doing right now. > In my understanding one similar library is phosphor-pid-control; its > IPMI handler is also in the repository rather than in a separate > repository. > > The "health monitoring IPMI Blob Handler" (that the request in the > first email in this thread was indended for) was a monolithic IPMI > blob handler; it used to both generate metrics and handle IPMI > requests. > In the last month, I had de-coupled these two functions so the IPMI > blob handler does not generate metrics but reads metrics from the > daemon in phosphor-health-monitor via DBus. In other words, the > "monolithic" > handler has now become a thin layer. On the other hand, > phosphor-health-monitor will have to be significantly modified to > generate the metrics that are in a different format from what it's > generating right now, and Vijay and I are working on that. I had > create a chain > of changes > https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-health-monitor/+/37= 659 > to illustrate what I intend to do. > As a result, there comes the question of where the IPMI blob handler > should live, and it appears I have the following choices: > 1. in phosphor-health-monitor, or > 2. some centralized location, along with many other IPMI blob > handlers, or > 3. as a separate, new repository, or > 4. something else? > > I am facing a confusing situation as to where I should put the IPMI > blob handler, due to conflicting opinions: > 1. The maintainers of phosphor-ipmi-blobs told me it's not desirable > to put all IPMI blob handlers into the same place. > 2. By reading this email thread, I had the impression that it's not a > good idea to create too many repositories either. > 3. Because of #1 and #2, I felt we should put the IPMI blob handler > into phosphor-health-monitor itself, just like phosphor-pid-control > does. > 4. In the last reply from Patrick it sounds it's a bad idea to put th= e > IPMI blob handler into phosphor-health-monitor because of IPMI detail= s > leaking out into non-IPMI repositories. > 5. Vijay seemed to prefer to have all IPMI blob handlers in one place > based on our discussion on IRC. However, according to #1 this is goin= g > to face pushback. As such, I created all my changes in > phosphor-health-monitor for review and for showing my intent on how > the IPMI implementation is done. > 6. Because of #4 and #5, it sounds like I can't put the IPMI blob > handler into > phosphor-health-monitor either. > So now, there is no place I can place this handler, and I am now at a > dead end. > > I still feel that this should go to phosphor-ipmi-blobs, you can create a > separate > directory (handler) under the same repo and it can become home for all th= e > futures blob handler as these are going to interact with ipmi blobs anywa= y. > > I need to find a way out and would greatly appreciate it if we can > reach a consensus here so that BMC health monitoring can move forward= . > > Thanks! > > --00000000000050647c05b3cf0ddc Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
My 2c... We have plenty of blob handlers that have their o= wn repos to keep maintainership and purposes separate. The phosphor-ipmi-bl= obs repository=C2=A0intends to provide a framework, not specific implementa= tions.

On Tue, Nov 10, 2020 at 10:35 PM Vijay Khemka <vijaykhemka@fb.com> wrote:


=EF=BB=BFOn 11/5/20, 3:55 PM, "Sui Chen" <suichen@google.com> wrote:

=C2=A0 =C2=A0 On Tue, Oct 6, 2020 at 6:43 PM Patrick Williams <patrick@stwcx.xyz> w= rote:
=C2=A0 =C2=A0 >
=C2=A0 =C2=A0 > On Tue, Oct 06, 2020 at 03:57:30PM -0700, Sui Chen wrote= :
=C2=A0 =C2=A0 > > On Fri, Oct 2, 2020 at 1:54 PM Vijay Khemka <vijaykhemka@fb.com= > wrote:
=C2=A0 =C2=A0 > > > If I understand correctly, protocol buffer wil= l be used by daemon who
=C2=A0 =C2=A0 > > > Is responding to the IPMI request and connecti= ng to this daemon via
=C2=A0 =C2=A0 > > > library call, then it is completely restricted= for the use of protocol buffer.
=C2=A0 =C2=A0 > > > If you are passing protocol buffer to this dae= mon then we have to define
=C2=A0 =C2=A0 > > > some policy here.
=C2=A0 =C2=A0 > >
=C2=A0 =C2=A0 > > The Protocol buffer is only for serializing the dat= a to be sent
=C2=A0 =C2=A0 > > outside of the BMC. It is not used for communicatio= n inside
=C2=A0 =C2=A0 > > phosphor-health-monitor and will not be passed to t= he daemon.
=C2=A0 =C2=A0 >
=C2=A0 =C2=A0 > Why isn't this part done from within an existing IPM= I provider (ideally
=C2=A0 =C2=A0 > to me a google-ipmi-* repository at this time)?=C2=A0 I&= #39;m not especially keen
=C2=A0 =C2=A0 > on these details leaking out into other non-IPMI reposit= ories.
=C2=A0 =C2=A0 >
=C2=A0 =C2=A0 > > >
=C2=A0 =C2=A0 > > >=C2=A0 =C2=A0 =C2=A0Other than these two things= I think adding new metrics to
=C2=A0 =C2=A0 > > >=C2=A0 =C2=A0 =C2=A0phosphor-health-monitor sho= uld be manageable. I can start by trying to
=C2=A0 =C2=A0 > > >=C2=A0 =C2=A0 =C2=A0add the IPMI blob handler t= o phosphor-health-monitor; my first attempt
=C2=A0 =C2=A0 > > >=C2=A0 =C2=A0 =C2=A0might not look very elegant= , but if we find answers to the two
=C2=A0 =C2=A0 > > >=C2=A0 =C2=A0 =C2=A0questions above, the merged= result will look a lot better. Hopefully
=C2=A0 =C2=A0 > > >=C2=A0 =C2=A0 =C2=A0we can find a solution that= works well for everyone.
=C2=A0 =C2=A0 > > >
=C2=A0 =C2=A0 > > > I am looking forward to your patches
=C2=A0 =C2=A0 > >
=C2=A0 =C2=A0 > > Please check out this WIP:
=C2=A0 =C2=A0 > > = https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-health-monitor/+/3709= 2
=C2=A0 =C2=A0 > >
=C2=A0 =C2=A0 > > This WIP currently just adds the IPMI blob-based co= de to
=C2=A0 =C2=A0 > > phosphor-health-monitor almost as-is.
=C2=A0 =C2=A0 > > It also shows what we already have now.
=C2=A0 =C2=A0 > >
=C2=A0 =C2=A0 > > There will be some work to merge the daemon and the= blob handler in an
=C2=A0 =C2=A0 > > organic way, and I am open to discussion with you h= ow to do that. The
=C2=A0 =C2=A0 > > first step I think I can do is to put the code for = extracting the
=C2=A0 =C2=A0 > > metrics (metrics.cpp, blob/metric.cpp) into a singl= e file and share
=C2=A0 =C2=A0 > > that between the daemon and the IPMI blob handler.<= br> =C2=A0 =C2=A0 > >
=C2=A0 =C2=A0 > > Another issue I found is I am not using the latest = sdbusplus so I have
=C2=A0 =C2=A0 > > to comment out the usage of ValueIface::Unit::Perce= nt for now.
=C2=A0 =C2=A0 > >
=C2=A0 =C2=A0 > > To build this requires 1) adding a pkgconfig file t= o
=C2=A0 =C2=A0 > > phosphor-ipmi-blobs (before
=C2=A0 =C2=A0 > > http= s://gerrit.openbmc-project.xyz/c/openbmc/phosphor-ipmi-blobs/+/37133 =C2=A0 =C2=A0 > > gets merged) and 2) adding phosphor-ipmi-blobs and = protobuf to DEPENDS
=C2=A0 =C2=A0 > > in phosphor-health-monitor's Bitbake recipe. =C2=A0 =C2=A0 > >
=C2=A0 =C2=A0 > > Hope this WIP change illustrates our intention clea= rly.
=C2=A0 =C2=A0 > >
=C2=A0 =C2=A0 > > Thanks!
=C2=A0 =C2=A0 >
=C2=A0 =C2=A0 > --
=C2=A0 =C2=A0 > Patrick Williams


=C2=A0 =C2=A0 Hello Patrick and Vijay,

=C2=A0 =C2=A0 As far as I know, the only two "google-ipmi-*" repo= sitories are 1)
=C2=A0 =C2=A0 google-ipmi-sys and 2) google-ipmi-i2c, and neither seem to b= e related
=C2=A0 =C2=A0 to the health monitoring task we're doing right now.
=C2=A0 =C2=A0 In my understanding one similar library is phosphor-pid-contr= ol; its
=C2=A0 =C2=A0 IPMI handler is also in the repository rather than in a separ= ate
=C2=A0 =C2=A0 repository.

=C2=A0 =C2=A0 The "health monitoring IPMI Blob Handler" (that the= request in the
=C2=A0 =C2=A0 first email in this thread was indended for) was a monolithic= IPMI
=C2=A0 =C2=A0 blob handler; it used to both generate metrics and handle IPM= I
=C2=A0 =C2=A0 requests.
=C2=A0 =C2=A0 In the last month, I had de-coupled these two functions so th= e IPMI
=C2=A0 =C2=A0 blob handler does not generate metrics but reads metrics from= the
=C2=A0 =C2=A0 daemon in phosphor-health-monitor via DBus. In other words, t= he "monolithic"
=C2=A0 =C2=A0 handler has now become a thin layer. On the other hand,
=C2=A0 =C2=A0 phosphor-health-monitor will have to be significantly modifie= d to
=C2=A0 =C2=A0 generate the metrics that are in a different format from what= it's
=C2=A0 =C2=A0 generating right now, and Vijay and I are working on that. I = had create a chain
=C2=A0 =C2=A0 of changes https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-health-monitor/+/376= 59
=C2=A0 =C2=A0 to illustrate what I intend to do.
=C2=A0 =C2=A0 As a result, there comes the question of where the IPMI blob = handler
=C2=A0 =C2=A0 should live, and it appears I have the following choices:
=C2=A0 =C2=A0 1. in phosphor-health-monitor, or
=C2=A0 =C2=A0 2. some centralized location, along with many other IPMI blob= handlers, or
=C2=A0 =C2=A0 3. as a separate, new repository, or
=C2=A0 =C2=A0 4. something else?

=C2=A0 =C2=A0 I am facing a confusing situation as to where I should put th= e IPMI
=C2=A0 =C2=A0 blob handler, due to conflicting opinions:
=C2=A0 =C2=A0 1. The maintainers of phosphor-ipmi-blobs told me it's no= t desirable
=C2=A0 =C2=A0 to put all IPMI blob handlers into the same place.
=C2=A0 =C2=A0 2. By reading this email thread, I had the impression that it= 's not a
=C2=A0 =C2=A0 good idea to create too many repositories either.
=C2=A0 =C2=A0 3. Because of #1 and #2, I felt we should put the IPMI blob h= andler
=C2=A0 =C2=A0 into phosphor-health-monitor itself, just like phosphor-pid-c= ontrol
=C2=A0 =C2=A0 does.
=C2=A0 =C2=A0 4. In the last reply from Patrick it sounds it's a bad id= ea to put the
=C2=A0 =C2=A0 IPMI blob handler into phosphor-health-monitor because of IPM= I details
=C2=A0 =C2=A0 leaking out into non-IPMI repositories.
=C2=A0 =C2=A0 5. Vijay seemed to prefer to have all IPMI blob handlers in o= ne place
=C2=A0 =C2=A0 based on our discussion on IRC. However, according to #1 this= is going
=C2=A0 =C2=A0 to face pushback. As such, I created all my changes in
=C2=A0 =C2=A0 phosphor-health-monitor for review and for showing my intent = on how
=C2=A0 =C2=A0 the IPMI implementation is done.
=C2=A0 =C2=A0 6. Because of #4 and #5, it sounds like I can't put the I= PMI blob handler into
=C2=A0 =C2=A0 phosphor-health-monitor either.
=C2=A0 =C2=A0 So now, there is no place I can place this handler, and I am = now at a dead end.

I still feel that this should go to phosphor-ipmi-blobs, you can create a s= eparate
directory (handler) under the same repo and it can become home for all the<= br> futures blob handler as these are going to interact with ipmi blobs anyway.=

=C2=A0 =C2=A0 I need to find a way out and would greatly appreciate it if w= e can
=C2=A0 =C2=A0 reach a consensus here so that BMC health monitoring can move= forward.

=C2=A0 =C2=A0 Thanks!

--00000000000050647c05b3cf0ddc--