From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: Re: [OPW][PATCH v2] Support added to read system information from BIOS and verify it with Xen. Date: Tue, 21 Oct 2014 10:13:44 +0100 Message-ID: <1413882824.23337.8.camel@citrix.com> References: <20141021061012.GA12475@chroot-build.noidalab.local> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20141021061012.GA12475@chroot-build.noidalab.local> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Rita Sinha Cc: Andrew Cooper , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org On Tue, 2014-10-21 at 11:40 +0530, Rita Sinha wrote: > This patch is in response to > http://secure-web.cisco.com/1YB1awPInStO2hrLa12KgfqobN6IDb1NLSm9NDTo00PshSMkAjWOlHjGJGcermXIpIZUvx3-fqRwDbSnhthheWCKKPOn5XvXx826jIO9jEhbTjUrPXeSn7NTVUCES71yLs1nX_OAbMCmg1MPlywqp3SUGT6O973O-mDSzQty_mYU/http%3A%2F%2Fwiki.xenproject.org%2Fwiki%2FOutreach_Program_Projects#CPU.2FRAM.2FPCI_diagram_tool > project for applying to OPW-Round9.It adds support for reading system > architecture information from BIOS and verifies it with Xen via xl toolstack. > > --- > dmidecode.pl | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Which git tree is this against? It certainly wouldn't be correct to dump this into the toplevel of xen.git. > 1 file changed, 61 insertions(+) > create mode 100644 dmidecode.pl > > diff --git a/dmidecode.pl b/dmidecode.pl > new file mode 100644 > index 0000000..8556cfd > --- /dev/null > +++ b/dmidecode.pl > @@ -0,0 +1,61 @@ > +#!/usr/bin/perl > + > +# dmidecode.pl - a script to read the system architecture information > +# directly from the BIOS and verify with xen. Only for Linux. > +# > +# Rita Sinha (rita.sinha89@gmail.com) > +# OPW Program-Round9 > +# 21/10/14 > + > +`id -u` == 0 || die "must be run as root"; > + > +open(DmiFh, "/usr/sbin/dmidecode |") or > + die "problem running dmidecode"; > +$DmiNumProcs = 0; > +$DmiNumSockets = 0; > +while() > + { > + next unless /Central Processor/; > + # We've found a processor (or at least a socket), keep going > + while() > + { > + # Keep walking the dmidecode output to find out if > + # the socket has a processor in it. > + last if /^Handle/; > + next unless /Status/; > + $DmiNumSockets += 1; > + /Populated/ and $DmiNumProcs += 1; > + last; > + } > + } > +close DmiFh; > + > +open(CpuInfoFh, "/proc/cpuinfo") || die "failed to open /proc/cpuinfo!"; > +$CpuInfoNumProcs = 0; > +while() > + { > + next unless /^processor.*:/; > + ($CpuInfoNumProcs) += (/^processor.*: (\d+)/); > + } > +close CpuInfoFh; > + > +my @command = `xl list`; > +my @xen_values = split(' ', $command[1]); > + > + > +if ( $DmiNumProcs != $CpuInfoNumProcs ) > + { > + print "Warning: dmidecode reports $DmiNumProcs processors, kernel reports $CpuInfoNumProcs processors.\n"; > + } > + > +if ( $DmiNumProcs != $DmiNumSockets ) > + { > + print "Info: dmidecode reports $DmiNumSockets cpu sockets, but only $DmiNumProcs processors.\n"; > + } > + > +if ( $DmiNumProcs != @xen_values[3] ) > + { > + print "Warning: dmidecode reports $DmiNumProcs processors, xen reports $xenCpus processors\n"; > + } > + > +