All of lore.kernel.org
 help / color / mirror / Atom feed
From: Brad Bishop <bradleyb@fuzziesquirrel.com>
To: "Wang, Kuiying" <kuiying.wang@intel.com>
Cc: "kunyi731@gmail.com" <kunyi731@gmail.com>,
	"Mihm, James" <james.mihm@intel.com>,
	"Tanous, Ed" <ed.tanous@intel.com>,
	"Li, Yong B" <yong.b.li@intel.com>,
	"Feist, James" <james.feist@intel.com>,
	"Jia, Chunhui" <chunhui.jia@intel.com>,
	"venture@google.com" <venture@google.com>,
	"openbmc@lists.ozlabs.org" <openbmc@lists.ozlabs.org>,
	"Xu, Qiang" <qiang.xu@intel.com>,
	"Yang, Cheng C" <cheng.c.yang@intel.com>,
	"chunhui.jia@linux.intel.com" <chunhui.jia@linux.intel.com>,
	"geissonator@yahoo.com" <geissonator@yahoo.com>,
	"Nguyen, Hai V" <hai.v.nguyen@intel.com>
Subject: Re: Proposal for caching/buffering POST codes list for one boot process.
Date: Tue, 4 Sep 2018 16:12:21 -0400	[thread overview]
Message-ID: <C92B9CD1-4673-455D-995B-20F3A289BED8@fuzziesquirrel.com> (raw)
In-Reply-To: <959CAFA1E282D14FB901BE9A7BF4E77249E068BE@shsmsx102.ccr.corp.intel.com>



> On Aug 30, 2018, at 3:23 AM, Wang, Kuiying <kuiying.wang@intel.com> wrote:
> 
> Hi Brad,
> 1. Accept your suggestion.
>     Define an interface PostCodeList.yaml under "/xyz/openbmc_project/State/Boot “
> 2. Accept your suggestion
>    Define a property "List" w/ type "array[uint64]”
> 3.  Accept your suggestion
>    To create a new dbus object for different boot cycle but not using end flag
> 4. compare w/ "phosphor-host-postd", it is suitable for client. But for other module like IPMI command tool, it is kind of server.
>    How about "phosphor-post-code-manager"? do you think it is ok?

phosphor-post-code-manager sounds fine, thanks.

