信息处理装置、信息处理方法以及程序的利记博彩app

文档序号:6352048阅读:153来源:国知局
专利名称:信息处理装置、信息处理方法以及程序的利记博彩app
技术领域
本发明涉及登记于TLB (Translation Lookaside Buffer:旁路转换缓冲器)的信息的收集技术。
背景技术
在有的计算机中安装有TLB (Translation Lookaside Buffer)。例如,操作系统为了将与各虚拟空间的逻辑地址对应的物理地址或映射尺寸(map size)等地址转换信息通知给硬件,在TLB中设定信息。TLB存在于计算机的CPU (Central Processing Unit)内,用于实现从虚拟地址向物理地址转换的高速化。在TLB中存在固定个的项,操作系统在TLB的各项中登记用于从虚拟地址转换成物理地址的信息。·若在CPU执行命令过程中产生对虚拟地址的访问,则CPU检索操作系统登记于TLB的信息。通常,作为检索键使用虚拟地址,作为检索结果返回与虚拟地址对应的物理地址。在TLB上存在与虚拟地址对应的信息的情况下,非常迅速地进行地址转换,CPU使用从TLB获取的物理地址来访问存储器。在TLB上不存在与虚拟地址对应的信息的情况下,CPU产生自陷(中断),通知操作系统TLB上没有信息。受到自陷的操作系统将与虚拟地址对应的信息登记于TLB并再执行命令。再执行命令时,在TLB上登记有与虚拟地址对应的信息,所以CPU能够使用与虚拟地址对应的信息访问存储器。在因操作系统的障碍等不能正常地进行对TLB的信息登记的情况下,CPU会访问预料之外的物理地址。由于访问预料之外的物理地址,因此存在着产生计算机的误动作、数据破坏等重大问题的可能性。实际产生因操作系统的障碍而引起的TLB项的误登记,并且还有产生系统挂起(hang up)或程序误动作的事例。因此,期望确认登记于各CPU的TLB的信息的方案,或确认与操作系统的TLB相关的处理是否正确动作的方案。以往,出于用于调查操作系统的障碍等故障的原因的信息收集以及动作确认(regression test :回归测试),而准备工具。例如,计算机的管理者在管理计算机的固件(Service Processor)中,执行动作确认的命令等工具即可。在执行动作确认的命令时,计算机的管理者指定作为动作确认对象的CPU等。通过执行动作确认的命令,计算机的管理者就能够获取登记于指定的CPU的TLB的信息。例如,在搭载了 UltraSPARC处理器的系统的情况下,通过起动在固件中准备的动作确认用命令,固件执行收集TLB信息的ASI(Address Space Identifiers)指令。通过收集TLB信息的ASI指令,固件获取登记于TLB的信息,并将该信息显示给计算机的管理者。收集登记于TLB的信息的ASI指令的详细内容记载于 UltraSPARC 处理器的手册(UltraSPARC User’s Manual Revision 2, July 1997 )的第6章。专利文献I:日本特表2007 - 500401号公报专利文献2:日本特开昭63 - 273149号公报近些年,搭载于计算机的CPU多采用在单一的处理器封装体内追加多个内核之类的方法。这种CPU的多内核化作为用于提高CPU性能的技术而被认识,其应用迅速发展。最近,与多线程技术组合的多内核化也在发展,还出现了逻辑CPU数为512个以上的大规模服务器。此外,所谓逻辑CPU,可以考虑为操作系统包含分配线程的CPU和该线程的寄存器组的虚拟程序执行环境。在包含逻辑CPU的计算机系统中,操作系统作为对线程分配的程序执行环境,识别逻辑CPU来替换作为物理硬件资源的物理CPU。因此,还按照每个逻辑CPU准备TLB。并且,可以登记于TLB的信息量年年增加,最近每个逻辑CPU能够保持合计4000个项以上的地址转换信息。因此,例如在利用计算机的固件(Service Processor)的指令等工具,对搭载了 512个逻辑CPU的计算机,收集登记于全部逻辑CPU的TLB的信息的情况下,计算机的管理者必须指定逻辑CPU反复(512次)地执行工具。并且,收集的信息成为200万项以上的地址转换信息,数据量膨大。因此,存在收集信息非常花费时间和劳力的问 题。并且,在为了调查操作系统的障碍等故障的原因而收集登记于TLB的信息的情况下,通常收集登记于产生异常的特定CPU的TLB的信息即可。此外,特定的CPU在具有逻辑CPU结构的系统中指逻辑CPU,在没有逻辑CPU结构的系统中,例如指多内核CPU中的一个内核等。另外,也将多内核CPU中的一个内核称作物理CPU。然而,在利用计算机的固件(Service Processor)的指令等外部工具收集信息的情况下,往往不能确定是哪个逻辑CPU,或哪个物理CPU产生异常。在不能确定是哪个逻辑CPU,或哪个物理CPU产生异常的情况下,计算机的管理者也有收集登记于全部逻辑CPU或全部物理CPU的TLB的信息的情况。因此,基于计算机的固件等外部工具的信息收集成为收集的数据量的增加以及收集的处理时间的增加的重要因素。

发明内容
公开的技术的一个方面是有效地支援用于调查与TLB相关的信息处理装置的障碍等故障的原因的信息收集以及动作确认(回归测试)。作为用于解决上述课题的一个方面,例示信息处理装置。本信息处理装置具备分别具有TLB (Translation Lookaside Buffer)的多个处理部;获取多个处理部中对TLB的信息进行收集的处理部的指定和对TLB的信息进行收集的定时的指定的单元;以及在指定的定时中从指定的处理部收集TLB的信息的单元。根据本信息处理装置,能够有效地支援用于调查与TLB相关的信息处理装置的障碍等故障的原因的信息收集以及动作确认(回归测试)。


