Re: [PATCH v3 3/3] kasan: delete CONFIG_KASAN_MODULE_TEST

From: Andrey Konovalov
Date: Sun Oct 13 2024 - 16:26:12 EST


On Sun, Oct 13, 2024 at 8:20 PM Sabyrzhan Tasbolatov
<snovitoll@xxxxxxxxx> wrote:
>
> Since we've migrated all tests to the KUnit framework,
> we can delete CONFIG_KASAN_MODULE_TEST and mentioning of it in the
> documentation as well.
>
> I've used the online translator to modify the non-English documentation.
>
> Signed-off-by: Sabyrzhan Tasbolatov <snovitoll@xxxxxxxxx>
> ---
> Changes v2 -> v3:
> - applied Andrey's patch to modify further kasan.rst.
> ---
> Documentation/dev-tools/kasan.rst | 23 ++++++++-----------
> .../translations/zh_CN/dev-tools/kasan.rst | 20 +++++++---------
> .../translations/zh_TW/dev-tools/kasan.rst | 21 ++++++++---------
> lib/Kconfig.kasan | 7 ------
> mm/kasan/kasan.h | 2 +-
> mm/kasan/report.c | 2 +-
> 6 files changed, 28 insertions(+), 47 deletions(-)
>
> diff --git a/Documentation/dev-tools/kasan.rst b/Documentation/dev-tools/kasan.rst
> index d7de44f5339..0a1418ab72f 100644
> --- a/Documentation/dev-tools/kasan.rst
> +++ b/Documentation/dev-tools/kasan.rst
> @@ -511,19 +511,14 @@ Tests
> ~~~~~
>
> There are KASAN tests that allow verifying that KASAN works and can detect
> -certain types of memory corruptions. The tests consist of two parts:
> +certain types of memory corruptions.
>
> -1. Tests that are integrated with the KUnit Test Framework. Enabled with
> -``CONFIG_KASAN_KUNIT_TEST``. These tests can be run and partially verified
> +All KASAN tests are integrated with the KUnit Test Framework and can be enabled
> +via ``CONFIG_KASAN_KUNIT_TEST``. The tests can be run and partially verified
> automatically in a few different ways; see the instructions below.
>
> -2. Tests that are currently incompatible with KUnit. Enabled with
> -``CONFIG_KASAN_MODULE_TEST`` and can only be run as a module. These tests can
> -only be verified manually by loading the kernel module and inspecting the
> -kernel log for KASAN reports.
> -
> -Each KUnit-compatible KASAN test prints one of multiple KASAN reports if an
> -error is detected. Then the test prints its number and status.
> +Each KASAN test prints one of multiple KASAN reports if an error is detected.
> +Then the test prints its number and status.
>
> When a test passes::
>
> @@ -550,16 +545,16 @@ Or, if one of the tests failed::
>
> not ok 1 - kasan
>
> -There are a few ways to run KUnit-compatible KASAN tests.
> +There are a few ways to run the KASAN tests.
>
> 1. Loadable module
>
> - With ``CONFIG_KUNIT`` enabled, KASAN-KUnit tests can be built as a loadable
> - module and run by loading ``kasan_test.ko`` with ``insmod`` or ``modprobe``.
> + With ``CONFIG_KUNIT`` enabled, the tests can be built as a loadable module
> + and run by loading ``kasan_test.ko`` with ``insmod`` or ``modprobe``.
>
> 2. Built-In
>
> - With ``CONFIG_KUNIT`` built-in, KASAN-KUnit tests can be built-in as well.
> + With ``CONFIG_KUNIT`` built-in, the tests can be built-in as well.
> In this case, the tests will run at boot as a late-init call.
>
> 3. Using kunit_tool
> diff --git a/Documentation/translations/zh_CN/dev-tools/kasan.rst b/Documentation/translations/zh_CN/dev-tools/kasan.rst
> index 4491ad2830e..fd2e3afbdfa 100644
> --- a/Documentation/translations/zh_CN/dev-tools/kasan.rst
> +++ b/Documentation/translations/zh_CN/dev-tools/kasan.rst
> @@ -422,16 +422,12 @@ KASAN连接到vmap基础架构以懒清理未使用的影子内存。
> ~~~~
>
> 有一些KASAN测试可以验证KASAN是否正常工作并可以检测某些类型的内存损坏。
> -测试由两部分组成:
>
> -1. 与KUnit测试框架集成的测试。使用 ``CONFIG_KASAN_KUNIT_TEST`` 启用。
> -这些测试可以通过几种不同的方式自动运行和部分验证;请参阅下面的说明。
> +所有 KASAN 测试都与 KUnit 测试框架集成,可通过 ``CONFIG_KASAN_KUNIT_TEST`` 启用。
> +测试可以通过几种不同的方式自动运行和部分验证;请参阅以下说明。
>
> -2. 与KUnit不兼容的测试。使用 ``CONFIG_KASAN_MODULE_TEST`` 启用并且只能作为模块
> -运行。这些测试只能通过加载内核模块并检查内核日志以获取KASAN报告来手动验证。
> -
> -如果检测到错误,每个KUnit兼容的KASAN测试都会打印多个KASAN报告之一,然后测试打印
> -其编号和状态。
> +如果检测到错误,每个 KASAN 测试都会打印多份 KASAN 报告中的一份。
> +然后测试会打印其编号和状态。
>
> 当测试通过::
>
> @@ -458,16 +454,16 @@ KASAN连接到vmap基础架构以懒清理未使用的影子内存。
>
> not ok 1 - kasan
>
> -有几种方法可以运行与KUnit兼容的KASAN测试。
> +有几种方法可以运行 KASAN 测试。
>
> 1. 可加载模块
>
> - 启用 ``CONFIG_KUNIT`` 后,KASAN-KUnit测试可以构建为可加载模块,并通过使用
> - ``insmod`` 或 ``modprobe`` 加载 ``kasan_test.ko`` 来运行。
> + 启用 ``CONFIG_KUNIT`` 后,可以将测试构建为可加载模块
> + 并通过使用 ``insmod`` 或 ``modprobe`` 加载 ``kasan_test.ko`` 来运行。
>
> 2. 内置
>
> - 通过内置 ``CONFIG_KUNIT`` ,也可以内置KASAN-KUnit测试。在这种情况下,
> + 通过内置 ``CONFIG_KUNIT``,测试也可以内置。
> 测试将在启动时作为后期初始化调用运行。
>
> 3. 使用kunit_tool
> diff --git a/Documentation/translations/zh_TW/dev-tools/kasan.rst b/Documentation/translations/zh_TW/dev-tools/kasan.rst
> index ed342e67d8e..35b7fd18aa4 100644
> --- a/Documentation/translations/zh_TW/dev-tools/kasan.rst
> +++ b/Documentation/translations/zh_TW/dev-tools/kasan.rst
> @@ -404,16 +404,13 @@ KASAN連接到vmap基礎架構以懶清理未使用的影子內存。
> ~~~~
>
> 有一些KASAN測試可以驗證KASAN是否正常工作並可以檢測某些類型的內存損壞。
> -測試由兩部分組成:
>
> -1. 與KUnit測試框架集成的測試。使用 ``CONFIG_KASAN_KUNIT_TEST`` 啓用。
> -這些測試可以通過幾種不同的方式自動運行和部分驗證;請參閱下面的說明。
> +所有 KASAN 測試均與 KUnit 測試框架集成,並且可以啟用
> +透過 ``CONFIG_KASAN_KUNIT_TEST``。可以運行測試並進行部分驗證
> + 以幾種不同的方式自動進行;請參閱下面的說明。
>
> -2. 與KUnit不兼容的測試。使用 ``CONFIG_KASAN_MODULE_TEST`` 啓用並且只能作爲模塊
> -運行。這些測試只能通過加載內核模塊並檢查內核日誌以獲取KASAN報告來手動驗證。
> -
> -如果檢測到錯誤,每個KUnit兼容的KASAN測試都會打印多個KASAN報告之一,然後測試打印
> -其編號和狀態。
> +如果偵測到錯誤,每個 KASAN 測試都會列印多個 KASAN 報告之一。
> +然後測試列印其編號和狀態。
>
> 當測試通過::
>
> @@ -440,16 +437,16 @@ KASAN連接到vmap基礎架構以懶清理未使用的影子內存。
>
> not ok 1 - kasan
>
> -有幾種方法可以運行與KUnit兼容的KASAN測試。
> +有幾種方法可以執行 KASAN 測試。
>
> 1. 可加載模塊
>
> - 啓用 ``CONFIG_KUNIT`` 後,KASAN-KUnit測試可以構建爲可加載模塊,並通過使用
> - ``insmod`` 或 ``modprobe`` 加載 ``kasan_test.ko`` 來運行。
> + 啟用 ``CONFIG_KUNIT`` 後,測試可以建置為可載入模組
> + 並且透過使用 ``insmod`` 或 ``modprobe`` 來載入 ``kasan_test.ko`` 來運作。
>
> 2. 內置
>
> - 通過內置 ``CONFIG_KUNIT`` ,也可以內置KASAN-KUnit測試。在這種情況下,
> + 透過內建 ``CONFIG_KUNIT``,測試也可以內建。
> 測試將在啓動時作爲後期初始化調用運行。
>
> 3. 使用kunit_tool
> diff --git a/lib/Kconfig.kasan b/lib/Kconfig.kasan
> index 98016e137b7..f82889a830f 100644
> --- a/lib/Kconfig.kasan
> +++ b/lib/Kconfig.kasan
> @@ -195,13 +195,6 @@ config KASAN_KUNIT_TEST
> For more information on KUnit and unit tests in general, please refer
> to the KUnit documentation in Documentation/dev-tools/kunit/.
>
> -config KASAN_MODULE_TEST
> - tristate "KUnit-incompatible tests of KASAN bug detection capabilities"
> - depends on m && KASAN && !KASAN_HW_TAGS
> - help
> - A part of the KASAN test suite that is not integrated with KUnit.
> - Incompatible with Hardware Tag-Based KASAN.
> -
> config KASAN_EXTRA_INFO
> bool "Record and report more information"
> depends on KASAN
> diff --git a/mm/kasan/kasan.h b/mm/kasan/kasan.h
> index f438a6cdc96..b7e4b81421b 100644
> --- a/mm/kasan/kasan.h
> +++ b/mm/kasan/kasan.h
> @@ -568,7 +568,7 @@ static inline void kasan_kunit_test_suite_end(void) { }
>
> #endif /* CONFIG_KASAN_KUNIT_TEST */
>
> -#if IS_ENABLED(CONFIG_KASAN_KUNIT_TEST) || IS_ENABLED(CONFIG_KASAN_MODULE_TEST)
> +#if IS_ENABLED(CONFIG_KASAN_KUNIT_TEST)
>
> bool kasan_save_enable_multi_shot(void);
> void kasan_restore_multi_shot(bool enabled);
> diff --git a/mm/kasan/report.c b/mm/kasan/report.c
> index b48c768acc8..3e48668c3e4 100644
> --- a/mm/kasan/report.c
> +++ b/mm/kasan/report.c
> @@ -132,7 +132,7 @@ static bool report_enabled(void)
> return !test_and_set_bit(KASAN_BIT_REPORTED, &kasan_flags);
> }
>
> -#if IS_ENABLED(CONFIG_KASAN_KUNIT_TEST) || IS_ENABLED(CONFIG_KASAN_MODULE_TEST)
> +#if IS_ENABLED(CONFIG_KASAN_KUNIT_TEST)
>
> bool kasan_save_enable_multi_shot(void)
> {
> --
> 2.34.1
>

Reviewed-by: Andrey Konovalov <andreyknvl@xxxxxxxxx>