diff mbox series

lib: fix MemAvailable parsing

Message ID 20210928021850.2015065-1-ralph.siemsen@linaro.org
State Accepted
Headers show
Series lib: fix MemAvailable parsing | expand

Commit Message

Ralph Siemsen Sept. 28, 2021, 2:18 a.m. UTC
The amount of available memory was not being returned correctly, which
resulted in tests being executed when they should have been skipped.

Fixes: 8759f4 ("lib: adjust the tmpfs size according to .dev_min_size and MemAvailable")
Signed-off-by: Ralph Siemsen <ralph.siemsen@linaro.org>
---
 lib/tst_memutils.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Li Wang Sept. 28, 2021, 7:59 a.m. UTC | #1
> @@ -65,9 +65,9 @@ void tst_pollute_memory(size_t maxsize, int fillchar)
>
>  long long tst_available_mem(void)
>  {
> -       long long mem_available;
> +       long long mem_available = 0;
>

--->  unsigned long long


> -       if (FILE_LINES_SCANF("/proc/meminfo", "MemAvailable: %ld",
> +       if (FILE_LINES_SCANF("/proc/meminfo", "MemAvailable: %lld",
>

I modified it to use '%llu' and pushed.
Richard Palethorpe Sept. 29, 2021, 8:14 a.m. UTC | #2
Hello Ralph,

Ralph Siemsen <ralph.siemsen@linaro.org> writes:

> The amount of available memory was not being returned correctly, which
> resulted in tests being executed when they should have been skipped.
>
> Fixes: 8759f4 ("lib: adjust the tmpfs size according to .dev_min_size and MemAvailable")
> Signed-off-by: Ralph Siemsen <ralph.siemsen@linaro.org>
> ---
>  lib/tst_memutils.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/lib/tst_memutils.c b/lib/tst_memutils.c
> index 69077861f..90911da56 100644
> --- a/lib/tst_memutils.c
> +++ b/lib/tst_memutils.c
> @@ -65,9 +65,9 @@ void tst_pollute_memory(size_t maxsize, int fillchar)
>  
>  long long tst_available_mem(void)
>  {
> -	long long mem_available;
> +	long long mem_available = 0;
>  
> -	if (FILE_LINES_SCANF("/proc/meminfo", "MemAvailable: %ld",
> +	if (FILE_LINES_SCANF("/proc/meminfo", "MemAvailable: %lld",
>  		&mem_available)) {
>  		mem_available = SAFE_READ_MEMINFO("MemFree:")
>  			+ SAFE_READ_MEMINFO("Cached:");
> -- 
> 2.25.1

Just curious, did you find this on 32-bit ARM?

Anyway looks correct.

Reviewed-by: Richard Palethorpe <rpalethorpe@suse.com>
Ralph Siemsen Sept. 29, 2021, 2:28 p.m. UTC | #3
Hi Richard,

On Wed, Sep 29, 2021 at 09:14:56AM +0100, Richard Palethorpe wrote:
>
>Just curious, did you find this on 32-bit ARM?

Yes, it was on 32-bit ARMv7. It happens on the real hardware, and also 
under qemuarm emulation.

You can see my replies in the "fallocate05: increase the the fallocate 
and defallocate size" thread, so see how I ended up discovering this 
problem.

Cheers,
Ralph
diff mbox series

Patch

diff --git a/lib/tst_memutils.c b/lib/tst_memutils.c
index 69077861f..90911da56 100644
--- a/lib/tst_memutils.c
+++ b/lib/tst_memutils.c
@@ -65,9 +65,9 @@  void tst_pollute_memory(size_t maxsize, int fillchar)
 
 long long tst_available_mem(void)
 {
-	long long mem_available;
+	long long mem_available = 0;
 
-	if (FILE_LINES_SCANF("/proc/meminfo", "MemAvailable: %ld",
+	if (FILE_LINES_SCANF("/proc/meminfo", "MemAvailable: %lld",
 		&mem_available)) {
 		mem_available = SAFE_READ_MEMINFO("MemFree:")
 			+ SAFE_READ_MEMINFO("Cached:");