图I是表示实施例I的信息处理装置的硬件和功能的关联的框图。图2是表示操作系统的功能的详细例的图。图3是成为比较例的系统的处理的流程图。图4是表示实施例I的从启动至停止的处理的流程图。图5是例示紧急停止的处理的图。图6是表示TLB收集处理的详细例的图。
图7是例示实施例2的信息处理装置的动作的流程图。图8是例示系统管理者按下了开关时的处理的流程图。图9是例示锁定TLB的项的处理的流程图。
具体实施例方式以下,参照附图,对一个实施方式的信息处理装置进行说明。以下的实施方式的构成是例示,本发明并不局限于实施方式的构成。实施例I参照图I至图6的附图,对实施例I的信息处理装置I进行说明。图I是表示信息处理装置I的硬件和功能的关联的框图。信息处理装置I具备操作系统11、固件12 (Service Processor :服务处理器)、装置所具备的开关13、磁盘14、CPU15、存储器16。在实施例I的信息处理装置I中,CPU15例如包含多个虚拟CPU。这里,虚拟CPU从操作系统11来看,指包含用于执行程序的处理器和保持程序执行状态的寄存器组的组合的虚拟装置。这里,“虚拟”的意思包含能够提供比包含实际存在的硬件,即比物理存在的寄存器组的物理CPU的程序执行环境更多的程序执行环境(即处理器和寄存器组的组合)的意思。虚拟CPU例如将表示在当前CPU15的任意一个物理CPU中正在处理的程序的状态的第I寄存器组的值保存于存储器16,另一方面,将保存在存储器16中的第2寄存器组的值回写到物理CPU的寄存器组。通过设置这样的寄存器组的值的更换功能,CPU15对操作系统11提供多个虚拟CPU。但也可以替换虚拟CPU,而是CPU15为多个物理CPU (也称为处理器内核、内核或物理处理器),即提供执行程序的装置作为物理硬件。不管是哪一种,在实施例I中,在从操作系统11来看的情况下,信息处理装置I的CPU15具有多个用于执行程序的执行环境。虚拟CPU或者物理CPU与处理部相当。另外,CPU15的多个虚拟CPU (或物理CPU)分别具有TLB。以下,在称CPU15时指包含多个虚拟CPU或多个物理CPU的系统。另外,CPU15所包含的虚拟CPU指CPU15向操作系统11提供的各个程序执行环境。另外,CPU15所包含的物理CPU指CPU15内的各个处理器内核。并且,利用CPU编号来确定CPU15内的各个虚拟CPU。另外,在CPU15不具有虚拟CPU的结构的情况下,CPU15对操作系统11提供各个物理CPU作为程序执行环境。各个物理CPU也是利用CPU编号确定的。即,在实施例I中称CPU编号的情况下,在提供虚拟CPU的环境下,是确定虚拟CPU的编号。另外,在不提供虚拟CPU的环境下,在实施例I所说的CPU编号是确定物理CPU的编号。存储器16保持在CPU15中执行的计算机程序的编码或数据。存储器16所保持的数据包含表示在CPU15中等待分配虚拟CPU的计算机程序的执行状态的寄存器组的值、CPU15通过执行计算机程序所处理的数据等。CPU15使用TLB,将虚拟地址转换为物理地址,访问存储器16。存储器16包含易失性DRAM (Dynamic Random Access Memory :动态随机存取存储器)和非易失性ROM (Read Only Memory :只读存储器)。也将存储器16称作主存储装置。磁盘14也被称作外部存储装置。磁盘14对在存储器16中展开的计算机程序、数据等进行保存。从CPU15来看,被称作外部存储装置这包含与存储器16相比访问所花费的时间变长的意思。但即便电源停止,磁盘14也维持存储的信息。磁盘14包含硬盘装置、移动式存储装置的输入输出装置、SSD (Solid State Drive :固态硬盘)等。另外,移动式存储装置包含 CD (Compact Disc :光盘)、DVD (Digital Versatile Disc :数字多功能盘)、BD(Blu-ray Disc)等的驱动装置,或存储卡的输入输出装置。操作系统11在CPU15中运转,控制CPU15、存储器16以及磁盘14等信息处理装置I的硬件,向在CPU15中执行的计算机程序提供信息处理装置I的资源。该情况下的计算机程序在与操作系统11这样的系统程序相区别的意思上说,被称作用户程序或应用程序。固件(Service Processor,以下仅称固件12),提供控制并管理信息处理装置I的功能。固件12通过未图示的专用线与CPU15连接,向CPU15输入规定的指令,接收针对指令的响应。例如,固件12输入用于获取CPU15当前状态的ASI指令,获取CPU15的当前状态,诊断CPU15的执行状态。
开关13接受用户操作,通知操作系统11接受了用户操作。例如,通过中断这样的事件的产生来进行从开关13向操作系统11的通知。若产生中断,则操作系统11按照预先决定的优先顺序,从CPU15接受中断的产生。因此,开关13能够作为从用户,例如信息处理装置I的系统管理者对操作系统11的紧急通知机构而使用。此外,中断本身例如也可以作为从固件12对CPU15的请求而产生。即,若系统管理者按下开关13,则首先固件12检测开关13被按下了的情况。而且固件12也可以通过CPU15通过中断向操作系统11通知开关13被按下了的情况。另外,从固件12对操作系统11的中断也通过执行信息处理装置I的固件12的指令来产生。例如,若系统管理者或固件上的程序执行诊断CPU15的固件12的命令,则固件12通过中断通知与CPU15对应的信息,例如ASI指令等。标准输出17是操作系统11所准备的信息的虚拟输出目的地。操作系统11例如假定终端作为标准输出。终端也被称作控制台。另外,能够将标准输出通过被称作重定向的切换功能,切换成硬盘装置等外部存储装置的情况较多。<操作系统11的功能>操作系统11例如具有文件管理功能、存储器管理功能、进程管理功能等。若操作系统11接收来自信息处理装置I的通知(中断),则执行规定的处理。例如,操作系统11通过CPU15的硬件,接受紧急停止的请求,进行紧急停止。另外,在实施例I中,例如操作系统11将登记于系统管理者预先在设定文件231中指定的虚拟CPU或者物理CPU的TLB的信息,存储于系统管理者在设定文件231中指定的输出目的地,再起动系统。图2表示操作系统11的功能的详细例子。如图2所示,操作系统11具备中断处理部21、应急处理部22、TLB信息收集部23。若CPU15接收中断,则中断处理部21从CPIU15接收产生了中断的通知。例如, 中断处理部21能够例示为执行存储于被设定为CPU15的中断矢量的地址的被称作句柄(handle)的程序的CPU15。中断处理部21执行与中断的种类对应的处理。应急处理部22在从CPU15对操作系统11,通过中断处理部21请求紧急停止时起动。紧急停止也被称作应急(panic)。若请求紧急停止,则应急处理部22执行与紧急停止相关的处理。
例如,如图2所示,应急处理部22具有显示/记录部221、文件同步处理部222、核心转储处理部223、再起动部224。CPU15执行操作系统11所包含的计算机程序,作为应急处理部22,例如作为显示/记录部221、文件同步处理部222、核心转储处理部223、再起动部224发挥功能。显示/记录部221例如伴随紧急停止,将通知给系统管理者或用户的消息输出至标准输出,显示于未图示的终端,或者记录于磁盘14上的文件等。通知给用户的消息包含请求紧急停止的理由/原因的编码或者消息、表示产生理由/原因的信息处理装置I的相关位置,例如表示硬件等的信息等。文件同步部222将向磁盘14写入的数据,即将保持缓存至未图示的高速缓冲器存储器而未写入磁盘14的数据写入磁盘14。核心转储处理部223将与紧急停止相关的存储器16的内容输出至标准输出,显示于未图示的终端,或者记录于磁盘14上的文件等。 再起动部224在紧急停止结束后,例如等待系统管理者的指示,再起动操作系统11。TLB信息收集部23获取系统管理者的指定,根据获取的指定,收集与CPU15内的TLB相关的信息。TLB信息收集部23与收集TLB的信息的单元相当。TLB信息收集部23具备TLB信息收集设定文件(以下仅称设定文件231 )。系统管理者在设定文件231中指定成为TLB信息获取对象的定时、成为TLB信息获取对象的虚拟CPU、成为TLB信息获取对象的物理CPU、获取的TLB信息的输出目的地等。设定文件231例如是磁盘14上的文件、从磁盘14的文件加载至存储器16上的表等。CPU15执行读出设定文件231的信息的计算机程序,作为获取收集上述TLB的信息的处理部的指定和收集上述TLB信息的定时的指定的单元发挥功能。<设定文件231的记述例>(I)收集定时的指定在对收集登记于TLB的信息的定时进行指定的情况下,系统管理者在设定文件231中预先按以下方式记述。(1-1)操作系统11紧急停止(应急)时;以下表示对登记于应急产生时利用tlb-dump-cpu指定的CPU的TLB的信息进行收集的情况的设定例。tlb-dump-timing=//panic//;(I - 2)启动处理中的核心初始化时,即还不能够使用终端的状态;以下表示对启动处理过程中的核心初始化时登记于利用tlb-dump-cpu指定的CPU (虚拟CPU或物理CPU)的TLB的信息进行收集的情况的设定例。tlb-dump-timing=//kernel-init//;(2 )收集TLB的对象的CPU的指定; 在对收集登记于TLB的信息的对象的CPU (虚拟CPU或物理CPU)进行指定的情况下,系统管理者在设定文件231中预先按以下方式记述。(2 - I)发生某种异常而紧急停止的CPU的指定对登记于紧急停止了的虚拟CPU或者物理CPU的TLB的信息进行收集的情况的设定例如下所示。此外,在虚拟CPU或者物理CPU紧急停止的情况下,从紧急停止的虚拟CPU或者物理CPU向操作系统11请求紧急停止。因此,操作系统11识别紧急停止了的虚拟CPU或者物理CPU。tlb_dump-cpu="panic";(2 — 2)基于CPU编号的CPU的指定(能够指定多个);在系统管理者想指定收集TLB的信息的虚拟CPU或者物理CPU的情况下,进行以下的指定。例如,对登记于CPU编号为O和2这2个CPU的TLB的信息进行收集的情况的设定例如下所示。tlb_dump-cpu="0,2";
(2 — 3)搭载于CPU15的全部虚拟CPU或者物理CPU ;在对登记在搭载于CPU15的全部虚拟CPU或者物理CPU的TLB的信息进行收集的情况的设定例如下所示。tlb_dump-cpu="all";(2-4)没有对象CPU的指定(不收集登记于TLB的信息);不收集登记于TLB的信息的情况的设定例如下所示。tlb_dump-cpu="none";(3)在指定登记于TLB的信息的输出目的地的情况下,系统管理者在设定文件231中预先按以下方式记述。(3— I)文件将登记于TLB的信息输出至文件名/work/tlb-dump. txt的文件的情况的设定例如下所示。tlb-dump-output=7work/tlb_dump· txt";(3 —2)崩溃转储文件;向使信息处理装置I紧急停止收集信息转储的文件输出TLB的信息的例子如下所示。通过以下的指定,CPU15将使信息处理装置I紧急停止时登记于TLB的信息作为信息转储的一部分收集,使信息处理装置1,即操作系统11再起动。tlb-dump-output=//crash-dump//;(3 - 3)活动转储(运转系统,收集信息转储)将在信息处理装置I工作过程中登记于TLB的信息作为信息转储的一部分收集,在持续应用信息处理装置I时的设定例如下所示。tlb-dump-output="live_dump";(3 - 4)终端(也称控制台);将登记于TLB的信息输出至控制台时的设定例如下所示。tlb_dump-output="console";<在比较例的系统中的处理的流程图>图3例示成为实施例I的比较例的系统的处理的流程图。假定比较例的系统构成与图I的情况相同。其中,能够将图3所示的处理例示为固件12上的工具的处理。另外,与图I相同,假定在CPU15内,能够利用多个虚拟CPU或物理CPU。比较例的工具从系统内指定的单一虚拟CPU或者物理CPU收集TLB信息。因此,在从全部CPU收集TLB的信息的情况下,如图3的处理所示,用户与系统的虚拟CPU数或物理CPU数相应地反复执行TLB的获取指令。此外,即便固件12上的程序发行反复TLB收集指令来代替用户反复执行的反复TLB收集指令,顺序也与图3相同。在图3的处理中,首先用户例如从终端通过固件12 ((Service Processor)等暂时停止操作系统ii (cii)。
接下来,用户判定是否从搭载于系统的全部CPU (虚拟CPU或者物理CPU)收集登记于TLB的信息(C12)。在未从搭载于系统的全部CPU (虚拟CPU或者物理CPU)收集登记于TLB的信息的情况下,用户在固件12上执行TLB收集指令。于是,从固件12向系统的CPU15通知TLB收集对象的CPU编号和TLB信息收集请求。CPU15从利用指定的CPU编号确定出的虚拟CPU或者物理CPU收集TLB信息。而且,固件12从CPU15接受收集到的TLB信息。而且,固件12将收集到的TLB信息显示于标准输出17 (C13)。在从搭载于系统的全部CPU (虚拟CPU或者物理CPU)收集了登记于TLB的信息的情况下,用户利用CPU15再次执行操作系统11。<信息处理装置I的处理的流程图>图4以及图5表示实施例I的信息处理装置I中收集TLB信息的处理的流程图。如上述那样,在信息处理装置I中,预先在设定文件231中如tlb-dump-cpu=〃all〃等那样记述作为对象的虚拟CPU (在没有虚拟CPU的结构的情况下为物理CPU)的CPU编号。于是,通过操作系统11内的信息收集部23的处理,系统管理者能够从指定的虚拟CPU或者物理CPU收集TLB信息。此外,例如在为搭载了 UltraSPARC处理器的系统的情况下,在执行信息收集部23的处理的CPU和收集对象的CPU —致时,信息收集部23执行收集TLB信息的ASI指令。收集TLB信息的ASI指令与TLB收集指令相当。此外,在为UltraSPARC处理器以外的处理器的情况下,只要执行在各个处理器中准备的TLB收集指令即可。另外,在执行信息收集部23的处理的CPU和收集对象的CPU不一致时,信息收集部23指示执行向其他的CPU发送中断的ASI指令,利用收集对象的CPU执行收集TLB信息的ASI指令。向其他的CPU发送中断的ASI指令的详细内容记载在UltraSPARC处理器的手册(UltraSPARC User’s Manual Revision 2, July 1997)的第 9 章。向其他的 CPU 发送中断的指令也被称作CPU间通信指令或交叉呼叫等。因此,在UltraSPARC处理器以外的处理器中,只要利用在各个处理器中准备的CPU间通信指令即可。图4是表示从实施例I的信息处理装置I的操作系统11的启动至停止的处理流程图。在该处理中,假定CPU15的任意一个虚拟CPU(在没有虚拟CPU的结构的情况下为物理CPU)执行操作系统11的处理(也称作进程、线程)。另外,成为TLB获取对象的虚拟CPU(在没有虚拟CPU的结构的情况下为物理CPU)也可以是执行操作系统11的处理的虚拟CPU(在没有虚拟CPU的结构的情况下为物理CPU),还可以是其他的虚拟CPU (在没有虚拟CPU的结构的情况下为物理CPU)。但在以下的说明中,仅对CPU15执行操作系统11的处理进行说明。首先,根据系统管理者的起动指示,信息处理装置I开始启动处理(K1)。此外,将起动指示例如通过固件12通知给CPU15。于是,启动处理开始后,CPU15判定是否存在TLB收集的指定(K2)。通过在启动处理中CPU15能够访问设定文件231时读取设定文件231进行Κ2的判定即可。但也可以通过将设定文件231的设定内容保持于启动用的磁盘,在启动处理时CPU15读取设定文件231的设定内容。这里,TLB收集的指定是启动处理中的核心初始化时的TLB收集的指定,即是tlb-dump-timing=〃kernel-init〃。若存在TLB收集的指定,则CPU15执行TLB收集处理(K3)。在K3中,CPU15作为TLB收集部23,执行操作系统11所包含的计算机程序。接下来,CPU15成为中断等待的状态(K4)。此外,在没有TLB收集的指定的情况下,CPU15也成为中断等待的状态。而且,若在CPU15中产生中断,则根据中断的种类启动句柄,执行与中断的种类对应的处理。例如,在中断指示紧急停止的情况下(在K5为“是”的情况),CPU15执行紧急停止的处理(K6)。而且,CPU15结束处理。
另外,在中断不是紧急停止(在K5为“否”的情况),而是系统停止的情况(在K7为“是”的情况),CPU15判定是否存在TLB收集的指定(K9)。这里,TLB收集的指定是系统停止时的TLB收集的指定。若存在TLB收集的指定,则CPU15执行TLB收集处理(K10)。而且,CPU15结束处理。此外,通过CPU15读取设定文件231进行K9的判定即可。另外,在中断不是紧急停止,也不是系统停止的情况下(在K7为“否”的情况),CPU15执行其他的处理(K8 )。然后,执行CPU15的操作系统11的进程(线程)等待中断(K4 )。图5例示紧急停止的处理(图4的K6的详细内容)。CPU15利用操作系统11所包含的程序,执行图5所示的处理。在该处理中,首先,CPU15判定是否存在TLB收集的指定(K61)。通过CPU15读取设定文件231来进行K61的判定即可。这里,TLB收集的指定是紧急停止时的TLB收集的指定,即是tlb-dump-timing=〃panic〃。而且,在存在TLB收集的指定的情况下,CPU15执行TLB收集处理(K62)。接下来,CPU15执行应急处理部22的处理(K63)。应急处理部22的处理例如指图2所示的显示/记录部221、文件同步处理部222、核心转储处理部223、再起动部224等的处理。图6表示TLB收集处理的详细例子。TLB收集处理例如是图4的K3、K10、图5的K62的处理的详细内容。CPU15执行操作系统11所包含的程序,作为TLB信息收集部23发挥功能。因此,在图6中,对TLB信息收集部23执行处理进行说明。在图6的处理中,TLB信息收集部23从设定文件231读出在参数tlb-dump-cpu以及tlb-dump-output中指定的值。而且,TLB信息收集部23判定在参数tlb-dump-cpu以及tlb-dump-output中指定的值,执行与指定的值对应的处理。例如,在参数tlb-dump-cpu的指定值为"panic"的情况下(在S12为是的情况),TLB信息收集部23从产生应急的虚拟CPU(在没有虚拟CPU的结构的情况下为物理CPU)收集TLB信息,暂时存储于存储器16上(S13)。另外,在参数tlb-dump-cpu的指定值为CPU编号的情况下(在S12为“否”,且在S14为“是”的情况),TLB信息收集部23从指定的CPU编号的虚拟CPU (在没有虚拟CPU的结构的情况下为物理CPU)收集TLB信息,暂时存储于存储器16上(S15)。另外,在参数tlb-dump-cpu的指定值为〃all〃的情况下(在S12、S14为“否”,且在S16为“是”的情况下),TLB信息收集部23从CPU15内的全部虚拟CPU (在没有虚拟CPU的结构的情况下为全部物理CPU)收集TLB信息,暂时存储于存储器16上(S17)。
另外,在参数tlb-dump-cpu的指定值为"none"的情况下(在S12、S14、S16为“否”的情况),TLB信息收集部23不执行TLB收集处理(S19)。而且,例如在参数tlb-dump-output的指定值为〃文件名〃的情况下(在S21为“是”的情况),TLB信息收集部23将暂时存储于存储器16上的收集完毕的TLB信息输出至以文件名指定的磁盘14上的文件(S22)。另外,例如在参数tlb-dump-output的指定值为〃crash_dump〃的情况下(在S21为“否”,且在S23为“是”的情况),TLB信息收集部23将暂时存储于存储器16上的收集完毕的TLB信息与系统紧急停止时的信息转储信息一起输出至标准输出17(S24)。在S24的情况下,CPU15紧急停止。 另外,例如在参数tlb-dump-output的指定值为〃live_dump〃的情况下(在S21、S23为“否”,且在S25为“是”的情况),TLB信息收集部23将暂时存储于存储器16上的收集完毕的TLB信息与没有系统紧急停止的通常运用时的信息转储信息一起输出至标准输出17 (S26)。在S26的情况下,CPU15持续基于操作系统11的处理。另外,例如在参数tlb-dump-output的指定值为"console"的情况下(在S21为“是”的情况),TLB信息收集部23将暂时存储于存储器16上的收集完毕的TLB信息直接输出至标准输出(S28)。如以上所述,在实施例I中,设置于操作系统11内的TLB信息收集部23以指定的定时收集登记于在设定文件231中指定的虚拟CPU或者物理CPU的TLB的信息。在设定文件231中的定时的指定例如包含启动时、紧急停止时、系统停止时等。另外,在设定文件231中的虚拟CPU或者物理CPU的指定例如包含基于CPU编号的指定、紧急停止了的虚拟CPU、物理的指定、全部CPU指定等。并且,TLB信息收集部23将收集到的信息存储于在设定文件231中指定的输出目的地。因此,实施例I的信息处理装置I能够以用于调查操作系统11的障碍等故障的原因的信息收集以及动作确认(回归测试)为目的,收集登记于CPU15所包含的虚拟CPU或物理CPU的TLB的信息。在收集TLB信息时,若调查的故障、动作确认有效,则CPU15能够接受系统管理者考虑的信息的指定。而且,CPU15能够挑选获取接受了指定的信息。例如,假定在搭载了 512个逻辑CPU的信息处理装置产生系统的紧急停止(应急)的情况。在比较例的方法中,系统管理者反复(512次)执行工具,收集登记于全部CPU的TLB的合计200万以上的地址转换信息。另一方面,在实施例I的信息处理装置I中,如图6所示,系统管理者能够获取指定的特定虚拟CPU或者物理CPU的TLB信息。另外,在信息处理装置I中,系统管理者能够收集成为紧急停止(应急)原因的登记于虚拟CPU或者物理CPU的TLB的信息。因此,在信息处理装置I中,与比较例的情况相比,能够大幅减少收集的数据量和收集所花费的时间。而且,如图4、图5所示,在信息处理装置I中,能够以系统管理者指定的特定的定时获取TLB信息。此外,如图4所示,信息获取的定时并不限定于启动时、系统停止时、紧急停止时,在其他的处理(图4的K8)中也可以获取信息。并且,在产生某些异常而使系统紧急停止的情况下,系统管理者为了利用固件12执行指令,可以暂时不停止操作系统11。在信息处理装置I中,系统管理者为了收集登记于TLB的信息,可以预先设定设定文件231中。因此,系统管理者在紧急停止时也能够容易收集登记于TLB的信息。实施例2参照图7,对实施例2的信息处理装置I的处理进行说明。在上述实施例I中,示出了以系统管理者指定的定时,收集指定的虚拟CPU或者物理CPU的TLB信息的处理例。在实施例2中,对产生应急时,收集系统管理者指定的虚拟CPU或者物理CPU的TLB信息的处理例进行说明。实施例2的其他构成以及作用与实施例I的情况相同。因此,针对与实施例I相同的构成要素省略其说明。另外,实施例I的附图在实施例2中也能够直接应用,进行以下的说明。图7是例示实施例2的信息处理装置I的动作的流程图。在实施例2中,对在预先在设定文件 231 中指定了 tlb-dump_cpu=〃0,2〃、tlb-dump-output=〃crash_dump〃 的情况下,产生某些异常而进行紧急停止(应急)时的处理进行说明。即,紧急停止时,收集登记于CPU编号O和CPU编号2的虚拟CPU (在没有虚拟CPU的结构的情况下为物理CPU)的TLB 的信息以及信息转储。例如,若操作系统11检测到异常,则执行信息处理装置I的紧急停止(应急)。在实施例2中,在信息处理装置I的紧急停止前,执行操作系统11的虚拟CPU(或者物理CPU)调出TLB信息收集部23。与上述实施例I相同,在实施例2中,在CPU15内的任意一个虚拟CPU (或者物理CPU)执行程序的情况下,仅指CPU15执行程序。即,CPU15执行操作系统11所包含的程序作为TLB信息收集部23。以下,作为图7的处理的执行主体为TLB信息收集部23,对处理进行说明。在图7的处理中,在操作系统11的运转中,操作系统11检测信息处理装置I的某些异常,例如硬件异常等。例如通过硬件的自陷(trap)这样的处理来检测信息处理装置I的异常。于是,在正在执行操作系统11的虚拟CPU (或者物理CPU)中,在分别与自陷对应的中断矢量中设定的处理程序被起动。而且,句柄请求操作系统11的紧急停止(S31)。若产生紧急停止的请求,则操作系统11调出TLB信息收集部23 (S32)。例如,也可以在句柄中执行S32的处理。于是,TLB信息收集部23从TLB信息收集设定文件231读取以下的信息(S33)。即,tlb-dump_cpu="0,2" ;tlb-dump-output="crash_dump〃 ;通过 S33,TLB 信息收集部 23识别指定处理对象的虚拟CPU (或者物理CPU)的CPU编号和收集的TLB信息的输出目的地。接下来,TLB信息收集部23判定是否从全部收集对象的虚拟CPU (或者物理CPU)收集了登记于TLB的信息(S34)。在未从全部收集对象的虚拟CPU (或者物理CPU)收集登记于TLB的信息的情况下,TLB信息收集部23判定执行TLB信息收集部23的处理的虚拟CPU (在没有虚拟CPU的结构的情况下为物理CPU)和收集TLB信息的对象的虚拟CPU (在没有虚拟CPU的结构的情况下为物理CPU)是否一致(S35)。在S35的判定中,在判定为不一致的情况下,TLB信息收集部23指示收集TLB信息的对象的虚拟CPU (在没有虚拟CPU的结构的情况下为物理CPU)执行收集TLB信息的ASI指令。而且,指示的结果,将收集的信息存储于存储器上。在S36,例如通过在CPU间通知中断来进行从一个虚拟CPU (或者物理CPU)向其他的虚拟CPU (或者物理CPU)指示指令的处理。CPU间的中断也被称作交叉呼叫。在接受了 CPU间的中断的其他虚拟CPU (或者物理CPU)中,与通常的中断相同,控制移动至处理程序。而且,进行与CPU间的中断对应的规定处理,例如进行登记于处理程序执行中的虚拟CPU (或者物理CPU)的TLB的信息的收集。并且,收集的信息被存储于存储器16上的规定区域,例如被存储于多个虚拟CPU间的共享存储器,交接给TLB信息收集部23执行中的虚拟CPU (或者物理CPU)。TLB信息收集部23执行中的虚拟CPU (或者物理CPU)获取通过指示了 ASI指令的执行的虚拟CPU (或者物理CPU)而收集的信息,暂时存储于存储器14 (S36)。在S35的判定中,在判定为一致的情况下,TLB信息收集部23在TLB信息收集部23执行中的虚拟CPU (或者物理CPU)中,执行收集TLB信息的ASI指令。而且,TLB信息收集部23将收集的信息暂时存储于存储器14 (S37)。而且,TLB信息收集部23使控制返S34。若从全部收集对象的虚拟CPU (或者物理CPU)收集登记于TLB的信息,则TLB信息收集部23使控制进入S38。于是,执行应急处理部22的处理,例如执行基于应急消息 的显示/存储部221的处理、基于文件系统的同步处理部222的处理、基于核心转储处理部223的处理。在实施例2中,向核心转储处理部223的输出目的地输出TLB信息收集部23所收集的TLB的信息。而且,再起动部224进行信息处理装置I的再起动(S38)。如以上所述,实施例2的TLB信息收集部23按照TLB信息收集设定文件231的设定,从CPU编号为O和2的虚拟CPU (或者物理CPU)收集登记于TLB的信息,存储于存储器上。然后,执行系统的紧急停止(应急),将收集的TLB信息作为崩溃转储输出至转储文件。此外,在实施例2中,示出了紧急停止时获取TLB信息的例子,但通过执行实施例I的图4、图5所示的处理,也能够以系统管理者指定的定时执行TLB收集处理。S卩,根据实施例2的信息处理装置1,能够在系统管理者指定的定时,例如紧急停止时,从指定的虚拟CPU或者物理CPU收集TLB信息。而且,能够将收集的TLB信息输出至系统管理者指定的输出目的地。实施例3参照图8,对实施例3的信息处理装置I的处理进行说明。在上述实施例I中,示出了以系统管理者指定的定时,获取指定的虚拟CPU或者物理CPU的TLB信息的处理例。在实施例2中,对产生应急时,收集系统管理者指定的虚拟CPU或者物理CPU的TLB信息的处理例进行了说明。但另一方面,在实施例3中,对在系统管理者按下了信息处理装置I所具备的开关13时,获取TLB信息的处理例进行说明。实施例3的其他构成以及作用与实施例I或者实施例2的情况相同。因此,对与实施例I或者实施例2相同的构成要素省略其说明。另外,实施例I、实施例2的附图在实施例3中也能够直接适用,进行以下的说明。图8是例示系统管理者按下了信息处理装置I所具备的开关13时的处理的流程图。此外,图8例如假定预先在设定文件231指定了 tlb-dump-cpu=〃al I 〃、tlb-dump-output=〃crash-dump〃的情况。但信息处理装置I的TLB收集处理并不局限于tlb-dump_cpu=〃all〃,tlb-dump-output=〃crash-dump〃,其他的设定也一样,能够应用实施例3的处理。首先,若按下设置于信息处理装置I的开关13,则固件12通知CPU15 (分配至操作系统11的虚拟CPU或者物理CPU)中断。若CPU15接收中断,则通过中断矢量,与中断对应的句柄被起动,操作系统11接收中断(S41)。若操作系统11接收与开关13的按下对应的中断,则调出TLB信息收集获取部23(S42)。TLB信息收集获取部23从设定文件231读取以下的信息(S43)。BP,tlb_dump-cpu=〃all〃 ;tlb-dump-output=〃crash_dump〃 ;通过 S43, TLB 信息收集部 23 识别指定处理对象的虚拟CPU (或者物理CPU)的CPU编号和收集的TLB信息的输出目的地。S43 - S48的处理与图7的S33 — S38的处理相同,所以省略其说明。但在图8中,收集登记于全部的虚拟CPU或者物理CPU的TLB的信息。如以上所述,若按下信息处理装置I所具备的开关13,则TLB信息收集部23根据设定文件231的指定,从指定的虚拟CPU或者物理CPU收集登记于TLB的信息,输出至指定的输出目的地。因此,信息处理装置I按照实施例3的顺序,也能够以指定的定时,从指定的对象收集TLB信息,提供给系统管理者。 例如,在产生某些异常,系统暂时挂起而不能够登陆该系统的情况、在不能够使用用于进行指令操作的终端的情况下,也产生不能够执行工具的情况,其中,该工具用于输出登记于各CPU(虚拟CPU或者物理CPU)的TLB的信息。因此,不能收集登记于各CPU的TLB的信息,所以也存在不能调查操作系统11的障碍等故障的原因的情况。根据实施例3的处理,TLB信息收集部23在计算机的管理者通过开关13指定的定时,自动收集登记于计算机的管理者预先指定的CPU的TLB的信息,存储至系统管理者指定的输出目的地。另外,在信息处理装置I暂时挂起而不能登陆的情况下、在不能使用用于进行指令操作的终端的情况下,也能够迅速实施用于调查故障的原因的信息收集以及信息处理装置I的恢复处理。实施例4在上述实施例I 一 3中,示出了以系统管理者指定的定时,获取指定的虚拟CPU或者物理CPU的TLB信息的处理例。在实施例4中,对在获取TLB信息时锁定TLB的项的处理例进行说明,其中,TLB的项用于获得存储了被执行的ASI指令的物理地址。实施例4的其他构成以及作用与实施例I的情况相同。因此,对与实施例I一 3相同的构成要素省略其说明。另外,实施例I 一 3的附图在实施例4中也能够直接适用,进行以下的说明。在操作系统11的运转中,频繁更新登记于各CPU (虚拟CPU或物理CPU)的TLB的信息。在以故障的原因调查、动作确认为目的,利用固件12的指令等外部工具收集TLB的信息的情况下,存在在信息收集处理中登记于TLB的信息被更新的情况。于是,产生收集的信息和产生问题时登记于TLB的信息或在系统管理者指定的定时登记于TLB的信息不一致的情况。而且,信息不一致的结果,也存在问题的解析产生不合适的情况。为了抑制这样的不合适的产生,例如也考虑暂时停止操作系统11。但即便通过暂时停止操作系统11的处理,也存在更新登记于各CPU (虚拟CPU或物理CPU)的TLB的信息的可能性。图9是例示对与配置TLB信息收集部23的命令编码和数据区域的存储区域对应的TLB的项进行锁定的处理的流程图。例如,在为搭载了 UltraSPARC处理器的系统的情况下,在TLB设置有锁定位。因此,实施例3的信息处理装置I为了在将TLB信息收集部23的命令编码(ASI指令)和数据区域配置于存储器上时,不删除与配置的存储器上的地址对应的TLB项地设定锁定位。设定了锁定位的TLB项成为改写禁止,维持TLB项的信息。
此外,也可以代替锁定TLB项从而使用锁定的TLB项,而在与预先锁定的TLB项对应的存储区域配置TLB信息收集部23的命令编码(ASI指令)和数据区域。另外,还可以在与预先登记(锁定)于TLB的虚拟地址对应的实际地址的存储器中配置命令编码(ASI指令)和数据区域。总之,实施例4的处理抑制执行用于TLB信息的收集的命令编码(ASI指令)所带来的副作用而引起的TLB项的信息的更新。例如在操作系统11的启动时,起动操作系统11的虚拟CPU或者物理CPU执行图9的处理即可。以下,对CPU15执行图9的处理进行说明。在图9的处理中,首先,CPU15确保用于配置TLB信息收集部23的虚拟存储区域
(SI)。接下来,CPU15确保与虚拟存储区域对应的物理存储区域(S2)。
接下来,CPU15创建逻辑/物理地址转换信息,设定锁定位,登记至TLB (S3)。CPU15锁定登记了信息的项,作为抑制登记完毕的信息的改写单元,执行S3的处理。而且,CPU15将与TLB信息收集部23对应的操作系统11的程序,和收集的信息的储存目的地配置于与锁定的TLB对应的存储器14上(S4)。CPU15执行S4的处理作为登记TLB访问命令的单元。通过以上的处理,能够抑制利用TLB信息收集部23的执行收集TLB信息的ASI命令的发行所伴随着的TLB项的删除或更新。即,抑制对通过执行信息收集部23的处理而登记于TLB的信息进行更新。因此,系统管理者在所希望的定时能够获取登记于所希望的TLB项的/[目息的可能性提闻。锁定TLB的项的方法(锁定位)的详细内容记载于UltraSPARC处理器的手册(UltraSPARC User’s Manual Revision 2, July 1997)的第 6 章。但在 UltraSPARC 处理器以外的处理器中,根据各个处理器的体系结构,也提供锁定TLB的项的功能。因此,实施例4的处理在UltraSPARC处理器以外的处理器中也能够以相同的顺序应用。在实施例4的信息处理装置I中能够使操作系统11运转地收集/保存登记于CPU的TLB的信息。在以往的方法中,为了防止登记于TLB的信息的更新,需要暂时停止操作系统,即便通过该停止处理,也存在更新登记于TLB的信息的可能性。但在实施例4的信息处理装置I中,在将TLB信息收集处理的命令编码和数据区域配置于存储器上时,为了不从TLB删除对应的地址转换信息而进行锁定,或预先配置在登记(锁定)于TLB的虚拟地址上。因此,抑制通过执行命令编码而更新登记于TLB的信息。因此,为了 TLB收集,即便不停止操作系统11,也能够收集故障的原因调查、动作确认所需要的信息。《计算机能够读取的记录介质》能够在计算机等可读取的记录介质上记录使计算机以外的设备、装置(以下称计算机等)实现上述任意一个功能的程序。而且,能够通过使计算机等读入并执行该记录介质的程序,来提供该功能。这里,计算机等可读取的记录介质指通过电、磁、光、机械或者化学作用积蓄数据、程序等信息,并能够从计算机等读取的记录介质。这样的记录介质中作为能够从计算机等取下的记录介质,例如有软盘、光磁盘、CD — R0M、CD — R / W、DVD、BD (Blu-ray Disc),DAT(Digital Audio Tape)、8mm磁带、闪存等存储卡等。另外,作为固定于计算机等的记录介质有硬盘、ROM等。
附图标记说明 I…信息处理装置;11···操作系统;12···固件;13···开关;14…磁盘;15…CPU ;16…存储器;17…标准输出;21···中断处理部;22…应急处理部;23··· Β信息收集部;231··· TLB信息收集用设定文件
权利要求
1.一种信息处理装置,其特征在于,具备 分别具有TLB即旁路转换缓冲器的多个处理部; 获取所述多个处理部中对所述TLB的信息进行收集的处理部的指定和对所述TLB的信息进行收集的定时的指定的单元;以及 在所述指定的定时从所述指定的处理部收集所述TLB的信息的单元。
2.根据权利要求I所述的信息处理装置,其特征在于,还具备 锁定包含于所述TLB并登记了信息的项,抑制登记完毕的信息的改写的单元; 在通过所述锁定的项访问的存储器上登记收集所述TLB的信息的TLB收集命令的单元。
3.一种信息处理方法,其特征在于, 具备分别具有TLB即旁路转换缓冲器的多个处理部的计算机执行如下步骤 获取所述多个处理部中对所述TLB的信息进行收集的处理部的指定和对所述TLB的信息进行收集的定时的指定的步骤; 在所述指定的定时从所述指定的处理部收集所述TLB的信息的步骤。
4.根据权利要求3所述的信息处理方法,其特征在于,还执行如下步骤 锁定包含于所述TLB并登记了信息的项,抑制登记完毕的信息的改写的步骤; 在通过所述锁定的TLB的项访问的存储器上登记收集所述TLB的信息的TLB收集命令的步骤。
5.一种程序,其特征在于, 使具备分别具有TLB (Translation Lookaside Buffer)的多个处理部的计算机执行如下步骤 获取所述多个处理部中对所述TLB的信息进行收集的处理部的指定和对所述TLB的信息进行收集的定时的指定的步骤; 在所述指定的定时从所述指定的处理部收集所述TLB的信息的步骤。
6.根据权利要求5所述的程序,其特征在于,还执行如下步骤 锁定包含于所述TLB并登记了信息的项,抑制登记完毕的信息的改写的步骤; 在通过所述锁定的TLB的项访问的存储器上登记收集所述TLB的信息的TLB收集命令的步骤。
全文摘要
信息处理装置具备分别具有TLB(Translation Lookaside Buffer旁路转换缓冲器)的多个处理部;获取多个处理部中收集TLB信息的处理部的指定和收集TLB信息的定时的指定的单元;以及在指定的定时从指定的处理部收集TLB信息的单元。
文档编号G06F11/34GK102792280SQ20108006523
公开日2012年11月21日 申请日期2010年3月9日 优先权日2010年3月9日
发明者安乐隆史, 山名史哲, 近藤浩 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1