From nobody Wed Feb 11 03:44:22 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1710000005185370.75106243267555; Sat, 9 Mar 2024 08:00:05 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1riz5O-0007RT-R8; Sat, 09 Mar 2024 10:58:10 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1riz5J-0007PX-CF; Sat, 09 Mar 2024 10:58:06 -0500 Received: from isrv.corpit.ru ([86.62.121.231]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1riz5H-0004Jt-3O; Sat, 09 Mar 2024 10:58:05 -0500 Received: from tsrv.corpit.ru (tsrv.tls.msk.ru [192.168.177.2]) by isrv.corpit.ru (Postfix) with ESMTP id 2C4A654533; Sat, 9 Mar 2024 18:58:40 +0300 (MSK) Received: from tls.msk.ru (mjt.wg.tls.msk.ru [192.168.177.130]) by tsrv.corpit.ru (Postfix) with SMTP id AFE37944C5; Sat, 9 Mar 2024 18:57:43 +0300 (MSK) Received: (nullmailer pid 1694677 invoked by uid 1000); Sat, 09 Mar 2024 15:57:29 -0000 From: Michael Tokarev To: qemu-devel@nongnu.org Cc: Ani Sinha , qemu-trivial@nongnu.org, Michael Tokarev Subject: [PULL 11/11] docs/acpi/bits: add some clarity and details while also improving formating Date: Sat, 9 Mar 2024 18:57:29 +0300 Message-Id: <20240309155729.1694607-12-mjt@tls.msk.ru> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240309155729.1694607-1-mjt@tls.msk.ru> References: <20240309155729.1694607-1-mjt@tls.msk.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=86.62.121.231; envelope-from=mjt@tls.msk.ru; helo=isrv.corpit.ru X-Spam_score_int: -68 X-Spam_score: -6.9 X-Spam_bar: ------ X-Spam_report: (-6.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1710000007537100003 Content-Type: text/plain; charset="utf-8" From: Ani Sinha Update bios-bits docs to add more details on why a pre-OS environment for testing bioses is useful. Add author's FOSDEM talk link. Also improve the formating of the document while at it. Signed-off-by: Ani Sinha Reviewed-by: Michael Tokarev Signed-off-by: Michael Tokarev --- docs/devel/acpi-bits.rst | 55 ++++++++++++++++++++++++++++------------ 1 file changed, 39 insertions(+), 16 deletions(-) diff --git a/docs/devel/acpi-bits.rst b/docs/devel/acpi-bits.rst index 9677b0098f..1ec394f5fb 100644 --- a/docs/devel/acpi-bits.rst +++ b/docs/devel/acpi-bits.rst @@ -1,26 +1,48 @@ =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D ACPI/SMBIOS avocado tests using biosbits =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D - +************ +Introduction +************ Biosbits is a software written by Josh Triplett that can be downloaded from https://biosbits.org/. The github codebase can be found -`here `__. It is a software = that executes -the bios components such as acpi and smbios tables directly through acpica -bios interpreter (a freely available C based library written by Intel, +`here `__. It is a software = that +executes the bios components such as acpi and smbios tables directly throu= gh +acpica bios interpreter (a freely available C based library written by Int= el, downloadable from https://acpica.org/ and is included with biosbits) witho= ut an -operating system getting involved in between. +operating system getting involved in between. Bios-bits has python integra= tion +with grub so actual routines that executes bios components can be written = in +python instead of bash-ish (grub's native scripting language). There are several advantages to directly testing the bios in a real physic= al -machine or VM as opposed to indirectly discovering bios issues through the -operating system. For one thing, the OSes tend to hide bios problems from = the -end user. The other is that we have more control of what we wanted to test -and how by directly using acpica interpreter on top of the bios on a runni= ng -system. More details on the inspiration for developing biosbits and its re= al -life uses can be found in [#a]_ and [#b]_. +machine or in a VM as opposed to indirectly discovering bios issues throug= h the +operating system (the OS). Operating systems tend to bypass bios problems = and +hide them from the end user. We have more control of what we wanted to tes= t and +how by being as close to the bios on a running system as possible without a +complicated software component such as an operating system coming in betwe= en. +Another issue is that we cannot exercise bios components such as ACPI and +SMBIOS without being in the highest hardware privilege level, ring 0 for +example in case of x86. Since the OS executes from ring 0 whereas normal u= ser +land software resides in unprivileged ring 3, operating system must be mod= ified +in order to write our test routines that exercise and test the bios. This = is +not possible in all cases. Lastly, test frameworks and routines are prefer= ably +written using a high level scripting language such as python. OSes and +OS modules are generally written using low level languages such as C and +low level assembly machine language. Writing test routines in a low level +language makes things more cumbersome. These and other reasons makes using +bios-bits very attractive for testing bioses. More details on the inspirat= ion +for developing biosbits and its real life uses can be found in [#a]_ and [= #b]_. + For QEMU, we maintain a fork of bios bits in gitlab along with all the -dependent submodules here: https://gitlab.com/qemu-project/biosbits-bits +dependent submodules `here = `__. This fork contains numerous fixes, a newer acpica and changes specific to running this avocado QEMU tests using bits. The author of this document -is the sole maintainer of the QEMU fork of bios bits repo. +is the sole maintainer of the QEMU fork of bios bits repository. For more +information, please see author's `FOSDEM talk on this bios-bits based test +framework `__. + +********************************* +Description of the test framework +********************************* =20 Under the directory ``tests/avocado/``, ``acpi-bits.py`` is a QEMU avocado test that drives all this. @@ -120,8 +142,9 @@ Under ``tests/avocado/`` as the root we have: (b) Add a SPDX license header. (c) Perform modifications to the test. =20 - Commits (a), (b) and (c) should go under separate commits so that the o= riginal - test script and the changes we have made are separated and clear. + Commits (a), (b) and (c) preferably should go under separate commits so= that + the original test script and the changes we have made are separated and + clear. (a) and (b) can sometimes be combined into a single step. =20 The test framework will then use your modified test script to run the t= est. No further changes would be needed. Please check the logs to make sure = that @@ -141,4 +164,4 @@ References: ----------- .. [#a] https://blog.linuxplumbersconf.org/2011/ocw/system/presentations/8= 67/original/bits.pdf .. [#b] https://www.youtube.com/watch?v=3D36QIepyUuhg - +.. [#c] https://fosdem.org/2024/schedule/event/fosdem-2024-2262-exercising= -qemu-generated-acpi-smbios-tables-using-biosbits-from-within-a-guest-vm-/ --=20 2.39.2