Re: Linux 5.9-rc7 / VmallocTotal wrongly reported

From: Linus Torvalds
Date: Thu Oct 01 2020 - 15:20:19 EST


Adding Vlastimil, Roman and the kernel mailing list to the cc.

Vlastimil, Roman - this looks like a slab regression. And while others
have touched slab in this merge window, you guys did so more than
most.. Comments?

On Wed, Sep 30, 2020 at 11:55 PM Bastian Bittorf <bb@xxxxxx> wrote:
>
> Since 5.9-rc1 i can see false values, booting with qemu (128mb RAM):
>
> / # free
> total used free shared buff/cache available
> Mem: 122176 18014398506028288 114848 0 3461024 3568096

that looks like a negative 64-bit number shifted down by 10 bits (bytes -> kB).

> / # cat /proc/meminfo | grep ^V
> VmallocTotal: 34359738367 kB

.. but this part is normal. VMALLOC_TOTAL is the VM space for vmalloc
areas, and it's large on a 64-bit machine.

And afaik, it hasn't changed in a long time.

So I think there's something else confusing 'free'.

I think it's this:

> / # cat /proc/meminfo
> MemAvailable: 3617184 kB
..
> Slab: 10321920 kB
> SReclaimable: 3506176 kB
> SUnreclaim: 6815744 kB

because those slab reclaimable/unreclaimable numbers look completely
bogus. You have more unreclaimable slab space than you have memory.

Hmm. I'm not seeing anything similar. And your config looks sane, with
the main difference I see wrt SLAB being that you have

# CONFIG_SLAB_MERGE_DEFAULT is not set

but there's nothing wrong with that either.

It would be lovely if you could bisect it, but maybe Vlastimil or
Roman will go "Ahh, obviously.."

Linus