With current git, lustre fails to build with CONFIG_ARM64_64K_PAGES=y
and CONFIG_LUSTRE_LLITE_LLOOP=m:
make -f scripts/Makefile.build obj=drivers/staging/lustre/lustre/llite
gcc -Wp,-MD,drivers/staging/lustre/lustre/llite/.lloop.o.d -nostdinc -isystem /usr/lib/gcc/aarch64-linux-gnu/4.8/include -I./arch/arm64/include -Iarch/arm64/include/generated -Iinclude -I./arch/arm64/include/uapi -Iarch/arm64/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -mgeneral-regs-only -fno-delete-null-pointer-checks -O2 -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -g -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Idrivers/staging/lustre/include/ -Idrivers/staging/lustre/lustre/llite/../include -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(lloop)" -D"KBUILD_MODNAME=KBUILD_STR(llite_lloop)" -c -o drivers/staging/lustre/lustre/llite/.tmp_lloop.o drivers/staging/lustre/lustre/llite/lloop.c
drivers/staging/lustre/lustre/llite/lloop.c: In function ‘loop_set_fd’:
drivers/staging/lustre/lustre/llite/lloop.c:523:78: error: duplicate case value
CLASSERT(PAGE_CACHE_SIZE < (1 << (sizeof(unsigned short) * 8)));
^
drivers/staging/lustre/lustre/llite/lloop.c:523:18: error: previously used here
CLASSERT(PAGE_CACHE_SIZE < (1 << (sizeof(unsigned short) * 8)));
^
scripts/Makefile.build:257: recipe for target 'drivers/staging/lustre/lustre/llite/lloop.o' failed
make[5]: *** [drivers/staging/lustre/lustre/llite/lloop.o] Error 1
scripts/Makefile.build:404: recipe for target 'drivers/staging/lustre/lustre/llite' failed
make[4]: *** [drivers/staging/lustre/lustre/llite] Error 2
scripts/Makefile.build:404: recipe for target 'drivers/staging/lustre/lustre' failed
make[3]: *** [drivers/staging/lustre/lustre] Error 2
scripts/Makefile.build:404: recipe for target 'drivers/staging/lustre' failed
make[2]: *** [drivers/staging/lustre] Error 2
scripts/Makefile.build:404: recipe for target 'drivers/staging' failed
make[1]: *** [drivers/staging] Error 2
Makefile:893: recipe for target 'drivers' failed
make: *** [drivers] Error 2
On Thu, Jun 19, 2014 at 12:33:21PM -0600, dann frazier wrote:
> With current git, lustre fails to build with CONFIG_ARM64_64K_PAGES=y
> and CONFIG_LUSTRE_LLITE_LLOOP=m:
>
> make -f scripts/Makefile.build obj=drivers/staging/lustre/lustre/llite
> gcc -Wp,-MD,drivers/staging/lustre/lustre/llite/.lloop.o.d -nostdinc -isystem /usr/lib/gcc/aarch64-linux-gnu/4.8/include -I./arch/arm64/include -Iarch/arm64/include/generated -Iinclude -I./arch/arm64/include/uapi -Iarch/arm64/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -mgeneral-regs-only -fno-delete-null-pointer-checks -O2 -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -g -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Idrivers/staging/lustre/include/ -Idrivers/staging/lustre/lustre/llite/../include -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(lloop)" -D"KBUILD_MODNAME=KBUILD_STR(llite_lloop)" -c -o drivers/staging/lustre/lustre/llite/.tmp_lloop.o drivers/staging/lustre/lustre/llite/lloop.c
> drivers/staging/lustre/lustre/llite/lloop.c: In function ‘loop_set_fd’:
> drivers/staging/lustre/lustre/llite/lloop.c:523:78: error: duplicate case value
> CLASSERT(PAGE_CACHE_SIZE < (1 << (sizeof(unsigned short) * 8)));
> ^
> drivers/staging/lustre/lustre/llite/lloop.c:523:18: error: previously used here
> CLASSERT(PAGE_CACHE_SIZE < (1 << (sizeof(unsigned short) * 8)));
> ^
Looks like lustre can't handle 64K page sizes, so it refuses to build :(
I sugest turning this code off, you really don't want to be running it
anyway...
greg k-h
The lustre virtual block device cannot handle 64K pages and fails at compile
time. To avoid running into this error, let's disable the Kconfig option
for this driver in cases it doesn't support.
Reported-by: Dann Frazier <[email protected]>
Signed-off-by: Arnd Bergmann <[email protected]>
---
On Thursday 19 June 2014 12:10:51 Greg KH wrote:
> On Thu, Jun 19, 2014 at 12:33:21PM -0600, dann frazier wrote:
> > drivers/staging/lustre/lustre/llite/lloop.c:523:18: error: previously used here
> > CLASSERT(PAGE_CACHE_SIZE < (1 << (sizeof(unsigned short) * 8)));
> > ^
>
> Looks like lustre can't handle 64K page sizes, so it refuses to build :(
>
> I sugest turning this code off, you really don't want to be running it
> anyway...
something like this?
diff --git a/drivers/staging/lustre/lustre/Kconfig b/drivers/staging/lustre/lustre/Kconfig
index 209e4c7..4f65ba1 100644
--- a/drivers/staging/lustre/lustre/Kconfig
+++ b/drivers/staging/lustre/lustre/Kconfig
@@ -57,4 +57,5 @@ config LUSTRE_TRANSLATE_ERRNOS
config LUSTRE_LLITE_LLOOP
tristate "Lustre virtual block device"
depends on LUSTRE_FS && BLOCK
+ depends on !PPC_64K_PAGES && !ARM64_64K_PAGES
default m
The patch looks mostly OK, though I see there is also a
CONFIG_PPC_256K_PAGES
define that should probably be handled.
Cheers, Andreas
On 2014/06/20, 6:23 AM, "Arnd Bergmann" <[email protected]> wrote:
>The lustre virtual block device cannot handle 64K pages and fails at
>compile
>time. To avoid running into this error, let's disable the Kconfig option
>for this driver in cases it doesn't support.
>
>Reported-by: Dann Frazier <[email protected]>
>Signed-off-by: Arnd Bergmann <[email protected]>
>
>---
>On Thursday 19 June 2014 12:10:51 Greg KH wrote:
>> On Thu, Jun 19, 2014 at 12:33:21PM -0600, dann frazier wrote:
>> > drivers/staging/lustre/lustre/llite/lloop.c:523:18: error: previously
>>used here
>> > CLASSERT(PAGE_CACHE_SIZE < (1 << (sizeof(unsigned short) * 8)));
>> > ^
>>
>> Looks like lustre can't handle 64K page sizes, so it refuses to build :(
>>
>> I sugest turning this code off, you really don't want to be running it
>> anyway...
>
>something like this?
>
>diff --git a/drivers/staging/lustre/lustre/Kconfig
>b/drivers/staging/lustre/lustre/Kconfig
>index 209e4c7..4f65ba1 100644
>--- a/drivers/staging/lustre/lustre/Kconfig
>+++ b/drivers/staging/lustre/lustre/Kconfig
>@@ -57,4 +57,5 @@ config LUSTRE_TRANSLATE_ERRNOS
> config LUSTRE_LLITE_LLOOP
> tristate "Lustre virtual block device"
> depends on LUSTRE_FS && BLOCK
>+ depends on !PPC_64K_PAGES && !ARM64_64K_PAGES
> default m
>
>
Cheers, Andreas
--
Andreas Dilger
Lustre Software Architect
Intel High Performance Data Division