From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gavin Maltby Subject: Re: RFC: MCA/MCE concept Date: Thu, 14 Jun 2007 12:59:12 +0100 Message-ID: <46712D90.20208@sun.com> References: <200705291732.46709.Christoph.Egger@amd.com> <200705301110.50172.Christoph.Egger@amd.com> <46643AF8.9020901@sun.com> <200706061128.02752.Christoph.Egger@amd.com> Mime-Version: 1.0 Content-Type: text/plain; format=flowed; charset=ISO-8859-1 Content-Transfer-Encoding: 7BIT Return-path: In-reply-to: <200706061128.02752.Christoph.Egger@amd.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Christoph Egger Cc: xen-devel@lists.xensource.com, Jan Beulich List-Id: xen-devel@lists.xenproject.org On 06/06/07 10:28, Christoph Egger wrote: > On Monday 04 June 2007 18:16:56 Gavin Maltby wrote: >> In terms of the form of the error event data, the simplest but also >> the dumbest would be a binary structure passed from hypervisor >> to dom0: >> > struct mca_error_data_ver1 { > uint8_t version; /* structure version */ > uint64_t mc_status; > uint64_t mc_addr; > uint64_t mc_misc; > uint16_t mc_chip; > uint16_t mc_core; > uint16_t mc_bank; > uint16_t domid; > uint16_t vcpu_id; > ... > }; Since there are multiple MCA detector banks, and more than one may have logged a valid error, we need to think about communicating all the bank error telemetry. This should also allow for there being varying numbers of MCA banks in different proccessor types. So something like struct { uint8_t version; uint8_t nbanks; uint16_t flags; uint16_t domid; uint16_t vcpud_id; /* if meaningful? */ uint8_t chipid; uint8_t coreid; uint64_t mcg_status; struct { mc_status; mc_addr; mc_misc; } bank[1]; }; The bank array is actually sized as per nbanks. I've added mcg_status and flags. The latter I'd like to use for indicators such as "this error data was artificially injected" etc. Gavin