Test method, device and equipment for memory funnel error reporting mechanism and medium

By configuring the funnel reporting cycle and quantity threshold in the server, and using a memory error injection tool to automatically inject errors and analyze system logs, the problem of low testing efficiency of the memory funnel error reporting mechanism is solved, and efficient and accurate automated testing is achieved.

CN116401086BActive Publication Date: 2026-08-04INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
INSPUR SUZHOU INTELLIGENT TECH CO LTD
Filing Date
2023-04-07
Publication Date
2026-08-04

AI Technical Summary

Technical Problem

In existing technologies, testing of memory funnel error reporting mechanisms mainly relies on manual labor, which results in low testing efficiency, a large workload, and difficulty in long-term testing.

Method used

By configuring the funnel reporting cycle and quantity threshold in the basic input/output system, generating test cases using a memory error injection tool, automatically injecting correctable errors, and obtaining the system event logs of the baseboard management controller, automated testing is achieved without manual intervention.

Benefits of technology

It improves testing efficiency, reduces manual testing costs, enables long-term testing, and ensures the accuracy and consistency of test results.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116401086B_ABST
    Figure CN116401086B_ABST
Patent Text Reader

Abstract

The application relates to the technical field of server testing, and discloses a memory funnel error reporting mechanism test method, a device, equipment and a medium. The method comprises the following steps: based on a to-be-tested memory funnel error reporting mechanism, a funnel reporting period and a funnel quantity threshold value are configured in a basic input / output system; based on the funnel reporting period, the funnel quantity threshold value and a single error injection duration of a memory error injection tool, a memory funnel error test case is generated; using the memory error injection tool, correctable errors are injected into the memory according to the memory funnel error test case, and a system event log in a baseboard management controller is acquired; based on the relationship between memory error records in the log and expected memory error records corresponding to the memory funnel error test case, a test result of the to-be-tested memory funnel error reporting mechanism is determined. Thus, the automatic testing of the memory funnel error reporting mechanism is realized, manual intervention is not required in the middle of the testing process, the testing efficiency is improved, the manual testing cost is reduced, and long-term testing can be realized.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of server testing, and specifically to testing methods, apparatus, equipment, and media for memory funnel error reporting mechanisms. Background Technology

[0002] The memory funnel error reporting mechanism refers to the process of handling missed correctable errors (CEs) based on a configured memory error threshold per unit time. The number of missed CEs triggers a log report, avoiding triggering an alarm for every CE, while still ensuring timely reporting when a large number of errors occur. In the server field, with the advent of the memory funnel error reporting mechanism, memory error reporting has become increasingly accurate and rigorous. However, for testers, current testing of the memory funnel error reporting mechanism is mainly done manually, which is inefficient, labor-intensive, and difficult to implement for long-term testing. Summary of the Invention

[0003] In view of this, the present invention provides a testing method, apparatus, equipment and medium for a memory funnel error reporting mechanism, in order to solve the problems of low testing efficiency, large testing workload and difficulty in long-term testing caused by relying on manual testing of the memory funnel error reporting mechanism in related technologies.

[0004] In a first aspect, the present invention provides a testing method for a memory funnel error reporting mechanism, the method comprising:

[0005] Based on the error reporting mechanism of the memory funnel under test, configure the funnel reporting period and funnel number threshold in the basic input / output system;

[0006] Based on the funnel reporting cycle, the funnel number threshold, and the single injection duration of the memory injection tool, generate memory funnel error test cases;

[0007] Using a memory injection tool, correctable errors are injected into memory according to memory funnel error test cases, and system event logs in the baseboard management controller are obtained;

[0008] Based on the relationship between memory error records in the system event log and expected memory error records corresponding to memory funnel error test cases, the test results of the memory funnel error reporting mechanism under test are determined.

[0009] By configuring the input / output system according to the memory funnel error reporting mechanism under test, corresponding memory funnel error test cases are generated. Then, an automated error injection test is performed using a memory error injection tool according to the memory funnel error test cases. The automated testing of the memory funnel error reporting mechanism is achieved by analyzing the system event logs in the baseboard management controller. No manual intervention is required during the test, which greatly improves the testing efficiency, reduces the cost of manual testing, and enables long-term testing.

[0010] In one optional implementation, memory funnel error test cases are generated based on the funnel reporting cycle, the funnel quantity threshold, and the single injection duration of the memory injection tool, including:

[0011] Based on the funnel reporting cycle and the duration of a single error injection, the first error injection waiting time for a single funnel reporting cycle and the second error injection waiting time for different funnel reporting cycles are determined.

[0012] The first and second injection error counts are determined based on the funnel number threshold, where the first injection error count is equal to the funnel number threshold and the second injection error count is less than the funnel number threshold.

[0013] Within a single funnel reporting cycle, the number of first and second errors are combined according to the first error waiting time to generate multiple single-cycle memory funnel error test cases.

[0014] Within different funnel reporting cycles, the number of first and second error injections are combined according to the second error injection waiting time to generate multiple memory funnel error test cases with different cycles.

[0015] This allows for the determination of error injection time intervals under different error injection scenarios by utilizing the funnel reporting cycle and the duration of a single error injection, in order to meet the comprehensive testing requirements of the memory funnel error reporting mechanism and ensure the accuracy of the final test results.

[0016] In one optional implementation, a memory injection tool is used to inject correctable errors into memory according to memory funnel error test cases, and the system event log in the baseboard management controller is obtained, including:

[0017] Use a memory injection tool to inject correctable errors into memory according to the current memory funnel error test case, and obtain the system event logs in the baseboard management controller related to the injection time of the current memory funnel error test case and the type of correctable error injected.

[0018] By utilizing the error injection time and the type of correctable error injected in the current memory funnel error test cases to accurately filter the system event logs, the consistency between the system event logs and the memory funnel error test cases can be guaranteed, thereby further improving the accuracy of the final test results.

[0019] In one alternative implementation, after obtaining the system event log in the baseboard management controller related to the error injection time and the type of correctable error injected for the current memory funnel error test case, the method further includes:

[0020] Reboot the operating system;

[0021] After the operating system restarts, the next memory funnel error test case is updated to the current memory funnel test case, and the process of injecting correctable errors into memory using the memory injection tool according to the current memory funnel error test case is returned until all memory funnel error test cases are tested.

[0022] Therefore, after each memory funnel error test case is completed, the funnel reporting time is reset by restarting the operating system to ensure that subsequent tests are not affected and to guarantee the accuracy of the test results.

[0023] In one optional implementation, before generating memory funnel error test cases based on the funnel reporting cycle, the funnel quantity threshold, and the single injection duration of the memory injection tool, the method further includes:

[0024] The basic input / output system and the baseboard management controller are synchronized based on the operating system time.

[0025] By synchronizing the operating system, basic input / output system, and baseboard management controller, the consistency of time throughout the entire automated testing process is ensured, thus avoiding the problem of time asynchrony affecting test results and improving the accuracy of test results.

[0026] In one optional implementation, the test results of the memory funnel error reporting mechanism under test are determined based on the relationship between memory error records in the system event log and expected memory error records corresponding to memory funnel error test cases, including:

[0027] Determine whether the memory error records are completely consistent with the expected memory error records corresponding to the memory funnel error test cases;

[0028] When the memory error record is completely consistent with the expected memory error record corresponding to the memory funnel error test case, the test of the memory funnel error reporting mechanism under test is deemed to have passed.

[0029] If the memory error record does not completely match the expected memory error record corresponding to the memory funnel error test case, it is determined that the test of the memory funnel error reporting mechanism under test has failed.

[0030] By comparing the actual memory error record in the baseboard management controller after the error is injected with the expected result to determine whether the test has passed, the verification of the memory funnel error reporting mechanism is realized in an automated way without the need for manual intervention.

[0031] In an optional implementation, the method further includes: when it is determined that the test of the memory funnel error reporting mechanism under test fails, extracting target memory funnel error test cases that are inconsistent with the corresponding expected memory error records;

[0032] Analysis of test failure reasons for the memory funnel error reporting mechanism under test based on target memory funnel error test cases.

[0033] By analyzing the memory funnel error test cases where the actual memory error records in the baseboard management controller after error injection are inconsistent with the expected results, the reasons for test failures can be obtained. This provides a reference for developers to adjust the memory funnel error reporting mechanism under test, and also provides a reference for testers to manually verify the test effect of the overall test plan.

[0034] Secondly, the present invention provides a testing device for a memory funnel error reporting mechanism, the device comprising:

[0035] The first processing module is used to configure the funnel reporting period and funnel number threshold in the basic input / output system based on the funnel error reporting mechanism of the memory under test.

[0036] The second processing module is used to generate memory funnel error test cases based on the funnel reporting cycle, the funnel number threshold, and the single injection duration of the memory injection tool.

[0037] The third processing module is used to inject correctable errors into memory according to memory funnel error test cases using a memory injection tool, and to obtain system event logs from the baseboard management controller.

[0038] The fourth processing module is used to determine the test results of the memory funnel error reporting mechanism under test based on the relationship between memory error records in the system event log and expected memory error records corresponding to memory funnel error test cases.

[0039] In one optional implementation, the second processing module includes:

[0040] The first processing unit is used to determine the first error injection waiting time for a single funnel reporting cycle and the second error injection waiting time for different funnel reporting cycles based on the funnel reporting cycle and the single error injection duration.

[0041] The second processing unit is used to determine the first number of injection errors and the second number of injection errors based on the funnel number threshold, wherein the first number of injection errors is equal to the funnel number threshold and the second number of injection errors is less than the funnel number threshold.

[0042] The third processing unit is used to combine the first error injection quantity and the second error injection quantity according to the first error injection waiting time within a single funnel reporting cycle to generate multiple single-cycle memory funnel error test cases.

[0043] The fourth processing unit is used to combine the first and second error injection quantities according to the second error injection waiting time within different funnel reporting cycles to generate multiple memory funnel error test cases with different cycles.

[0044] In one optional implementation, the third processing module includes:

[0045] The fifth processing unit is used to inject correctable errors into memory according to the current memory funnel error test case using a memory injection tool, and to obtain system event logs in the baseboard management controller related to the injection time of the current memory funnel error test case and the type of correctable error injected.

[0046] In one optional implementation, the third processing module further includes:

[0047] The sixth processing unit is used to restart the operating system;

[0048] The seventh processing unit is used to update the next memory funnel error test case to the current memory funnel test case after the operating system restarts, and return to the steps of injecting correctable errors into memory according to the current memory funnel error test case using the memory injection tool, until all memory funnel error test cases are tested.

[0049] In one optional implementation, the testing apparatus for the memory funnel error reporting mechanism further includes:

[0050] The fifth processing module is used to synchronize the basic input / output system and the baseboard management controller with the operating system time as the reference.

[0051] In one optional implementation, the fourth processing module includes:

[0052] The eighth processing unit is used to determine whether the memory error record is completely consistent with the expected memory error record corresponding to the memory funnel error test case;

[0053] The ninth processing unit is used to determine that the memory funnel error reporting mechanism under test has passed the test when the memory error record is completely consistent with the expected memory error record corresponding to the memory funnel error test case.

[0054] The tenth processing unit is used to determine that the test of the memory funnel error reporting mechanism has failed when the memory error record is not completely consistent with the expected memory error record corresponding to the memory funnel error test case.

[0055] In one optional implementation, the testing apparatus for the memory funnel error reporting mechanism further includes:

[0056] The sixth processing module is used to extract target memory funnel error test cases that are inconsistent with the corresponding expected memory error records when it is determined that the test of the memory funnel error reporting mechanism under test has failed.

[0057] The seventh processing module is used to analyze the reasons for test failures of the memory funnel error reporting mechanism under test based on the target memory funnel error test cases.

[0058] Thirdly, the present invention provides a computer device, comprising: a memory and a processor, the memory and the processor being communicatively connected to each other, the memory storing computer instructions, and the processor executing the computer instructions to perform the method described in the first aspect or any corresponding embodiment thereof.

[0059] Fourthly, the present invention provides a computer-readable storage medium storing computer instructions for causing a computer to perform the method described in the first aspect or any corresponding embodiment thereof. Attached Figure Description

[0060] To more clearly illustrate the specific embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the specific embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of the present invention. For those skilled in the art, other drawings can be obtained from these drawings without creative effort.

[0061] Figure 1 This is a flowchart illustrating the testing method of the memory funnel error reporting mechanism according to an embodiment of the present invention;

[0062] Figure 2 This is a flowchart illustrating a test method for another memory funnel error reporting mechanism according to an embodiment of the present invention;

[0063] Figure 3 This is a flowchart illustrating a test method for another memory funnel error reporting mechanism according to an embodiment of the present invention;

[0064] Figure 4 This is a structural block diagram of a test apparatus for a memory funnel error reporting mechanism according to an embodiment of the present invention;

[0065] Figure 5 This is a schematic diagram of the hardware structure of a computer device according to an embodiment of the present invention. Detailed Implementation

[0066] To make the objectives, technical solutions, and advantages of the embodiments of the present invention clearer, the technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.

[0067] In the server field, with the emergence of memory funnel error reporting mechanisms, memory error reporting mechanisms have become more accurate and rigorous. However, for testers, the current testing of memory funnel error reporting mechanisms is mainly done manually, which is inefficient, labor-intensive, and makes long-term testing difficult.

[0068] This invention primarily utilizes the operating system of computer devices, such as servers, to automatically inject CE (Error Correction) errors into memory to verify the functionality of the server's memory funnel error reporting mechanism. Specifically, it records the time and number of CE errors to be injected, uses an error injection tool for automated error injection, and then queries relevant BMC (Browser Management System) logs to check for corresponding error records. The results are then compared with the expected results, enabling automated testing to verify the memory funnel error reporting mechanism.

[0069] According to an embodiment of the present invention, a test method embodiment for a memory funnel error reporting mechanism is provided. It should be noted that the steps shown in the flowchart in the accompanying drawings can be executed in a computer system such as a set of computer-executable instructions. Furthermore, although a logical order is shown in the flowchart, in some cases, the steps shown or described may be executed in a different order than that shown here.

[0070] This embodiment provides a testing method for a memory funnel error reporting mechanism, which can be used in the operating system of the aforementioned computer devices, such as servers. Figure 1 This is a flowchart of a test method for a memory funnel error reporting mechanism according to an embodiment of the present invention, such as... Figure 1 As shown, the process includes the following steps:

[0071] Step S101: Configure the funnel reporting period and funnel number threshold in the basic input / output system based on the funnel error reporting mechanism of the memory to be tested.

[0072] Specifically, the memory funnel error reporting mechanism under test consists of parameters such as the funnel reporting cycle and the funnel number threshold. This can be configured using tools like ByoCfg, which modify the setup configuration values ​​related to the memory funnel in the Basic Input Output System (BIOS). For example, this includes setting the funnel number threshold (also known as the memory error threshold) to 10 and the funnel reporting cycle (also known as the funnel time) to 120 seconds. After setting, save and exit. Furthermore, in practical applications, setup configuration values ​​related to the memory funnel also include enabling error management and setting the number of funnels, where the memory error threshold is consistent with the number of funnels.

[0073] Step S102: Generate memory funnel error test cases based on the funnel reporting cycle, the funnel quantity threshold, and the single injection duration of the memory injection tool.

[0074] The memory funnel error test cases include information such as the number of memory error injections (CE) and the corresponding injection time. For example, one memory funnel error test case is: inject 10 CE errors at once, wait 30 seconds, and then inject 10 CE errors again.

[0075] Step S103: Use the memory injection tool to inject correctable errors into memory according to the memory funnel error test cases, and obtain the system event log in the baseboard management controller.

[0076] Specifically, after a CE error is injected into memory, the relevant system event logs (hereinafter referred to as SEL logs) in the Baseboard Management Controller (BMC) can be obtained through the IPMI command.

[0077] Step S104: Based on the relationship between memory error records in the system event log and expected memory error records corresponding to memory funnel error test cases, determine the test results of the memory funnel error reporting mechanism under test.

[0078] Specifically, assuming the memory funnel error reporting mechanism under test passes the test (i.e., there are no test issues), each memory funnel error test case will correspond to an expected memory error record. For example, assuming the funnel number threshold (also called the funnel number) is set to 10, and the funnel reporting period (also called the funnel time) is 120 seconds, and the memory funnel error test case is: injecting 10 CE errors at once, waiting 30 seconds, and then injecting another 10 CE errors, the corresponding expected memory error record would be two error reporting records occurring within 1320 seconds.

[0079] The testing method for the memory funnel error reporting mechanism provided in this embodiment configures the input / output system according to the memory funnel error reporting mechanism under test, generates corresponding memory funnel error test cases, and uses a memory error injection tool to perform automated error injection testing according to the memory funnel error test cases. The automated testing of the memory funnel error reporting mechanism is achieved by analyzing the system event logs in the baseboard management controller. No manual intervention is required during the testing process, which greatly improves testing efficiency, reduces manual testing costs, and enables long-term testing.

[0080] This embodiment provides a testing method for a memory funnel error reporting mechanism, which can be used in the aforementioned computer equipment. Figure 2 This is a flowchart of a test method for a memory funnel error reporting mechanism according to an embodiment of the present invention, such as... Figure 2 As shown, the process includes the following steps:

[0081] Step S201: Configure the funnel reporting period and funnel number threshold in the basic input / output system based on the funnel error reporting mechanism of the memory under test. For details, please refer to [link to relevant documentation]. Figure 1 Step S101 of the illustrated embodiment will not be described again here.

[0082] Step S202: Generate memory funnel error test cases based on the funnel reporting cycle, the funnel quantity threshold, and the single injection duration of the memory injection tool.

[0083] Specifically, step S202 includes:

[0084] Step S2021: Based on the funnel reporting cycle and the single error injection duration, determine the first error injection waiting time for a single funnel reporting cycle and the second error injection waiting time for different funnel reporting cycles.

[0085] Specifically, since the memory injection tool requires a certain amount of time to perform CE error injection, to avoid the CE error injection affecting the funnel reporting cycle determination, it is necessary to satisfy the conditions that the first injection waiting time is less than the single funnel reporting cycle and the second injection waiting time for different funnel reporting cycles is greater than the single funnel reporting cycle, while also ensuring that the memory injection tool can complete the CE injection within the specified time. For example, assuming the funnel reporting cycle is 120s and the maximum single injection time is 10s, the first injection waiting time can be set within the range of 10s to 120s, such as 30s, 40s, etc. The second injection waiting time can be set within the range of 1 greater than 130s, such as 150s, 160s, etc. The specific settings can be flexibly configured according to actual testing needs, and this invention is not limited to these limitations.

[0086] Step S2022: Determine the first number of injection errors and the second number of injection errors based on the funnel number threshold.

[0087] The first number of errors is equal to the funnel number threshold, and the second number of errors is less than the funnel number threshold. For example, the first number of errors is 10 CE errors, and the second number of errors is 5 CE errors, 6 CE errors, etc.

[0088] Step S2023: Within a single funnel reporting cycle, combine the first error injection quantity and the second error injection quantity according to the first error injection waiting time to generate multiple single-cycle memory funnel error test cases.

[0089] Specifically, within a single funnel reporting cycle, the combination of the first and second error injection quantities in the memory funnel error test cases includes three combination methods: injecting two CE errors of the first error injection quantity at intervals of the first error injection waiting time within a single funnel reporting cycle, injecting two CE errors of the second error injection quantity, and injecting one CE error of the first error injection quantity and one CE error of the second error injection quantity.

[0090] Step S2024: Within different funnel reporting cycles, combine the first error injection quantity and the second error injection quantity according to the second error injection waiting time to generate multiple memory funnel error test cases with different cycles.

[0091] Specifically, within different funnel reporting cycles, the combination of the first and second error injection quantities in the memory funnel error test cases includes three combinations: injecting two CE errors of the first error injection quantity at intervals of the second error injection waiting time within different funnel reporting cycles; injecting two CE errors of the second error injection quantity; and injecting one CE error of the first error injection quantity and one CE error of the second error injection quantity. In practical applications, the memory funnel error test case that injects two CE errors of the first error injection quantity at intervals of the second error injection waiting time within different funnel reporting cycles has the same testing purpose and effect as the above-mentioned memory funnel error test case that injects two CE errors of the first error injection quantity at intervals of the first error injection waiting time within a single funnel reporting cycle. This test case can be deleted, and the present invention is not limited thereto.

[0092] It should be noted that the type of CE error injected in the above memory funnel error test cases can be selected according to the actual server testing requirements. It can be selected from the pre-built CE error library according to the category requirements, or it can be randomly selected. This invention is not limited to this.

[0093] The testing method for the memory funnel error reporting mechanism provided in this embodiment determines the error injection time interval under different error injection scenarios by utilizing the funnel reporting cycle and the duration of a single error injection, so as to meet the comprehensive testing requirements of the memory funnel error reporting mechanism and ensure the accuracy of the final test results.

[0094] Step S203: Use the memory injection tool to inject correctable errors into memory according to the memory funnel error test cases, and obtain the system event log in the baseboard management controller.

[0095] Specifically, step S203 above can inject correctable errors into memory according to the current memory funnel error test case using a memory injection tool, and obtain the system event log in the baseboard management controller related to the injection time of the current memory funnel error test case and the type of correctable error injected.

[0096] For example, injecting correctable errors into memory using a memory bug injection tool according to memory funnel error test cases includes the following test cases:

[0097] (1) Inject a number of CE errors equal to the memory error threshold at once, and inject another number of CE errors equal to the memory error threshold within a funnel time.

[0098] (2) Inject a number of CE errors equal to the memory error threshold at once, and inject a number of CE errors less than the memory error threshold again within a funnel time.

[0099] (3) Inject a number of CE errors less than the memory error threshold at once, and inject another number of CE errors less than the memory error threshold within a funnel time.

[0100] (4) Inject a number of CE errors equal to the memory error threshold at once, wait for a certain period of time (greater than one funnel time), and then inject a number of CE errors less than the memory error threshold again.

[0101] (5) Inject fewer CE errors than the memory error threshold at once, wait for a certain period of time (greater than one funnel time), and then inject fewer CE errors than the memory error threshold again.

[0102] By utilizing the error injection time and the type of correctable error injected in the current memory funnel error test cases to accurately filter the system event logs, the consistency between the system event logs and the memory funnel error test cases can be guaranteed, thereby further improving the accuracy of the final test results.

[0103] Furthermore, after obtaining the system event logs related to the injection time and type of correctable error injected in the current memory funnel error test case from the baseboard management controller, the operating system is restarted. After the operating system restarts, the next memory funnel error test case is updated to the current memory funnel test case, and the process of injecting correctable errors into memory using the memory injection tool according to the current memory funnel error test case is returned until all memory funnel error test cases are tested.

[0104] Therefore, after each memory funnel error test case is completed, the funnel reporting time is reset by restarting the operating system to ensure that subsequent tests are not affected and to guarantee the accuracy of the test results.

[0105] Step S204: Based on the relationship between memory error records in the system event log and the expected memory error records corresponding to the memory funnel error test cases, determine the test results of the memory funnel error reporting mechanism under test. For details, please refer to [link to relevant documentation]. Figure 1 Step S104 of the illustrated embodiment will not be described again here.

[0106] Specifically, step S204 includes:

[0107] Step S2041: Determine whether the memory error record is completely consistent with the expected memory error record corresponding to the memory funnel error test case.

[0108] Step S2042: When the memory error record is completely consistent with the expected memory error record corresponding to the memory funnel error test case, the test of the memory funnel error reporting mechanism under test is determined to be passed.

[0109] Step S2043: If the memory error record is not completely consistent with the expected memory error record corresponding to the memory funnel error test case, it is determined that the test of the memory funnel error reporting mechanism under test has failed.

[0110] By comparing the actual memory error record in the baseboard management controller after the error is injected with the expected result to determine whether the test has passed, the verification of the memory funnel error reporting mechanism is realized in an automated way without the need for manual intervention.

[0111] This embodiment provides a testing method for a memory funnel error reporting mechanism, which can be used in the aforementioned computer equipment. Figure 3 This is a flowchart of a test method for a memory funnel error reporting mechanism according to an embodiment of the present invention, such as... Figure 3 As shown, the process includes the following steps:

[0112] Step S301: Configure the funnel reporting period and funnel number threshold in the basic input / output system based on the funnel error reporting mechanism of the memory under test. For details, please refer to [link to relevant documentation]. Figure 1 Step S101 of the illustrated embodiment will not be described again here.

[0113] Step S305: Synchronize the basic input / output system and the baseboard management controller with the operating system time as the reference.

[0114] Specifically, the clock signals of the operating system are used as a reference to calibrate the basic input / output system and the board management controller, thereby synchronizing the clock signals of the three.

[0115] By synchronizing the operating system, basic input / output system, and baseboard management controller, the consistency of time throughout the entire automated testing process is ensured, thus avoiding the problem of time asynchrony affecting test results and improving the accuracy of test results.

[0116] Step S302: Based on the funnel reporting cycle, the funnel quantity threshold, and the single injection duration of the memory injection tool, generate memory funnel error test cases. For details, please refer to [link to relevant documentation]. Figure 1 Step S102 of the illustrated embodiment will not be described again here.

[0117] Step S303: Using a memory error injection tool, inject correctable errors into memory according to the memory funnel error test cases, and obtain the system event log from the baseboard management controller. For details, please refer to [link to relevant documentation]. Figure 1 Step S103 of the illustrated embodiment will not be described again here.

[0118] Step S304: Based on the relationship between memory error records in the system event log and the expected memory error records corresponding to the memory funnel error test cases, determine the test results of the memory funnel error reporting mechanism under test. For details, please refer to [link to relevant documentation]. Figure 1 Step S104 of the illustrated embodiment will not be described again here.

[0119] Step S306: When it is determined that the test of the memory funnel error reporting mechanism fails, extract the target memory funnel error test case that is inconsistent with the corresponding expected memory error record.

[0120] Step S307: Analyze the reasons for test failure of the memory funnel error reporting mechanism under test based on the target memory funnel error test cases.

[0121] Specifically, since the target memory funnel error test cases include parameters such as the injection type, injection time, and injection quantity of CE errors, when the memory error record is inconsistent with the corresponding expected memory error record, the test failure can be inferred by inverting the memory funnel error test cases, such as: inappropriate test case settings or inappropriate memory funnel error reporting mechanism.

[0122] By analyzing the memory funnel error test cases where the actual memory error records in the baseboard management controller after error injection are inconsistent with the expected results, the reasons for test failures can be obtained. This provides a reference for developers to adjust the memory funnel error reporting mechanism under test, and also provides a reference for testers to manually verify the test effect of the overall test plan.

[0123] The following section will provide a detailed explanation of the specific implementation process of the testing method for the memory funnel error reporting mechanism provided in this embodiment of the invention, using specific application examples.

[0124] For example, the server's memory leak error reporting mechanism can be verified by automatically injecting CE errors into memory using a shell script. The specific process is as follows:

[0125] 1. Perform setup settings. Use a tool to modify setup configuration values, such as ByoCfg, to modify the setup configuration values ​​related to memory funnels in the BIOS, including enabling error management, setting the memory error threshold to 10, the funnel time to 120s, and the number of funnels to 10. After setting, save and exit.

[0126] 2. Time Synchronization. Based on the operating system's time, the time of the Basic Input / Output System (BIOS) and the Baseboard Management Controller (BMC) is synchronized to ensure that the operating system, BIOS, and BMC are in sync.

[0127] 3. Record the number and time of injected CE errors. Before each error injection, record the number of errors and the injection time to facilitate later checking if there are corresponding error records in the baseboard management controller. After the error injection is completed, use the IPMI command to retrieve the memory error record in the SEL log to determine whether the error should be reported.

[0128] 4. Use a memory error injection tool such as DramErrorInjector to continuously inject CE errors into memory at regular time intervals. The specific test steps for the memory funnel error reporting mechanism are as follows:

[0129] (1) Inject 10 CE errors at once, wait 30 seconds, and then inject 10 CE errors again.

[0130] The expected result is: after a successful error injection, the first error injection of BMC will result in a memory error record, and the second error injection of BMC will also result in a memory error record.

[0131] (2) Inject 10 CE errors at once, wait 30 seconds, and then inject 5 more CE errors.

[0132] The expected result is: after a successful error injection, the first error injection in the BMC will result in a memory error record, while the second error injection in the BMC will not result in a memory error record.

[0133] (3) Inject 5 CE errors at once, wait 30 seconds, and then inject 5 CE errors again.

[0134] The expected result is: after a successful error injection, there will be no memory error record in the BMC after the first error injection, and there will also be no memory error record in the BMC after the second error injection.

[0135] (4) Inject 10 CE errors at once, wait 180s, and then inject 5 more CE errors.

[0136] The expected result is: after a successful error injection, the first error injection in the BMC will result in a memory error record, while the second error injection in the BMC will not result in a memory error record.

[0137] (5) Inject 5 CE errors at once, wait 120s, and then inject 5 CE errors again.

[0138] The expected result is: after a successful error injection, there will be no memory error record in the BMC after the first error injection, and there will also be no memory error record in the BMC after the second error injection.

[0139] 5. Restart the operating system after each error injection test. This is to reset the funnel time and ensure that subsequent tests are not affected.

[0140] 6. After each error is logged, the relevant SEL log in the BMC is obtained through the IPMI command. The BMC error record is determined by checking whether there is a corresponding log based on the time and type of the error.

[0141] This invention designs a test process for the memory funnel error reporting mechanism. After error injection, it retrieves memory error records from the SEL log to determine whether the error should be reported, and compares the result with the expected result to determine the test's success. This automated approach to verify the memory funnel error reporting mechanism eliminates the need for manual intervention. At the software level, automated verification of the memory funnel error reporting mechanism is achieved through shell scripts, significantly improving testing efficiency and shortening the development cycle. For the verification of the memory funnel error reporting mechanism, this invention enables automated testing, greatly improving testing efficiency and reducing manual testing costs.

[0142] This embodiment also provides a testing device for a memory funnel error reporting mechanism. This device is used to implement the above embodiments and preferred embodiments, and details already described will not be repeated. As used below, the term "module" can be a combination of software and / or hardware that implements a predetermined function. Although the device described in the following embodiments is preferably implemented in software, hardware implementation, or a combination of software and hardware, is also possible and contemplated.

[0143] This embodiment provides a testing device for a memory funnel error reporting mechanism, such as... Figure 4 As shown, it includes:

[0144] The first processing module 401 is used to configure the funnel reporting period and funnel number threshold in the basic input / output system based on the funnel error reporting mechanism of the memory under test.

[0145] The second processing module 402 is used to generate memory funnel error test cases based on the funnel reporting cycle, the funnel number threshold, and the single injection duration of the memory injection tool.

[0146] The third processing module 403 is used to inject correctable errors into memory according to memory funnel error test cases using a memory injection tool, and to obtain system event logs in the baseboard management controller.

[0147] The fourth processing module 404 is used to determine the test results of the memory funnel error reporting mechanism under test based on the relationship between memory error records in the system event log and expected memory error records corresponding to memory funnel error test cases.

[0148] In some optional implementations, the second processing module 402 includes:

[0149] The first processing unit is used to determine the first error injection waiting time for a single funnel reporting cycle and the second error injection waiting time for different funnel reporting cycles based on the funnel reporting cycle and the single error injection duration.

[0150] The second processing unit is used to determine the first number of injection errors and the second number of injection errors based on the funnel number threshold, wherein the first number of injection errors is equal to the funnel number threshold and the second number of injection errors is less than the funnel number threshold.

[0151] The third processing unit is used to combine the first error injection quantity and the second error injection quantity according to the first error injection waiting time within a single funnel reporting cycle to generate multiple single-cycle memory funnel error test cases.

[0152] The fourth processing unit is used to combine the first and second error injection quantities according to the second error injection waiting time within different funnel reporting cycles to generate multiple memory funnel error test cases with different cycles.

[0153] In some optional implementations, the third processing module 403 includes:

[0154] The fifth processing unit is used to inject correctable errors into memory according to the current memory funnel error test case using a memory injection tool, and to obtain system event logs in the baseboard management controller related to the injection time of the current memory funnel error test case and the type of correctable error injected.

[0155] In some optional implementations, the third processing module 403 further includes:

[0156] The sixth processing unit is used to restart the operating system;

[0157] The seventh processing unit is used to update the next memory funnel error test case to the current memory funnel test case after the operating system restarts, and return to the steps of injecting correctable errors into memory according to the current memory funnel error test case using the memory injection tool, until all memory funnel error test cases are tested.

[0158] In some optional implementations, the testing apparatus for a memory funnel error reporting mechanism provided in this embodiment further includes:

[0159] The fifth processing module is used to synchronize the basic input / output system and the baseboard management controller with the operating system time as the reference.

[0160] In some alternative implementations, the fourth processing module 404 includes:

[0161] The eighth processing unit is used to determine whether the memory error record is completely consistent with the expected memory error record corresponding to the memory funnel error test case;

[0162] The ninth processing unit is used to determine that the memory funnel error reporting mechanism under test has passed the test when the memory error record is completely consistent with the expected memory error record corresponding to the memory funnel error test case.

[0163] The tenth processing unit is used to determine that the test of the memory funnel error reporting mechanism has failed when the memory error record is not completely consistent with the expected memory error record corresponding to the memory funnel error test case.

[0164] In some alternative implementations, the testing apparatus for the memory funnel error reporting mechanism further includes:

[0165] The sixth processing module is used to extract target memory funnel error test cases that are inconsistent with the corresponding expected memory error records when it is determined that the test of the memory funnel error reporting mechanism under test has failed.

[0166] The seventh processing module is used to analyze the reasons for test failures of the memory funnel error reporting mechanism under test based on the target memory funnel error test cases.

[0167] The test device for the memory funnel error reporting mechanism in this embodiment is presented in the form of a functional unit. Here, a unit refers to an ASIC circuit, a processor and memory that execute one or more software or fixed programs, and / or other devices that can provide the above functions.

[0168] Further functional descriptions of the above modules and units are the same as those in the corresponding embodiments described above, and will not be repeated here.

[0169] This invention also provides a computer device having the above-described features. Figure 4The test setup for the memory funnel error reporting mechanism is shown.

[0170] Please see Figure 5 , Figure 5 This is a schematic diagram of the structure of a computer device provided in an optional embodiment of the present invention, such as... Figure 5 As shown, the computer device includes one or more processors 10, memory 20, and interfaces for connecting the components, including high-speed interfaces and low-speed interfaces. The components communicate with each other via different buses and can be mounted on a common motherboard or otherwise installed as needed. The processors can process instructions executed within the computer device, including instructions stored in or on memory to display graphical information of a GUI on external input / output devices (such as display devices coupled to the interfaces). In some alternative implementations, multiple processors and / or multiple buses can be used with multiple memories and multiple memory modules, if desired. Similarly, multiple computer devices can be connected, each providing some of the necessary operations (e.g., as a server array, a group of blade servers, or a multiprocessor system). Figure 5 Take a processor 10 as an example.

[0171] Processor 10 may be a central processing unit, a network processor, or a combination thereof. Processor 10 may further include a hardware chip. The hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof. The programmable logic device may be a complex programmable logic device (CAMP), a field-programmable gate array (FPGA), a general-purpose array logic (GDA), or any combination thereof.

[0172] The memory 20 stores instructions executable by at least one processor 10 to cause at least one processor 10 to perform the method shown in the above embodiments.

[0173] The memory 20 may include a program storage area and a data storage area. The program storage area may store the operating system and applications required for at least one function; the data storage area may store data created based on the use of the computer device as shown by a landing page for an app. Furthermore, the memory 20 may include high-speed random access memory and may also include non-transitory memory, such as at least one disk storage device, flash memory device, or other non-transitory solid-state storage device. In some alternative embodiments, the memory 20 may optionally include memory remotely located relative to the processor 10, which can be connected to the computer device via a network. Examples of such networks include, but are not limited to, the Internet, intranets, local area networks, mobile communication networks, and combinations thereof.

[0174] The memory 20 may include volatile memory, such as random access memory; the memory may also include non-volatile memory, such as flash memory, hard disk or solid-state drive; the memory 20 may also include a combination of the above types of memory.

[0175] The computer device also includes a communication interface 30 for communicating with other devices or communication networks.

[0176] This invention also provides a computer-readable storage medium. The methods described above according to embodiments of the invention can be implemented in hardware or firmware, or implemented as computer code that can be recorded on a storage medium, or implemented as computer code downloaded via a network and originally stored on a remote storage medium or a non-transitory machine-readable storage medium and then stored on a local storage medium. Thus, the methods described herein can be processed by software stored on a storage medium using a general-purpose computer, a dedicated processor, or programmable or dedicated hardware. The storage medium can be a magnetic disk, optical disk, read-only memory, random access memory, flash memory, hard disk, or solid-state drive, etc.; further, the storage medium can also include combinations of the above types of memory. It is understood that computers, processors, microprocessor controllers, or programmable hardware include storage components capable of storing or receiving software or computer code, which, when accessed and executed by the computer, processor, or hardware, implements the methods shown in the above embodiments.

[0177] Although embodiments of the invention have been described in conjunction with the accompanying drawings, those skilled in the art can make various modifications and variations without departing from the spirit and scope of the invention, and such modifications and variations all fall within the scope defined by the appended claims.

Claims

1. A test method for a memory funnel error reporting mechanism, characterized in that, The method includes: Based on the error reporting mechanism of the memory funnel under test, configure the funnel reporting period and funnel number threshold in the basic input / output system; Based on the funnel reporting cycle, the funnel number threshold, and the single injection duration of the memory injection tool, generate memory funnel error test cases; Using the memory injection tool, correctable errors are injected into memory according to the memory funnel error test cases, and system event logs in the baseboard management controller are obtained; Based on the relationship between the memory error records in the system event log and the expected memory error records corresponding to the memory funnel error test cases, the test results of the memory funnel error reporting mechanism under test are determined. The generation of memory funnel error test cases, based on the funnel reporting cycle, funnel quantity threshold, and single-injection duration of the memory injection tool, includes: Based on the funnel reporting cycle and the single error injection duration, the first error injection waiting time for a single funnel reporting cycle and the second error injection waiting time for different funnel reporting cycles are determined. The first error injection waiting time is less than the single funnel reporting cycle, and the second error injection waiting time is greater than the single funnel reporting cycle, ensuring that the memory error injection tool completes the error injection within the specified time. The first number of injection errors and the second number of injection errors are determined based on the funnel number threshold, wherein the first number of injection errors is equal to the funnel number threshold and the second number of injection errors is less than the funnel number threshold. Within a single funnel reporting cycle, the number of the first error and the number of the second error are combined according to the first error waiting time to generate multiple single-cycle memory funnel error test cases. Within different funnel reporting cycles, the first error injection quantity and the second error injection quantity are combined according to the second error injection waiting time to generate multiple memory funnel error test cases with different cycles.

2. The method according to claim 1, characterized in that, The process of injecting correctable errors into memory using the memory injection tool according to the memory funnel error test cases and obtaining the system event log in the baseboard management controller includes: The memory injection tool is used to inject correctable errors into memory according to the current memory funnel error test case, and the system event logs related to the injection time and the type of correctable error injected in the baseboard management controller are obtained.

3. The method according to claim 2, characterized in that, After obtaining the system event logs in the baseboard management controller related to the error injection time and the type of correctable error injected for the current memory funnel error test case, the method further includes: Reboot the operating system; After the operating system restarts, the next memory funnel error test case is updated to the current memory funnel test case, and the process returns to the step of injecting correctable errors into memory using the memory injection tool according to the current memory funnel error test case, until all memory funnel error test cases are tested.

4. The method according to claim 1, characterized in that, Before generating memory funnel error test cases based on the funnel reporting cycle, funnel quantity threshold, and single-injection duration of the memory injection tool, the method further includes: The basic input / output system and the baseboard management controller are synchronized based on the operating system time.

5. The method according to claim 1, characterized in that, The determination of the test results of the memory funnel error reporting mechanism under test, based on the relationship between memory error records in the system event log and expected memory error records corresponding to the memory funnel error test cases, includes: Determine whether the memory error record is completely consistent with the expected memory error record corresponding to the memory funnel error test case; When the memory error record is completely consistent with the expected memory error record corresponding to the memory funnel error test case, the test of the memory funnel error reporting mechanism under test is determined to be passed. If the memory error record is not completely consistent with the expected memory error record corresponding to the memory funnel error test case, it is determined that the test of the memory funnel error reporting mechanism under test has failed.

6. The method according to claim 1, characterized in that, The method further includes: When it is determined that the test of the memory funnel error reporting mechanism fails, the target memory funnel error test case that is inconsistent with the memory error record and the corresponding expected memory error record is extracted; Based on the target memory funnel error test cases, analyze the reasons for the test failure of the memory funnel error reporting mechanism under test.

7. A testing device for a memory funnel error reporting mechanism, characterized in that, The device includes: The first processing module is used to configure the funnel reporting period and funnel number threshold in the basic input / output system based on the funnel error reporting mechanism of the memory under test. The second processing module is used to generate memory funnel error test cases based on the funnel reporting cycle, the funnel number threshold, and the single injection duration of the memory injection tool. The third processing module is used to inject correctable errors into memory according to the memory funnel error test cases using the memory injection tool, and to obtain the system event log in the baseboard management controller. The fourth processing module is used to determine the test result of the memory funnel error reporting mechanism under test based on the relationship between the memory error records in the system event log and the expected memory error records corresponding to the memory funnel error test cases. The second processing module includes: The first processing unit is used to determine the first error injection waiting time for a single funnel reporting cycle and the second error injection waiting time for different funnel reporting cycles based on the funnel reporting cycle and the single error injection duration. The first error injection waiting time is less than the single funnel reporting cycle, and the second error injection waiting time is greater than the single funnel reporting cycle, so as to ensure that the memory error injection tool completes the error injection within the specified time. The second processing unit is used to determine the first number of injection errors and the second number of injection errors based on the funnel number threshold, wherein the first number of injection errors is equal to the funnel number threshold and the second number of injection errors is less than the funnel number threshold. The third processing unit is used to combine the first error injection quantity and the second error injection quantity according to the first error injection waiting time within a single funnel reporting cycle to generate multiple single-cycle memory funnel error test cases. The fourth processing unit is used to combine the first and second error injection quantities according to the second error injection waiting time within different funnel reporting cycles to generate multiple memory funnel error test cases with different cycles.

8. A computer device, characterized in that, include: A memory and a processor, the memory and the processor being communicatively connected to each other, the memory storing computer instructions, the processor executing the computer instructions to perform the method of any one of claims 1 to 6.

9. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer instructions for causing a computer to perform the method of any one of claims 1 to 6.