[PATCH v2 4/4] coresight: etm3x: Don't trace PID for non-root PID namespace
Leo Yan
leo.yan at linaro.org
Mon Dec 13 20:46:28 PST 2021
Hi,
On Tue, Dec 14, 2021 at 03:16:42AM +0800, kernel test robot wrote:
> Hi Leo,
>
> I love your patch! Yet something to improve:
>
> [auto build test ERROR on linus/master]
> [also build test ERROR on v5.16-rc5]
> [If your patch is applied to the wrong git tree, kindly drop us a note.
> And when submitting patch, we suggest to use '--base' as documented in
> https://git-scm.com/docs/git-format-patch]
>
> url: https://github.com/0day-ci/linux/commits/Leo-Yan/coresight-etm-Correct-PID-tracing-for-non-root-namespace/20211213-201632
> base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 2585cf9dfaaddf00b069673f27bb3f8530e2039c
> config: arm-buildonly-randconfig-r003-20211213 (https://download.01.org/0day-ci/archive/20211214/202112140344.viPmOWp6-lkp@intel.com/config)
> compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project b6a2ddb6c8ac29412b1361810972e15221fa021c)
> 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 arm cross compiling tool for clang build
> # apt-get install binutils-arm-linux-gnueabi
> # https://github.com/0day-ci/linux/commit/81d5f47788c40d34c8159d64d4505eb485254e8f
> git remote add linux-review https://github.com/0day-ci/linux
> git fetch --no-tags linux-review Leo-Yan/coresight-etm-Correct-PID-tracing-for-non-root-namespace/20211213-201632
> git checkout 81d5f47788c40d34c8159d64d4505eb485254e8f
> # save the config file to linux build tree
> mkdir build_dir
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash drivers/hwtracing/coresight/
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp at intel.com>
>
> All errors (new ones prefixed by >>):
>
> >> drivers/hwtracing/coresight/coresight-etm3x-core.c:344:7: error: implicit declaration of function 'task_is_in_init_pid_ns' [-Werror,-Wimplicit-function-declaration]
> if (!task_is_in_init_pid_ns(current))
> ^
> 1 error generated.
>
>
> vim +/task_is_in_init_pid_ns +344 drivers/hwtracing/coresight/coresight-etm3x-core.c
>
> 301
> 302 #define ETM3X_SUPPORTED_OPTIONS (ETMCR_CYC_ACC | \
> 303 ETMCR_TIMESTAMP_EN | \
> 304 ETMCR_RETURN_STACK)
> 305
> 306 static int etm_parse_event_config(struct etm_drvdata *drvdata,
> 307 struct perf_event *event)
> 308 {
> 309 struct etm_config *config = &drvdata->config;
> 310 struct perf_event_attr *attr = &event->attr;
> 311
> 312 if (!attr)
> 313 return -EINVAL;
> 314
> 315 /* Clear configuration from previous run */
> 316 memset(config, 0, sizeof(struct etm_config));
> 317
> 318 if (attr->exclude_kernel)
> 319 config->mode = ETM_MODE_EXCL_KERN;
> 320
> 321 if (attr->exclude_user)
> 322 config->mode = ETM_MODE_EXCL_USER;
> 323
> 324 /* Always start from the default config */
> 325 etm_set_default(config);
> 326
> 327 /*
> 328 * By default the tracers are configured to trace the whole address
> 329 * range. Narrow the field only if requested by user space.
> 330 */
> 331 if (config->mode)
> 332 etm_config_trace_mode(config);
> 333
> 334 /*
> 335 * At this time only cycle accurate, return stack and timestamp
> 336 * options are available.
> 337 */
> 338 if (attr->config & ~ETM3X_SUPPORTED_OPTIONS)
> 339 return -EINVAL;
> 340
> 341 config->ctrl = attr->config;
> 342
> 343 /* Don't trace contextID when runs in non-root PID namespace */
> > 344 if (!task_is_in_init_pid_ns(current))
This patchset is based on another patchset [1], as described on the
cover letter patch. This is why here reports for building failure.
To avoid the false positive reporting, if any better practice I can
follow up to resolve the dependency between two patchsets, please let
me know and I will do in next time.
Thanks,
Leo
[1] https://lore.kernel.org/lkml/20211208083320.472503-1-leo.yan@linaro.org/
> 345 config->ctrl &= ~ETMCR_CTXID_SIZE;
> 346
> 347 /*
> 348 * Possible to have cores with PTM (supports ret stack) and ETM
> 349 * (never has ret stack) on the same SoC. So if we have a request
> 350 * for return stack that can't be honoured on this core then
> 351 * clear the bit - trace will still continue normally
> 352 */
> 353 if ((config->ctrl & ETMCR_RETURN_STACK) &&
> 354 !(drvdata->etmccer & ETMCCER_RETSTACK))
> 355 config->ctrl &= ~ETMCR_RETURN_STACK;
> 356
> 357 return 0;
> 358 }
> 359
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
More information about the linux-arm-kernel
mailing list