Re: [Freeipmi-devel] KCS Driver SMS_ATN Register
Matt Jerdonek wrote: Hello, The KCS driver appears to not use the SMS_ATN register. This register is useful for BMC-to-BMC communication to know when the remote BMC has responded. Are there any plans to monitor this register in future releases? If not, are the maintainers open to including a patch? Thanks, -Matt Hi Matt, If you use SMS_ATN flag, then you should also call Get Message Flags and check if Receive Message Available flag is set. SMS_ATN flag can also be set for other reasons such as watchdog pre-timeout, event message buffer full and OEM events. My understanding was to use OBF flag for this purpose. Check this out: Figure 9-7, KCS Interface BMC to SMS Read Transfer Flow Chart http://download.intel.com/design/servers/ipmi/IPMI2_0E4_Markup_061209.pdf SMS_ATN seems logical for this purpose given its name, but IPMI Spec uses OBF in its data flow diagram. SMS_ATN and OBF both seems to do the same job, except OBF is simple. When should we check for SMS_ATN over OBF or should we check both always? Even OpenIPMI KCS driver uses OBF and not SMS_ATN flag for reading from registers. SMS_ATN seems useful for high level polling (watch dog daemon). If all system management interfaces supports this flag, then it is worth exposing generic bmc_check_idle() api. Your patches are most welcome. -- Anand Babu Periasamy Blog [http://www.unlocksmith.org] Twitter [http://twitter.com/unlocksmith] Gluster Storage Platform [http://www.gluster.org] GNU/Linux Operating System [http://www.gnu.org] ___ Freeipmi-devel mailing list Freeipmi-devel@gnu.org http://lists.gnu.org/mailman/listinfo/freeipmi-devel
Re: [Freeipmi-devel] KCS Driver SMS_ATN Register
Hi Matt, Definitely open to patches. Looking over the IPMI spec, I agree w/ A.B., it seems to be more useful for a higher level monitoring, w/ the Get Message Flags and similar commands. I can think of several patch ideas: 1) add a KCS driver flag for checking for SMS_ATN in addition to OBF (or instead of??). Flags may be propogated up into higher level APIs too. 2) an additional function that checks for SMS_ATN in addition/or instead of OBF that users can call instead. It would be useful to understand your use case too. Are you using the KCS driver and IPMI bridging commands to bridge from one BMC to another BMC? Thanks, Al On Wed, 2010-02-17 at 18:51 -0800, Matt Jerdonek wrote: Hello, The KCS driver appears to not use the SMS_ATN register. This register is useful for BMC-to-BMC communication to know when the remote BMC has responded. Are there any plans to monitor this register in future releases? If not, are the maintainers open to including a patch? Thanks, -Matt ___ Freeipmi-devel mailing list Freeipmi-devel@gnu.org http://*lists.gnu.org/mailman/listinfo/freeipmi-devel -- Albert Chu ch...@llnl.gov Computer Scientist High Performance Systems Division Lawrence Livermore National Laboratory ___ Freeipmi-devel mailing list Freeipmi-devel@gnu.org http://lists.gnu.org/mailman/listinfo/freeipmi-devel
Re: [Freeipmi-devel] KCS Driver SMS_ATN Register
Al Anand, Thanks for the quick response. I'm planning on using libfreeipmi to create a custom application that, among other things, will have to read event flags from the local event log and query sensors on local and remote BMCs. I looked at the spec, and I think I have a slightly different understanding (I'm not saying I'm right -- I may be misunderstanding the spec). I don't think SMS_ATN and OBF can be used interchangeably. Here's my understanding: 1) If the SMS_ATN bit is set the local BMC requires some attention. 2) A GET MESSAGE FLAGS command should be sent to query the BMC. 3) If bit 0 is set in the response, that indicates a receive message is available. From looking at the ipmi_kcs_cmd_api_ipmb code, it appears as if that code polls the local BMC with GET MESSAGE cmds instead of using this bit to indicate when the response from the remote BMC is ready. While polling may not be ideal, it's certainly ok for my application. 4) If bit 1 is set in the response, that indicates an event is available. 5) I'll ignore the pre-watchdog timeout and OEM bits for now ... I don't understand how libfreeipmi notifies the application that an event is available without monitoring the SMS_ATN bit. I think I want to create a patch that does the following: 1) Creates a callback from libfreeapi to the application when an event occurs. 2) Monitors the SMS_ATN bit. 3) If set, invokes the callback. The application would be responsible for issuing the GET MESSAGE FLAGS command and handling the response. One downside of this approach is that it prevents you from ever making ipmi_kcs_cmd_api_ipmb event-driven. What do you two think? Thanks, -Matt From: Al Chu ch...@llnl.gov To: Matt Jerdonek maj1...@yahoo.com Cc: freeipmi-devel@gnu.org Sent: Thu, February 18, 2010 10:58:06 AM Subject: Re: [Freeipmi-devel] KCS Driver SMS_ATN Register Hi Matt, Definitely open to patches. Looking over the IPMI spec, I agree w/ A.B., it seems to be more useful for a higher level monitoring, w/ the Get Message Flags and similar commands. I can think of several patch ideas: 1) add a KCS driver flag for checking for SMS_ATN in addition to OBF (or instead of??). Flags may be propogated up into higher level APIs too. 2) an additional function that checks for SMS_ATN in addition/or instead of OBF that users can call instead. It would be useful to understand your use case too. Are you using the KCS driver and IPMI bridging commands to bridge from one BMC to another BMC? Thanks, Al On Wed, 2010-02-17 at 18:51 -0800, Matt Jerdonek wrote: Hello, The KCS driver appears to not use the SMS_ATN register. This register is useful for BMC-to-BMC communication to know when the remote BMC has responded. Are there any plans to monitor this register in future releases? If not, are the maintainers open to including a patch? Thanks, -Matt ___ Freeipmi-devel mailing list Freeipmi-devel@gnu.org http://*lists.gnu.org/mailman/listinfo/freeipmi-devel -- Albert Chu ch...@llnl.gov Computer Scientist High Performance Systems Division Lawrence Livermore National Laboratory ___ Freeipmi-devel mailing list Freeipmi-devel@gnu.org http://lists.gnu.org/mailman/listinfo/freeipmi-devel
Re: [Freeipmi-devel] KCS Driver SMS_ATN Register
Hi Matt, Anand wrote the KCS driver, so he'll respond too. Re-reading the spec again and reading your comments, I think I understand your situation. You're looking to read the SMS_ATN register so that you'll know whether a receive queue, event buffer, or whatever other thing has occurred, then you'll do something appropriate given the situation. This is in contrast to the relative request-reply model of the current driver. e.g. for IPMB, I poll the recieve queue. Correct? Based on what you said below, here's my idea of how to implement what you're thinking. We'll add a function like ipmi_kcs_sms_atn_callback_register(), where you register a function that will be called if SMS_ATN is set to 1. Add another function, something like ipmi_kcs_sms_atn_spin(), that just spins and checks SMS_ATN once in awhile. It'll call the callback whenever appropriate. This is going to be like our sleep or wait equivalent when your app is waiting to do something. Within the KCS driver, check the SMS_ATN bit before any KCS read or write operation done within the KCS driver. If the SMS_ATN bit is 1, call the callback. So the net affect is an event can be generated whenever you are doing KCS or you sleep w/ the spin function. You're right, that the downside is is that the user shouldn't use ipmi_kcs_cmd_api_ipmb() in this situation (worst that happens is you get timeouts if you take a message off the receive queue instead of libfreeipmi). But I figure this is a bit of advanced use, so they'll have to know that you shouldn't use ipmi_kcs_cmd_api_ipmb(). Is this what you're looking for?? Al On Thu, 2010-02-18 at 13:24 -0800, Matt Jerdonek wrote: Al Anand, Thanks for the quick response. I'm planning on using libfreeipmi to create a custom application that, among other things, will have to read event flags from the local event log and query sensors on local and remote BMCs. I looked at the spec, and I think I have a slightly different understanding (I'm not saying I'm right -- I may be misunderstanding the spec). I don't think SMS_ATN and OBF can be used interchangeably. Here's my understanding: 1) If the SMS_ATN bit is set the local BMC requires some attention. 2) A GET MESSAGE FLAGS command should be sent to query the BMC. 3) If bit 0 is set in the response, that indicates a receive message is available. From looking at the ipmi_kcs_cmd_api_ipmb code, it appears as if that code polls the local BMC with GET MESSAGE cmds instead of using this bit to indicate when the response from the remote BMC is ready. While polling may not be ideal, it's certainly ok for my application. 4) If bit 1 is set in the response, that indicates an event is available. 5) I'll ignore the pre-watchdog timeout and OEM bits for now ... I don't understand how libfreeipmi notifies the application that an event is available without monitoring the SMS_ATN bit. I think I want to create a patch that does the following: 1) Creates a callback from libfreeapi to the application when an event occurs. 2) Monitors the SMS_ATN bit. 3) If set, invokes the callback. The application would be responsible for issuing the GET MESSAGE FLAGS command and handling the response. One downside of this approach is that it prevents you from ever making ipmi_kcs_cmd_api_ipmb event-driven. What do you two think? Thanks, -Matt __ From: Al Chu ch...@llnl.gov To: Matt Jerdonek maj1...@yahoo.com Cc: freeipmi-devel@gnu.org Sent: Thu, February 18, 2010 10:58:06 AM Subject: Re: [Freeipmi-devel] KCS Driver SMS_ATN Register Hi Matt, Definitely open to patches. Looking over the IPMI spec, I agree w/ A.B., it seems to be more useful for a higher level monitoring, w/ the Get Message Flags and similar commands. I can think of several patch ideas: 1) add a KCS driver flag for checking for SMS_ATN in addition to OBF (or instead of??). Flags may be propogated up into higher level APIs too. 2) an additional function that checks for SMS_ATN in addition/or instead of OBF that users can call instead. It would be useful to understand your use case too. Are you using the KCS driver and IPMI bridging commands to bridge from one BMC to another BMC? Thanks, Al On Wed, 2010-02-17 at 18:51 -0800, Matt Jerdonek wrote: Hello, The KCS driver appears to not use the SMS_ATN register. This register is useful for BMC-to-BMC communication to know when the remote BMC has responded. Are there any plans to monitor this register in future releases? If not, are the maintainers open to including a patch? Thanks, -Matt ___ Freeipmi-devel mailing list Freeipmi-devel@gnu.org http://**lists.gnu.org/mailman/listinfo/freeipmi-devel -- Albert Chu ch...@llnl.gov Computer Scientist High Performance Systems Division Lawrence Livermore National Laboratory --