[PATCH v2] mini-os: put sanity_check() under CONFIG_TEST

Juergen Gross posted 1 patch 1 month, 2 weeks ago
Failed in applying to current master (apply log)
include/lib.h | 2 ++
mm.c          | 2 ++
test.c        | 1 +
3 files changed, 5 insertions(+)
[PATCH v2] mini-os: put sanity_check() under CONFIG_TEST
Posted by Juergen Gross 1 month, 2 weeks ago
Hide the sanity_check() function, as it is used nowhere. By putting it
under #ifdef CONFIG_TEST it will stay around, but it won't be
included in normal production builds.

Call sanity_check() from the periodic thread of the test app, causing
a sanity check every second.

Since any application linked with Mini-OS can't call sanity_check()
(there is no EXPORT_SYMBOL for it), there is zero chance of breaking
any use case.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- don't remove it, but just hide it (Samuel Thibault)
---
 include/lib.h | 2 ++
 mm.c          | 2 ++
 test.c        | 1 +
 3 files changed, 5 insertions(+)

diff --git a/include/lib.h b/include/lib.h
index abd4e9ab..de67bab0 100644
--- a/include/lib.h
+++ b/include/lib.h
@@ -152,8 +152,10 @@ do {                                                           \
 
 #define BUG_ON(x) ASSERT(!(x))
 
+#ifdef CONFIG_TEST
 /* Consistency check as much as possible. */
 void sanity_check(void);
+#endif
 
 /* Get own domid. */
 domid_t get_domid(void);
diff --git a/mm.c b/mm.c
index 4aa0c6ca..a5d3f5e5 100644
--- a/mm.c
+++ b/mm.c
@@ -395,6 +395,7 @@ void fini_mm(void)
 {
 }
 
+#ifdef CONFIG_TEST
 void sanity_check(void)
 {
     int x;
@@ -410,3 +411,4 @@ void sanity_check(void)
         }
     }
 }
+#endif
diff --git a/test.c b/test.c
index 465c54e8..4dd6e260 100644
--- a/test.c
+++ b/test.c
@@ -185,6 +185,7 @@ static void periodic_thread(void *p)
     {
         gettimeofday(&tv, NULL);
         printk("T(s=%ld us=%ld)\n", tv.tv_sec, tv.tv_usec);
+        sanity_check();
         msleep(1000);
     }
 }
-- 
2.43.0
Re: [PATCH v2] mini-os: put sanity_check() under CONFIG_TEST
Posted by Samuel Thibault 1 month, 2 weeks ago
Juergen Gross, le jeu. 25 juil. 2024 08:42:54 +0200, a ecrit:
> Hide the sanity_check() function, as it is used nowhere. By putting it
> under #ifdef CONFIG_TEST it will stay around, but it won't be
> included in normal production builds.
> 
> Call sanity_check() from the periodic thread of the test app, causing
> a sanity check every second.
> 
> Since any application linked with Mini-OS can't call sanity_check()
> (there is no EXPORT_SYMBOL for it), there is zero chance of breaking
> any use case.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

Thanks!

> ---
> V2:
> - don't remove it, but just hide it (Samuel Thibault)
> ---
>  include/lib.h | 2 ++
>  mm.c          | 2 ++
>  test.c        | 1 +
>  3 files changed, 5 insertions(+)
> 
> diff --git a/include/lib.h b/include/lib.h
> index abd4e9ab..de67bab0 100644
> --- a/include/lib.h
> +++ b/include/lib.h
> @@ -152,8 +152,10 @@ do {                                                           \
>  
>  #define BUG_ON(x) ASSERT(!(x))
>  
> +#ifdef CONFIG_TEST
>  /* Consistency check as much as possible. */
>  void sanity_check(void);
> +#endif
>  
>  /* Get own domid. */
>  domid_t get_domid(void);
> diff --git a/mm.c b/mm.c
> index 4aa0c6ca..a5d3f5e5 100644
> --- a/mm.c
> +++ b/mm.c
> @@ -395,6 +395,7 @@ void fini_mm(void)
>  {
>  }
>  
> +#ifdef CONFIG_TEST
>  void sanity_check(void)
>  {
>      int x;
> @@ -410,3 +411,4 @@ void sanity_check(void)
>          }
>      }
>  }
> +#endif
> diff --git a/test.c b/test.c
> index 465c54e8..4dd6e260 100644
> --- a/test.c
> +++ b/test.c
> @@ -185,6 +185,7 @@ static void periodic_thread(void *p)
>      {
>          gettimeofday(&tv, NULL);
>          printk("T(s=%ld us=%ld)\n", tv.tv_sec, tv.tv_usec);
> +        sanity_check();
>          msleep(1000);
>      }
>  }
> -- 
> 2.43.0
> 

-- 
Samuel
`When you say "I wrote a program that crashed Windows", people just stare at
you blankly and say "Hey, I got those with the system, *for free*".'
(By Linus Torvalds)