* [powerpc:next-test 76/183] arch/powerpc/kernel/vdso32/gettimeofday.S:40: Error: syntax error; found `@', expected `,'
@ 2020-10-06 20:41 kernel test robot
2020-10-07 6:03 ` Christophe Leroy
0 siblings, 1 reply; 2+ messages in thread
From: kernel test robot @ 2020-10-06 20:41 UTC (permalink / raw)
To: Michael Ellerman; +Cc: clang-built-linux, kbuild-all, linuxppc-dev
[-- Attachment #1: Type: text/plain, Size: 15939 bytes --]
Hi Michael,
First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next-test
head: 72cdd117c449896c707fc6cfe5b90978160697d0
commit: 231b232df8f67e7d37af01259c21f2a131c3911e [76/183] powerpc/64: Make VDSO32 track COMPAT on 64-bit
config: powerpc-randconfig-r033-20201005 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 1127662c6dc2a276839c75a42238b11a3ad00f32)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install powerpc cross compiling tool for clang build
# apt-get install binutils-powerpc-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/commit/?id=231b232df8f67e7d37af01259c21f2a131c3911e
git remote add powerpc https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git
git fetch --no-tags powerpc next-test
git checkout 231b232df8f67e7d37af01259c21f2a131c3911e
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
arch/powerpc/kernel/vdso32/gettimeofday.S: Assembler messages:
>> arch/powerpc/kernel/vdso32/gettimeofday.S:40: Error: syntax error; found `@', expected `,'
>> arch/powerpc/kernel/vdso32/gettimeofday.S:40: Error: junk at end of line: `@local'
arch/powerpc/kernel/vdso32/gettimeofday.S:68: Warning: invalid register expression
>> arch/powerpc/kernel/vdso32/gettimeofday.S:68: Error: operand out of range (3 is not between 0 and 1)
arch/powerpc/kernel/vdso32/gettimeofday.S:68: Error: missing operand
arch/powerpc/kernel/vdso32/gettimeofday.S:69: Warning: invalid register expression
arch/powerpc/kernel/vdso32/gettimeofday.S:69: Error: operand out of range (3 is not between 0 and 1)
arch/powerpc/kernel/vdso32/gettimeofday.S:69: Error: missing operand
arch/powerpc/kernel/vdso32/gettimeofday.S:72: Warning: invalid register expression
arch/powerpc/kernel/vdso32/gettimeofday.S:72: Error: operand out of range (3 is not between 0 and 1)
arch/powerpc/kernel/vdso32/gettimeofday.S:72: Error: missing operand
arch/powerpc/kernel/vdso32/gettimeofday.S:73: Warning: invalid register expression
arch/powerpc/kernel/vdso32/gettimeofday.S:73: Error: operand out of range (3 is not between 0 and 1)
arch/powerpc/kernel/vdso32/gettimeofday.S:73: Error: missing operand
arch/powerpc/kernel/vdso32/gettimeofday.S:86: Error: syntax error; found `@', expected `,'
arch/powerpc/kernel/vdso32/gettimeofday.S:86: Error: junk at end of line: `@local'
arch/powerpc/kernel/vdso32/gettimeofday.S:110: Warning: invalid register expression
arch/powerpc/kernel/vdso32/gettimeofday.S:110: Error: operand out of range (8 is not between 0 and 1)
arch/powerpc/kernel/vdso32/gettimeofday.S:110: Error: missing operand
arch/powerpc/kernel/vdso32/gettimeofday.S:144: Warning: invalid register expression
arch/powerpc/kernel/vdso32/gettimeofday.S:144: Error: missing operand
arch/powerpc/kernel/vdso32/gettimeofday.S:213: Warning: invalid register expression
arch/powerpc/kernel/vdso32/gettimeofday.S:213: Error: operand out of range (4 is not between 0 and 1)
arch/powerpc/kernel/vdso32/gettimeofday.S:213: Error: missing operand
clang-12: error: assembler command failed with exit code 1 (use -v to see invocation)
vim +40 arch/powerpc/kernel/vdso32/gettimeofday.S
597bc5c00b666fe Paul Mackerras 2008-10-27 22
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 23 .text
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 24 /*
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 25 * Exact prototype of gettimeofday
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 26 *
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 27 * int __kernel_gettimeofday(struct timeval *tv, struct timezone *tz);
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 28 *
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 29 */
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 30 V_FUNCTION_BEGIN(__kernel_gettimeofday)
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 31 .cfi_startproc
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 32 mflr r12
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 33 .cfi_register lr,r12
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 34
bfc2eae0ad72a43 Christophe Leroy 2019-12-02 35 mr. r10,r3 /* r10 saves tv */
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 36 mr r11,r4 /* r11 saves tz */
ec0895f08f99515 Christophe Leroy 2019-12-02 37 get_datapage r9, r0
74609f4536f2b8f Tony Breeds 2007-06-26 38 beq 3f
6e2f9e9cfd560f5 Christophe Leroy 2019-12-02 39 LOAD_REG_IMMEDIATE(r7, 1000000) /* load up USEC_PER_SEC */
8fd63a9ea752846 Paul Mackerras 2010-06-20 @40 bl __do_get_tspec@local /* get sec/usec from tb & kernel */
8fd63a9ea752846 Paul Mackerras 2010-06-20 41 stw r3,TVAL32_TV_SEC(r10)
8fd63a9ea752846 Paul Mackerras 2010-06-20 42 stw r4,TVAL32_TV_USEC(r10)
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 43
74609f4536f2b8f Tony Breeds 2007-06-26 44 3: cmplwi r11,0 /* check if tz is NULL */
bfc2eae0ad72a43 Christophe Leroy 2019-12-02 45 mtlr r12
bfc2eae0ad72a43 Christophe Leroy 2019-12-02 46 crclr cr0*4+so
bfc2eae0ad72a43 Christophe Leroy 2019-12-02 47 li r3,0
bfc2eae0ad72a43 Christophe Leroy 2019-12-02 48 beqlr
bfc2eae0ad72a43 Christophe Leroy 2019-12-02 49
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 50 lwz r4,CFG_TZ_MINUTEWEST(r9)/* fill tz */
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 51 lwz r5,CFG_TZ_DSTTIME(r9)
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 52 stw r4,TZONE_TZ_MINWEST(r11)
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 53 stw r5,TZONE_TZ_DSTTIME(r11)
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 54
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 55 blr
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 56 .cfi_endproc
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 57 V_FUNCTION_END(__kernel_gettimeofday)
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 58
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 59 /*
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 60 * Exact prototype of clock_gettime()
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 61 *
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 62 * int __kernel_clock_gettime(clockid_t clock_id, struct timespec *tp);
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 63 *
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 64 */
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 65 V_FUNCTION_BEGIN(__kernel_clock_gettime)
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 66 .cfi_startproc
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 67 /* Check for supported clock IDs */
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 @68 cmpli cr0,r3,CLOCK_REALTIME
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 69 cmpli cr1,r3,CLOCK_MONOTONIC
0c37ec2aa88bd8a Benjamin Herrenschmidt 2005-11-14 70 cror cr0*4+eq,cr0*4+eq,cr1*4+eq
654abc69ef2e697 Christophe Leroy 2019-12-02 71
654abc69ef2e697 Christophe Leroy 2019-12-02 72 cmpli cr5,r3,CLOCK_REALTIME_COARSE
654abc69ef2e697 Christophe Leroy 2019-12-02 73 cmpli cr6,r3,CLOCK_MONOTONIC_COARSE
654abc69ef2e697 Christophe Leroy 2019-12-02 74 cror cr5*4+eq,cr5*4+eq,cr6*4+eq
654abc69ef2e697 Christophe Leroy 2019-12-02 75
654abc69ef2e697 Christophe Leroy 2019-12-02 76 cror cr0*4+eq,cr0*4+eq,cr5*4+eq
654abc69ef2e697 Christophe Leroy 2019-12-02 77 bne cr0, .Lgettime_fallback
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 78
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 79 mflr r12 /* r12 saves lr */
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 80 .cfi_register lr,r12
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 81 mr r11,r4 /* r11 saves tp */
ec0895f08f99515 Christophe Leroy 2019-12-02 82 get_datapage r9, r0
6e2f9e9cfd560f5 Christophe Leroy 2019-12-02 83 LOAD_REG_IMMEDIATE(r7, NSEC_PER_SEC) /* load up NSEC_PER_SEC */
654abc69ef2e697 Christophe Leroy 2019-12-02 84 beq cr5, .Lcoarse_clocks
654abc69ef2e697 Christophe Leroy 2019-12-02 85 .Lprecise_clocks:
654abc69ef2e697 Christophe Leroy 2019-12-02 86 bl __do_get_tspec@local /* get sec/nsec from tb & kernel */
654abc69ef2e697 Christophe Leroy 2019-12-02 87 bne cr1, .Lfinish /* not monotonic -> all done */
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 88
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 89 /*
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 90 * CLOCK_MONOTONIC
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 91 */
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 92
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 93 /* now we must fixup using wall to monotonic. We need to snapshot
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 94 * that value and do the counter trick again. Fortunately, we still
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 95 * have the counter value in r8 that was returned by __do_get_xsec.
597bc5c00b666fe Paul Mackerras 2008-10-27 96 * At this point, r3,r4 contain our sec/nsec values, r5 and r6
597bc5c00b666fe Paul Mackerras 2008-10-27 97 * can be used, r7 contains NSEC_PER_SEC.
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 98 */
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 99
dd9a994fc68d196 Christophe Leroy 2019-04-04 100 lwz r5,(WTOM_CLOCK_SEC+LOPART)(r9)
597bc5c00b666fe Paul Mackerras 2008-10-27 101 lwz r6,WTOM_CLOCK_NSEC(r9)
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 102
597bc5c00b666fe Paul Mackerras 2008-10-27 103 /* We now have our offset in r5,r6. We create a fake dependency
597bc5c00b666fe Paul Mackerras 2008-10-27 104 * on that value and re-check the counter
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 105 */
597bc5c00b666fe Paul Mackerras 2008-10-27 106 or r0,r6,r5
597bc5c00b666fe Paul Mackerras 2008-10-27 107 xor r0,r0,r0
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 108 add r9,r9,r0
597bc5c00b666fe Paul Mackerras 2008-10-27 109 lwz r0,(CFG_TB_UPDATE_COUNT+LOPART)(r9)
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 110 cmpl cr0,r8,r0 /* check if updated */
654abc69ef2e697 Christophe Leroy 2019-12-02 111 bne- .Lprecise_clocks
654abc69ef2e697 Christophe Leroy 2019-12-02 112 b .Lfinish_monotonic
654abc69ef2e697 Christophe Leroy 2019-12-02 113
654abc69ef2e697 Christophe Leroy 2019-12-02 114 /*
654abc69ef2e697 Christophe Leroy 2019-12-02 115 * For coarse clocks we get data directly from the vdso data page, so
654abc69ef2e697 Christophe Leroy 2019-12-02 116 * we don't need to call __do_get_tspec, but we still need to do the
654abc69ef2e697 Christophe Leroy 2019-12-02 117 * counter trick.
654abc69ef2e697 Christophe Leroy 2019-12-02 118 */
654abc69ef2e697 Christophe Leroy 2019-12-02 119 .Lcoarse_clocks:
654abc69ef2e697 Christophe Leroy 2019-12-02 120 lwz r8,(CFG_TB_UPDATE_COUNT+LOPART)(r9)
654abc69ef2e697 Christophe Leroy 2019-12-02 121 andi. r0,r8,1 /* pending update ? loop */
654abc69ef2e697 Christophe Leroy 2019-12-02 122 bne- .Lcoarse_clocks
654abc69ef2e697 Christophe Leroy 2019-12-02 123 add r9,r9,r0 /* r0 is already 0 */
654abc69ef2e697 Christophe Leroy 2019-12-02 124
654abc69ef2e697 Christophe Leroy 2019-12-02 125 /*
654abc69ef2e697 Christophe Leroy 2019-12-02 126 * CLOCK_REALTIME_COARSE, below values are needed for MONOTONIC_COARSE
654abc69ef2e697 Christophe Leroy 2019-12-02 127 * too
654abc69ef2e697 Christophe Leroy 2019-12-02 128 */
654abc69ef2e697 Christophe Leroy 2019-12-02 129 lwz r3,STAMP_XTIME_SEC+LOPART(r9)
654abc69ef2e697 Christophe Leroy 2019-12-02 130 lwz r4,STAMP_XTIME_NSEC+LOPART(r9)
654abc69ef2e697 Christophe Leroy 2019-12-02 131 bne cr6,1f
654abc69ef2e697 Christophe Leroy 2019-12-02 132
654abc69ef2e697 Christophe Leroy 2019-12-02 133 /* CLOCK_MONOTONIC_COARSE */
654abc69ef2e697 Christophe Leroy 2019-12-02 134 lwz r5,(WTOM_CLOCK_SEC+LOPART)(r9)
654abc69ef2e697 Christophe Leroy 2019-12-02 135 lwz r6,WTOM_CLOCK_NSEC(r9)
654abc69ef2e697 Christophe Leroy 2019-12-02 136
654abc69ef2e697 Christophe Leroy 2019-12-02 137 /* check if counter has updated */
654abc69ef2e697 Christophe Leroy 2019-12-02 138 or r0,r6,r5
654abc69ef2e697 Christophe Leroy 2019-12-02 139 1: or r0,r0,r3
654abc69ef2e697 Christophe Leroy 2019-12-02 140 or r0,r0,r4
654abc69ef2e697 Christophe Leroy 2019-12-02 141 xor r0,r0,r0
654abc69ef2e697 Christophe Leroy 2019-12-02 142 add r3,r3,r0
654abc69ef2e697 Christophe Leroy 2019-12-02 143 lwz r0,CFG_TB_UPDATE_COUNT+LOPART(r9)
654abc69ef2e697 Christophe Leroy 2019-12-02 144 cmpl cr0,r0,r8 /* check if updated */
654abc69ef2e697 Christophe Leroy 2019-12-02 145 bne- .Lcoarse_clocks
654abc69ef2e697 Christophe Leroy 2019-12-02 146
654abc69ef2e697 Christophe Leroy 2019-12-02 147 /* Counter has not updated, so continue calculating proper values for
654abc69ef2e697 Christophe Leroy 2019-12-02 148 * sec and nsec if monotonic coarse, or just return with the proper
654abc69ef2e697 Christophe Leroy 2019-12-02 149 * values for realtime.
654abc69ef2e697 Christophe Leroy 2019-12-02 150 */
654abc69ef2e697 Christophe Leroy 2019-12-02 151 bne cr6, .Lfinish
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 152
597bc5c00b666fe Paul Mackerras 2008-10-27 153 /* Calculate and store result. Note that this mimics the C code,
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 154 * which may cause funny results if nsec goes negative... is that
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 155 * possible at all ?
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 156 */
654abc69ef2e697 Christophe Leroy 2019-12-02 157 .Lfinish_monotonic:
597bc5c00b666fe Paul Mackerras 2008-10-27 158 add r3,r3,r5
597bc5c00b666fe Paul Mackerras 2008-10-27 159 add r4,r4,r6
597bc5c00b666fe Paul Mackerras 2008-10-27 160 cmpw cr0,r4,r7
597bc5c00b666fe Paul Mackerras 2008-10-27 161 cmpwi cr1,r4,0
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 162 blt 1f
597bc5c00b666fe Paul Mackerras 2008-10-27 163 subf r4,r7,r4
a7f290dad32ee34 Benjamin Herrenschmidt 2005-11-11 164 addi r3,r3,1
654abc69ef2e697 Christophe Leroy 2019-12-02 165 1: bge cr1, .Lfinish
0c37ec2aa88bd8a Benjamin Herrenschmidt 2005-11-14 166 addi r3,r3,-1
597bc5c00b666fe Paul Mackerras 2008-10-27 167 add r4,r4,r7
597bc5c00b666fe Paul Mackerras 2008-10-27 168
:::::: The code at line 40 was first introduced by commit
:::::: 8fd63a9ea7528463211a6c88d500c51851d960c8 powerpc: Rework VDSO gettimeofday to prevent time going backwards
:::::: TO: Paul Mackerras <paulus@samba.org>
:::::: CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 29000 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [powerpc:next-test 76/183] arch/powerpc/kernel/vdso32/gettimeofday.S:40: Error: syntax error; found `@', expected `,'
2020-10-06 20:41 [powerpc:next-test 76/183] arch/powerpc/kernel/vdso32/gettimeofday.S:40: Error: syntax error; found `@', expected `,' kernel test robot
@ 2020-10-07 6:03 ` Christophe Leroy
0 siblings, 0 replies; 2+ messages in thread
From: Christophe Leroy @ 2020-10-07 6:03 UTC (permalink / raw)
To: kernel test robot, Michael Ellerman
Cc: clang-built-linux, kbuild-all, linuxppc-dev
Le 06/10/2020 à 22:41, kernel test robot a écrit :
> Hi Michael,
>
> First bad commit (maybe != root cause):
>
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next-test
> head: 72cdd117c449896c707fc6cfe5b90978160697d0
> commit: 231b232df8f67e7d37af01259c21f2a131c3911e [76/183] powerpc/64: Make VDSO32 track COMPAT on 64-bit
> config: powerpc-randconfig-r033-20201005 (attached as .config)
> compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 1127662c6dc2a276839c75a42238b11a3ad00f32)
There has been already a discussion on this, see
https://groups.google.com/g/clang-built-linux/c/ayNmi3HoNdY/m/ROdg7avVBwAJ
This apparently is a clang issue. The commit mentionned here is only exposing the issue, but the
issue is not in the commit itself.
Regardless, this error should go away when we switch to the generic C VDSO.
Christophe
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-10-07 6:06 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-10-06 20:41 [powerpc:next-test 76/183] arch/powerpc/kernel/vdso32/gettimeofday.S:40: Error: syntax error; found `@', expected `,' kernel test robot
2020-10-07 6:03 ` Christophe Leroy
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).