> 
> 
> Thanks,
> Kuiying.
> 
> 
> -----Original Message-----
> From: Brad Bishop [mailto:bradleyb@fuzziesquirrel.com] 
> Sent: Wednesday, August 29, 2018 8:20 PM
> To: Wang, Kuiying <kuiying.wang@intel.com>
> Cc: Tanous, Ed <ed.tanous@intel.com>; kunyi731@gmail.com; Xu, Qiang <qiang.xu@intel.com>; Mihm, James <james.mihm@intel.com>; Nguyen, Hai V <hai.v.nguyen@intel.com>; Feist, James <james.feist@intel.com>; Jia, Chunhui <chunhui.jia@intel.com>; venture@google.com; openbmc@lists.ozlabs.org; chunhui.jia@linux.intel.com; Yang, Cheng C <cheng.c.yang@intel.com>; Li, Yong B <yong.b.li@intel.com>; geissonator@yahoo.com
> Subject: Re: Proposal for caching/buffering POST codes list for one boot process.
> 
> 
> 
>> On Aug 29, 2018, at 12:44 AM, Wang, Kuiying <kuiying.wang@intel.com> wrote:
>> 
>> Thanks a lot for you all comments and suggestions.
>> Let me summary and update my solution now.
>> 1. Define an interface to post code list "CodeList.yaml" in " phosphor-dbus-interfaces" repo.
>>    Under folder " xyz/openbmc_project/Post /“
> 
> I suggest /xyz/openbmc_project/State/Boot
> 
> This is where Patrick put the existing post code interface (Raw).
> 
>> 2. Define a property "PostCodeList" w/ type "array[uint64]" 
>> (std::vector<uint64_t>)
> 
> How about just List?  or History?  Something without “Post” in it please.
> We have a similar concept on POWER and I can implement this interface but we don’t call them post codes.
> 
>> 3. Developing a post code client to monitor and collect all the post codes.
>>       a). define a "MAX_BOOT_CYCLE_NUM" to limit how many boot cycle post codes can be buffered.
>>       b). when a post code comes, push back to the end of CodeList array.
>>       c). when a boot cycle ends, push end flag like "0xffff *** ffff " to the end of CodeList array.
> 
> Can we just create a new dbus object in this situation?  Rather than shoving multiple boots into a single object with ffff delimeters?
> 
>>       d). when hit to max boot cycle number, delete one cycle post code set at the beginning of CodeList array.
>>       e). save CodeList property into file system " /var/lib/phosphor-state-manager/postCodeList”
> 
> This would be whatever we call this new application.  /var/lib/phosphor-state-manager is for the phosphor-state-manager program's state data.
> 
>> 4. create a new repo for post code client " phosphor-host-post-code-client”.
> 
> Why is it a client?  Is it also a server?
> 
>> 
>> Thanks,
>> Kuiying.
> 
> Thank you!
> 
>> 
>> 
>> -----Original Message——
> 
> This is called top posting, please try to avoid when using the mail-list.
> It makes threaded conversation hard to follow and respond to.  thx.
> 
>> From: Tanous, Ed
>> Sent: Tuesday, August 28, 2018 2:10 PM
>> To: kunyi731@gmail.com
>> Cc: chunhui.jia@linux.intel.com; venture@google.com; Wang, Kuiying 
>> <kuiying.wang@intel.com>; Mihm, James <james.mihm@intel.com>; Nguyen, 
>> Hai V <hai.v.nguyen@intel.com>; Feist, James <james.feist@intel.com>; 
>> Jia, Chunhui <chunhui.jia@intel.com>; openbmc@lists.ozlabs.org; Li, 
>> Yong B <yong.b.li@intel.com>; Yang, Cheng C <cheng.c.yang@intel.com>; 
>> bradleyb@fuzziesquirrel.com; Xu, Qiang <qiang.xu@intel.com>; 
>> geissonator@yahoo.com; Kun Yi <kunyi@google.com>
>> Subject: RE: RE: Proposal for caching/buffering POST codes list for one boot process.
>> 
>>> Obvious another thing we would need to consider is performance. A 
>>> host booting session could produce dozens or hundreds of POST codes depending on how verbose the BIOS is, and we should be careful not to design something that creates too much DBus traffic. These embedded processors are not performance ?
>>> beasts by any means.
>> 
>> I would be really surprised if POST codes were ever a performance bottleneck even in with the worst implementation possible.  Hundreds of post codes in a minute is still orders of magnitude less data than the sensors are already pushing over DBus.
>> 
>>> On Mon, Aug 27, 2018 at 4:52 PM Kun Yi <kun.yi.731@gmail.com> wrote:
>>> I think the choice of *where* to put such buffering warrants some thoughts and design. Going through what I have thought:
>> 
>>> 1. It's possible to implement host state detection and host POST code 
>>> buffering all in a client daemon, which is a long-lived process that
>>> - keeps listening to POST codes published
>>> - keeps polling host state
>>> - when host power state toggled, write the POST codes received to a 
>>> file on disk
>> This would mean that partial boots, or boots that have over current issues wouldn't be persisted at all.  It's a bit of an implementation detail at this point, but I suspect we're going to want to persist post codes more often than just every boot.
>> 
>>> Pros of this approach is that server daemons are kept simple. POST code server doesn't need to talk to host state daemon or even assume its existence.
>>> Pros of buffering on server side: potentially there will be more than 
>>> one identities needing the list of POST codes. IPMI? Logging? It would really help if we can identify some concrete use cases.
>> I think we also need to consider that the POST code saving mechanism should be up as soon as possible after boot to make sure that in the case where power restore policy is set to ON, we can capture as many post codes as possible from the host booting.  In previous implementations, this meant buffering in the kernel driver, and making the application a lightweight system for persisting POST codes, rather than actually capture them itself.
>> 

  reply	other threads:[~2018-09-04 20:12 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-24  7:28 Proposal for caching/buffering POST codes list for one boot process Wang, Kuiying
2018-08-24 16:12 ` Tanous, Ed
2018-08-24 18:07   ` Patrick Venture
2018-08-24 19:33     ` Tanous, Ed
2018-08-27  7:59       ` chunhui.jia
2018-08-27 15:45         ` Tanous, Ed
2018-08-27 23:52           ` Kun Yi
2018-08-27 23:55             ` Kun Yi
2018-08-27 23:58               ` Kun Yi
2018-08-28  6:09                 ` Tanous, Ed
2018-08-29  4:44                   ` Wang, Kuiying
2018-08-29 12:19                     ` Brad Bishop
2018-08-30  7:23                       ` Wang, Kuiying
2018-09-04 20:12                         ` Brad Bishop [this message]
2018-09-05  7:25                           ` Wang, Kuiying
2018-09-05 12:17                             ` Brad Bishop

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=C92B9CD1-4673-455D-995B-20F3A289BED8@fuzziesquirrel.com \
    --to=bradleyb@fuzziesquirrel.com \
    --cc=cheng.c.yang@intel.com \
    --cc=chunhui.jia@intel.com \
    --cc=chunhui.jia@linux.intel.com \
    --cc=ed.tanous@intel.com \
    --cc=geissonator@yahoo.com \
    --cc=hai.v.nguyen@intel.com \
    --cc=james.feist@intel.com \
    --cc=james.mihm@intel.com \
    --cc=kuiying.wang@intel.com \
    --cc=kunyi731@gmail.com \
    --cc=openbmc@lists.ozlabs.org \
    --cc=qiang.xu@intel.com \
    --cc=venture@google.com \
    --cc=yong.b.li@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.