bits-750 released with these changes:

  • Add new Python interfaces to read and write memory. The new bits.memory function returns a memory buffer as an object, usable with struct.unpack_from for reading and struct.pack_into for writing. bits.memory_addr returns the address of a memory buffer.

  • Add support for SMBIOS:

    • Print basic BIOS/system identification to the log.
    • Add an explore menu option to dump raw SMBIOS structures.
    • Preliminary API for decoding SMBIOS structures.
  • Add the Python module uuid.

  • Port hardware P-State tests to Python, and make them available on all Nehalem and newer CPUs.

  • Add more P-state tests

    • No duplicate P-states
    • No duplicate frequencies
    • Sorted in descending order of power dissipation
  • Add a runtime test for ACPI _PSS: transition to the target state and measure the CPU frequency.

  • Add a Python function to get the current MWAIT state for a CPU; use it to save and restore MWAIT states around P-state tests that need to modify MWAIT to test turbo.

  • Clean up test detail output logic and APIs.

    Make testsuite.test always return the test result as a bool, rather than using the return value to indicate whether the caller should print detail. Simplify callers accordingly, now that they no longer need to check the test result separately.

    Instead, testsuite now remembers the result of the last test, and testsuite.print_detail checks verbosity and that last result, acting as a no-op if the test should not print detail. This allows most callers to use print_detail unconditionally; callers only need to check the detail level (with the new testsuite.show_detail) if they want to avoid doing expensive computations to produce the detail text.

  • README: Document backported Python patch, and document the remaining patches included in GRUB.

  • Fix the GRUB distribution shipped with BITS to actually have the backported patches that README says it does. This change allows BITS to compile with newer versions of GCC.

  • Bugfixes and cleanups:

    • When printing a cpuid_result, show the registers in hex.
    • Fix output formatting to wrap each line of detail separately, to avoid breaking pre-formatted text such as tables.
    • Fix bclk computations in hardware Pstate test.
    • Factor out memory dumping function from acpi module into a new bits.dumpmem function for use elsewhere.