Messages in this thread | | | Date | Sat, 4 Aug 2018 15:28:08 -0700 | From | Guenter Roeck <> | Subject | Re: [PATCH 1/7] mm: allocate mm_cpumask dynamically based on nr_cpu_ids |
| |
On Mon, Jul 16, 2018 at 03:03:31PM -0400, Rik van Riel wrote: > The mm_struct always contains a cpumask bitmap, regardless of > CONFIG_CPUMASK_OFFSTACK. That means the first step can be to > simplify things, and simply have one bitmask at the end of the > mm_struct for the mm_cpumask. > > This does necessitate moving everything else in mm_struct into > an anonymous sub-structure, which can be randomized when struct > randomization is enabled. > > The second step is to determine the correct size for the > mm_struct slab object from the size of the mm_struct > (excluding the cpu bitmap) and the size the cpumask. > > For init_mm we can simply allocate the maximum size this > kernel is compiled for, since we only have one init_mm > in the system, anyway. > > Pointer magic by Mike Galbraith, to evade -Wstringop-overflow > getting confused by the dynamically sized array. > > Signed-off-by: Rik van Riel <riel@surriel.com> > Signed-off-by: Mike Galbraith <efault@gmx.de> > Signed-off-by: Rik van Riel <riel@surriel.com> > Acked-by: Dave Hansen <dave.hansen@intel.com> > Tested-by: Song Liu <songliubraving@fb.com>
Hi,
this patch causes unicore32 build failures.
In file included from include/linux/mm.h:17, from arch/unicore32/kernel/asm-offsets.c:17: include/linux/mm_types.h:497: error: flexible array member in otherwise empty struct
Build reference: next-20180803 gcc version: unicore32-linux-gcc (UC4_1.0.5_20100917) 4.4.2
I understand this is an old compiler, but it is the only available version as far as I know.
Guenter
| |