From: kbuild test robot <lkp@intel.com>
To: Peter Zijlstra <peterz@infradead.org>,
Will Deacon <will@kernel.org>, Marc Zyngier <maz@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Leo Yan <leo.yan@linaro.org>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, mingo@redhat.com,
acme@kernel.org, alexander.shishkin@linux.intel.com,
jolsa@redhat.com, daniel.lezcano@linaro.org, tglx@linutronix.de,
sboyd@codeaurora.org
Subject: Re: [PATCH 2/5] arm64: perf: Implement correct cap_user_time
Date: Wed, 13 May 2020 00:05:32 +0800 [thread overview]
Message-ID: <202005130004.KnC3LwAO%lkp@intel.com> (raw)
In-Reply-To: <20200512124450.824507755@infradead.org>
[-- Attachment #1: Type: text/plain, Size: 3298 bytes --]
Hi Peter,
I love your patch! Yet something to improve:
[auto build test ERROR on tip/perf/core]
[also build test ERROR on arm64/for-next/core arm-perf/for-next/perf linus/master v5.7-rc5 next-20200512]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Peter-Zijlstra/arm64-perf-Proper-cap_user_time-support/20200512-205141
base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 059c6d68cfc5f85ba3ab71d71a6de380016f7936
config: arm64-allyesconfig (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day GCC_VERSION=9.3.0 make.cross ARCH=arm64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
arch/arm64/kernel/perf_event.c: In function 'arch_perf_update_userpage':
>> arch/arm64/kernel/perf_event.c:1205:12: error: 'struct perf_event_mmap_page' has no member named 'shift'
1205 | if (userpg->shift == 32) {
| ^~
arch/arm64/kernel/perf_event.c:1206:9: error: 'struct perf_event_mmap_page' has no member named 'shift'
1206 | userpg->shift = 31;
| ^~
vim +1205 arch/arm64/kernel/perf_event.c
1165
1166 void arch_perf_update_userpage(struct perf_event *event,
1167 struct perf_event_mmap_page *userpg, u64 now)
1168 {
1169 struct clock_read_data *rd;
1170 unsigned int seq;
1171
1172 /*
1173 * Internal timekeeping for enabled/running/stopped times
1174 * is always computed with the sched_clock.
1175 */
1176 userpg->cap_user_time = 1;
1177 userpg->cap_user_time_zero = 1;
1178
1179 do {
1180 rd = sched_clock_read_begin(&seq);
1181
1182 userpg->time_mult = rd->mult;
1183 userpg->time_shift = rd->shift;
1184 userpg->time_zero = rd->epoch_ns;
1185
1186 /*
1187 * This isn't strictly correct, the ARM64 counter can be
1188 * 'short' and then we get funnies when it wraps. The correct
1189 * thing would be to extend the perf ABI with a cycle and mask
1190 * value, but because wrapping on ARM64 is very rare in
1191 * practise this 'works'.
1192 */
1193 userpg->time_zero -= (rd->epoch_cyc * rd->mult) >> rd->shift;
1194
1195 } while (sched_clock_read_retry(seq));
1196
1197 userpg->time_offset = userpg->time_zero - now;
1198
1199 /*
1200 * time_shift is not expected to be greater than 31 due to
1201 * the original published conversion algorithm shifting a
1202 * 32-bit value (now specifies a 64-bit value) - refer
1203 * perf_event_mmap_page documentation in perf_event.h.
1204 */
> 1205 if (userpg->shift == 32) {
1206 userpg->shift = 31;
1207 userpg->time_mult >>= 1;
1208 }
1209
---
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: 71774 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kbuild test robot <lkp@intel.com>
To: Peter Zijlstra <peterz@infradead.org>,
Will Deacon <will@kernel.org>, Marc Zyngier <maz@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Leo Yan <leo.yan@linaro.org>
Cc: kbuild-all@lists.01.org, alexander.shishkin@linux.intel.com,
daniel.lezcano@linaro.org, sboyd@codeaurora.org,
linux-kernel@vger.kernel.org, acme@kernel.org, mingo@redhat.com,
tglx@linutronix.de, jolsa@redhat.com,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 2/5] arm64: perf: Implement correct cap_user_time
Date: Wed, 13 May 2020 00:05:32 +0800 [thread overview]
Message-ID: <202005130004.KnC3LwAO%lkp@intel.com> (raw)
In-Reply-To: <20200512124450.824507755@infradead.org>
[-- Attachment #1: Type: text/plain, Size: 3298 bytes --]
Hi Peter,
I love your patch! Yet something to improve:
[auto build test ERROR on tip/perf/core]
[also build test ERROR on arm64/for-next/core arm-perf/for-next/perf linus/master v5.7-rc5 next-20200512]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Peter-Zijlstra/arm64-perf-Proper-cap_user_time-support/20200512-205141
base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 059c6d68cfc5f85ba3ab71d71a6de380016f7936
config: arm64-allyesconfig (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day GCC_VERSION=9.3.0 make.cross ARCH=arm64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
arch/arm64/kernel/perf_event.c: In function 'arch_perf_update_userpage':
>> arch/arm64/kernel/perf_event.c:1205:12: error: 'struct perf_event_mmap_page' has no member named 'shift'
1205 | if (userpg->shift == 32) {
| ^~
arch/arm64/kernel/perf_event.c:1206:9: error: 'struct perf_event_mmap_page' has no member named 'shift'
1206 | userpg->shift = 31;
| ^~
vim +1205 arch/arm64/kernel/perf_event.c
1165
1166 void arch_perf_update_userpage(struct perf_event *event,
1167 struct perf_event_mmap_page *userpg, u64 now)
1168 {
1169 struct clock_read_data *rd;
1170 unsigned int seq;
1171
1172 /*
1173 * Internal timekeeping for enabled/running/stopped times
1174 * is always computed with the sched_clock.
1175 */
1176 userpg->cap_user_time = 1;
1177 userpg->cap_user_time_zero = 1;
1178
1179 do {
1180 rd = sched_clock_read_begin(&seq);
1181
1182 userpg->time_mult = rd->mult;
1183 userpg->time_shift = rd->shift;
1184 userpg->time_zero = rd->epoch_ns;
1185
1186 /*
1187 * This isn't strictly correct, the ARM64 counter can be
1188 * 'short' and then we get funnies when it wraps. The correct
1189 * thing would be to extend the perf ABI with a cycle and mask
1190 * value, but because wrapping on ARM64 is very rare in
1191 * practise this 'works'.
1192 */
1193 userpg->time_zero -= (rd->epoch_cyc * rd->mult) >> rd->shift;
1194
1195 } while (sched_clock_read_retry(seq));
1196
1197 userpg->time_offset = userpg->time_zero - now;
1198
1199 /*
1200 * time_shift is not expected to be greater than 31 due to
1201 * the original published conversion algorithm shifting a
1202 * 32-bit value (now specifies a 64-bit value) - refer
1203 * perf_event_mmap_page documentation in perf_event.h.
1204 */
> 1205 if (userpg->shift == 32) {
1206 userpg->shift = 31;
1207 userpg->time_mult >>= 1;
1208 }
1209
---
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: 71774 bytes --]
[-- Attachment #3: Type: text/plain, Size: 176 bytes --]
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: kbuild test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH 2/5] arm64: perf: Implement correct cap_user_time
Date: Wed, 13 May 2020 00:05:32 +0800 [thread overview]
Message-ID: <202005130004.KnC3LwAO%lkp@intel.com> (raw)
In-Reply-To: <20200512124450.824507755@infradead.org>
[-- Attachment #1: Type: text/plain, Size: 3384 bytes --]
Hi Peter,
I love your patch! Yet something to improve:
[auto build test ERROR on tip/perf/core]
[also build test ERROR on arm64/for-next/core arm-perf/for-next/perf linus/master v5.7-rc5 next-20200512]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Peter-Zijlstra/arm64-perf-Proper-cap_user_time-support/20200512-205141
base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 059c6d68cfc5f85ba3ab71d71a6de380016f7936
config: arm64-allyesconfig (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day GCC_VERSION=9.3.0 make.cross ARCH=arm64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
arch/arm64/kernel/perf_event.c: In function 'arch_perf_update_userpage':
>> arch/arm64/kernel/perf_event.c:1205:12: error: 'struct perf_event_mmap_page' has no member named 'shift'
1205 | if (userpg->shift == 32) {
| ^~
arch/arm64/kernel/perf_event.c:1206:9: error: 'struct perf_event_mmap_page' has no member named 'shift'
1206 | userpg->shift = 31;
| ^~
vim +1205 arch/arm64/kernel/perf_event.c
1165
1166 void arch_perf_update_userpage(struct perf_event *event,
1167 struct perf_event_mmap_page *userpg, u64 now)
1168 {
1169 struct clock_read_data *rd;
1170 unsigned int seq;
1171
1172 /*
1173 * Internal timekeeping for enabled/running/stopped times
1174 * is always computed with the sched_clock.
1175 */
1176 userpg->cap_user_time = 1;
1177 userpg->cap_user_time_zero = 1;
1178
1179 do {
1180 rd = sched_clock_read_begin(&seq);
1181
1182 userpg->time_mult = rd->mult;
1183 userpg->time_shift = rd->shift;
1184 userpg->time_zero = rd->epoch_ns;
1185
1186 /*
1187 * This isn't strictly correct, the ARM64 counter can be
1188 * 'short' and then we get funnies when it wraps. The correct
1189 * thing would be to extend the perf ABI with a cycle and mask
1190 * value, but because wrapping on ARM64 is very rare in
1191 * practise this 'works'.
1192 */
1193 userpg->time_zero -= (rd->epoch_cyc * rd->mult) >> rd->shift;
1194
1195 } while (sched_clock_read_retry(seq));
1196
1197 userpg->time_offset = userpg->time_zero - now;
1198
1199 /*
1200 * time_shift is not expected to be greater than 31 due to
1201 * the original published conversion algorithm shifting a
1202 * 32-bit value (now specifies a 64-bit value) - refer
1203 * perf_event_mmap_page documentation in perf_event.h.
1204 */
> 1205 if (userpg->shift == 32) {
1206 userpg->shift = 31;
1207 userpg->time_mult >>= 1;
1208 }
1209
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 71774 bytes --]
next prev parent reply other threads:[~2020-05-12 16:09 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-12 12:40 [PATCH 0/5] arm64: perf: Proper cap_user_time* support Peter Zijlstra
2020-05-12 12:40 ` Peter Zijlstra
2020-05-12 12:40 ` [PATCH 1/5] sched_clock: Expose struct clock_read_data Peter Zijlstra
2020-05-12 12:40 ` Peter Zijlstra
2020-05-12 12:41 ` [PATCH 2/5] arm64: perf: Implement correct cap_user_time Peter Zijlstra
2020-05-12 12:41 ` Peter Zijlstra
2020-05-12 14:03 ` Leo Yan
2020-05-12 14:03 ` Leo Yan
2020-05-12 14:08 ` Peter Zijlstra
2020-05-12 14:08 ` Peter Zijlstra
2020-05-12 16:05 ` kbuild test robot [this message]
2020-05-12 16:05 ` kbuild test robot
2020-05-12 16:05 ` kbuild test robot
2020-05-12 12:41 ` [PATCH 3/5] arm64: perf: Only advertise cap_user_time for arch_timer Peter Zijlstra
2020-05-12 12:41 ` Peter Zijlstra
2020-05-12 12:41 ` [PATCH 4/5] perf: Add perf_event_mmap_page::cap_user_time_short ABI Peter Zijlstra
2020-05-12 12:41 ` Peter Zijlstra
2020-05-12 12:41 ` [PATCH 5/5] arm64: perf: Add cap_user_time_short Peter Zijlstra
2020-05-12 12:41 ` Peter Zijlstra
2020-05-12 14:11 ` Leo Yan
2020-05-12 14:11 ` Leo Yan
2020-05-12 16:59 ` kbuild test robot
2020-05-12 16:59 ` kbuild test robot
2020-05-12 16:59 ` kbuild test robot
2020-07-13 6:08 ` [PATCH 0/5] arm64: perf: Proper cap_user_time* support Leo Yan
2020-07-13 6:08 ` Leo Yan
2020-07-13 10:11 ` Will Deacon
2020-07-13 10:11 ` Will Deacon
2020-07-13 12:58 ` Leo Yan
2020-07-13 12:58 ` Leo Yan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202005130004.KnC3LwAO%lkp@intel.com \
--to=lkp@intel.com \
--cc=acme@kernel.org \
--cc=alexander.shishkin@linux.intel.com \
--cc=catalin.marinas@arm.com \
--cc=daniel.lezcano@linaro.org \
--cc=jolsa@redhat.com \
--cc=kbuild-all@lists.01.org \
--cc=leo.yan@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=maz@kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=sboyd@codeaurora.org \
--cc=tglx@linutronix.de \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.