Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:11.4
ibmrtpkgs
bnc533813_update_to_ibm-prtmd.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File bnc533813_update_to_ibm-prtmd.patch of Package ibmrtpkgs
diff -Napur ibmrtpkgs-2/ibm-prtm/ibm-prtmd ibmrtpkgs-2.new/ibm-prtm/ibm-prtmd --- ibmrtpkgs-2/ibm-prtm/ibm-prtmd 2009-09-24 11:53:50.000000000 -0600 +++ ibmrtpkgs-2.new/ibm-prtm/ibm-prtmd 2009-09-24 11:54:21.000000000 -0600 @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python # ex: set encoding=utf8 tabstop=4 expandtab shiftwidth=4 softtabstop=4: # # © Copyright IBM Corp. 2008. All Rights Reserved. @@ -41,7 +41,7 @@ def detach_tty(): childpid = os.fork() if childpid < 0: die("fork failed") - elif childpid > 0: + elif childpid > 0: sys.exit(0) # lose controlling tty @@ -63,7 +63,7 @@ def detach_tty(): sys.exit(0) def daemonize (logfile=None): - if os.getppid() != 1: + if os.getppid() != 1: detach_tty() os.close(0) @@ -162,7 +162,7 @@ class Edac(object): dmi_record = {"dimm": re.compile(r"Locator: (?P<dimm>DIMM\d+)"), "size": re.compile(r"Size: (?P<size>\d+) MB")} - dmi_handle = r"Handle [A-F\d]x[A-F\d]{4}\, DMI type \d+\, \d+ bytes\." + dmi_handle = r"Handle 0x[A-F\d]{4}\, DMI type \d+\, \d+ bytes[\s,.]*" count = 0 dmi_list = [] @@ -377,6 +377,11 @@ class ls21_edac(amd_edac): def fixup_tables(self): order = None super(ls21_edac, self).fixup_tables(order); + for ch in self.edac_data: + if ch["dimm"] % 2 == 0: + ch["dimm"] -= 1 + else: + ch["dimm"] += 1 class ls22_edac(amd_edac): edac_mc_name = 'Family-F10h-Quad-Core' @@ -391,7 +396,7 @@ class ls22_edac(amd_edac): return os.popen(exec_str).readlines() != [] def fixup_tables(self): - order = 2,4,1,3,6,8,5,7 + order = 4,2,3,1,8,6,7,5 super(ls22_edac, self).fixup_tables(order); class hs21_edac(Edac): @@ -416,9 +421,91 @@ class hs21_edac(Edac): # With the channels sorted toplogy always looks like order=4,2,5,7,4,2,5,7,3,1,6,8,3,1,6,8 - for channel in range(0,len(ch_list)): + for channel in range(len(ch_list)): ch_list[channel]["dimm"] = order[channel] +class i7core_hs22(Edac): + edac_mc_name = 'i7 Core' + def __init__(self): + super(i7core_hs22, self).__init__() + + @staticmethod + def probe(): + # check for i7 core memory controller and 7870 machine type + exec_str = "grep '%s' %s" % ( + i7core_hs22.edac_mc_name, Edac.sysfs_mc_name_path + ) + if os.popen(exec_str).readlines() != [] and \ + os.popen("dmidecode | grep 7870").readlines() != []: + return True + return False + + def fixup_tables(self): + ch_list = self.edac_data + new_dmi = [] + map=2,1,6,5,4,3,8,7,12,11,10,9 + + def def_sort(x,y): + return int(x["name"][5:]) - int(y["name"][5:]) + + ch_list.sort(def_sort) + + for m in map: + for dmi in self.dmi_data: + if dmi["dimm"] == m: + new_dmi.append(dmi) + + for channel in range(len(ch_list)): + ch_list[channel]["dimm"] = new_dmi[channel]["dimm"] + ch_list[channel]["n"] = channel + + def generate_ecc_ipmi_msg(self, dimm): + # we are setting bit 12 the "sensor number" 0xd1 == dimm 1 + dim_value = 0xd0 + dimm + os.popen("ipmitool raw 0xa 0x44 0xe3 0x00 0x02 0x23 0xf2 0x92 0x4a " + + " 0x20 0x00 0x04 0x0c 0x%x 0x6f 0x05 0xff 0xff"%(dim_value)) + +class i7core_rack(Edac): + edac_mc_name = 'i7 Core' + def __init__(self): + super(i7core_rack, self).__init__() + + @staticmethod + def probe(): + # check for i7 core memory controller and 7947 in dmidecode + exec_str = "grep '%s' %s" % ( + i7core_rack.edac_mc_name, Edac.sysfs_mc_name_path + ) + if os.popen(exec_str).readlines() != [] and \ + os.popen("dmidecode | grep 794[7,6]").readlines() != []: + return True + return False + + def fixup_tables(self): + ch_list = self.edac_data + new_dmi = [] + map=3,2,1,6,5,4,8,7,11,10,9,14,13,12,16,15 + + def def_sort(x,y): + return int(x["name"][5:]) - int(y["name"][5:]) + + ch_list.sort(def_sort) + + for m in map: + for dmi in self.dmi_data: + if dmi["dimm"] == m: + new_dmi.append(dmi) + + for channel in range(len(ch_list)): + ch_list[channel]["dimm"] = new_dmi[channel]["dimm"] + ch_list[channel]["n"] = channel + + def generate_ecc_ipmi_msg(self, dimm): + # we are setting bit 12 the "sensor number" 0xd0 == dimm 1 + dim_value = 0xd0 + dimm -1 + os.popen("ipmitool raw 0xa 0x44 0xe3 0x00 0x02 0x23 0xf2 0x92 0x4a " + + " 0x20 0x00 0x04 0x0c 0x%x 0x6f 0x05 0xff 0xff"%(dim_value)) + def usage(name, exitval=0): print "Usage: %s [options]" % name print " --test run tests, but don't start daemon"
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor