This patch series improves the ACPI nsrepair2 sorting implementation
and adds comprehensive KUnit tests.
Patch 1 replaces the O(n²) bubble sort algorithm in acpi_ns_sort_list()
with the kernel's sort_r() function, which uses heapsort to achieve
O(n log n) time complexity. This improves performance when sorting
large ACPI package lists (e.g., _PSS, _TSS) while reducing code
complexity by leveraging the existing kernel sort API.
Patch 2 adds KUnit tests to verify the repair functions in nsrepair2.c,
covering:
- ACPI operand object creation (integer, string, buffer, package)
- Namespace node creation and NAMESEG comparison
- Package structures for _PSS, _CST, _ALR, _PRT methods
- _HID string format verification
- _FDE buffer expansion
- Sorting logic with ascending/descending order
Nick Huang (2):
ACPI: nsrepair2: Replace O(n²) bubble sort with O(n log n) sort_r()
ACPI: acpica: Add KUnit tests for nsrepair2 repair functions
drivers/acpi/acpica/nsrepair2.c | 87 ++-
drivers/acpi/acpica/nsrepair2_test.c | 854 +++++++++++++++++++++++++++
2 files changed, 916 insertions(+), 25 deletions(-)
create mode 100644 drivers/acpi/acpica/nsrepair2_test.c
--
2.43.0