Messages in this thread | | | Subject | Re: [PATCH] mm/vmalloc: track which page-table levels were modified | From | Guenter Roeck <> | Date | Tue, 9 Jun 2020 07:15:42 -0700 |
| |
On 6/9/20 5:10 AM, Joerg Roedel wrote: > Hi Mike, > > On Fri, Jun 05, 2020 at 01:00:59PM +0300, Mike Rapoport wrote: >> We already have include/asm-generic/pgalloc.h, so maybe something like >> that patch below would fork. This is not even compile tested. >> >> diff --git a/include/asm-generic/pgalloc.h b/include/asm-generic/pgalloc.h > > I experimented a bit with your diff, but it turned out that moving the > page-table allocation functions/macros to asm-generic/pgalloc.h does not > work on all architectures. > > The reason is that some archs don't use that header at all (e.g. ARC) > and have their own version of the functions defined there. That could > all be made working, but I decided to no open this can of worms for now. > > So I sent out a patch which moves the p?d_alloc_track() functions/macros > to a separate header and include it only in mm/vmalloc.c and > lib/ioremap.c. That compiles on all architectures where current Linus' > master also builds (it does not for Alpha, CSky, Mips and Mips64), and > as usual Hexagon and Unicore32 are not tested because I have no working > compiler for those. >
To build csky images, you have to disable CONFIG_FRAME_POINTER or use a non-upstream compiler. To build any images reliably, you have to disable CONFIG_GCC_PLUGIN_RANDSTRUCT or use a version of gcc old enough to not support it (gcc 6.x is fine). For mips, you have to specify ARCH and CROSS_COMPILE as environment variables.
alpha is a lost case. The offending commit is 0f1c9688a19 ("tty/sysrq: alpha: export and use __sysrq_get_key_op()"); it looks like that wasn't build tested. It can not be reverted easily because of subsequent changes.
I have stopped building unicore32 images since v4.19 since there is no available compiler that is still supported by the kernel. I am surprised that support for it has not been removed from the kernel.
I am told that hexagon only supports llvm/clang, and the only version of gcc that supports it is v4.6.1 (from Sourcery CodeBench Lite 2012.03-66). The minimum version of gcc will be raised to v4.8; that has already happened in linux-next and will presumably be applied to mainline shortly. With that, I'll stop build testing hexagon images as well until I find the time to build a llvm/clang hexagon toolchain.
So you are in good company, and thanks for testing everything else.
Guenter
| |