From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: kernel/trace/trace_osnoise.c:1471:2: warning: %d in format string (no. 1) requires 'int' but the argument type is 'unsigned int'. [invalidPrintfArgType_sint]
Date: Mon, 10 Jan 2022 01:39:41 +0800 [thread overview]
Message-ID: <202201092254.wcC7LuOL-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 16468 bytes --]
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Daniel Bristot de Oliveira <bristot@redhat.com>
CC: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 4634129ad9fdc89d10b597fc6f8f4336fb61e105
commit: 498627b4ac85780b9962ed9b5c5abbefd884ef8e trace/osnoise: Fix return value on osnoise_init_hotplug_support
date: 7 months ago
:::::: branch date: 17 hours ago
:::::: commit date: 7 months ago
compiler: arc-elf-gcc (GCC) 11.2.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
cppcheck possible warnings: (new ones prefixed by >>, may not real problems)
>> kernel/trace/trace_osnoise.c:1611:8: warning: snprintf format string requires 2 parameters but only 1 is given. [wrongPrintfScanfArgNum]
len = snprintf(NULL, 0, "%*pbln", cpumask_pr_args(&osnoise_cpumask)) + 1;
^
kernel/trace/trace_osnoise.c:1618:8: warning: snprintf format string requires 2 parameters but only 1 is given. [wrongPrintfScanfArgNum]
len = snprintf(mask_str, len, "%*pbln", cpumask_pr_args(&osnoise_cpumask));
^
vim +1471 kernel/trace/trace_osnoise.c
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1453
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1454 /*
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1455 * start_kthread - Start a workload tread
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1456 */
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1457 static int start_kthread(unsigned int cpu)
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1458 {
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1459 struct task_struct *kthread;
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1460 void *main = osnoise_main;
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1461 char comm[24];
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1462
a955d7eac1779b Daniel Bristot de Oliveira 2021-06-22 1463 #ifdef CONFIG_TIMERLAT_TRACER
a955d7eac1779b Daniel Bristot de Oliveira 2021-06-22 1464 if (osnoise_data.timerlat_tracer) {
a955d7eac1779b Daniel Bristot de Oliveira 2021-06-22 1465 snprintf(comm, 24, "timerlat/%d", cpu);
a955d7eac1779b Daniel Bristot de Oliveira 2021-06-22 1466 main = timerlat_main;
a955d7eac1779b Daniel Bristot de Oliveira 2021-06-22 1467 } else {
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1468 snprintf(comm, 24, "osnoise/%d", cpu);
a955d7eac1779b Daniel Bristot de Oliveira 2021-06-22 1469 }
a955d7eac1779b Daniel Bristot de Oliveira 2021-06-22 1470 #else
a955d7eac1779b Daniel Bristot de Oliveira 2021-06-22 @1471 snprintf(comm, 24, "osnoise/%d", cpu);
a955d7eac1779b Daniel Bristot de Oliveira 2021-06-22 1472 #endif
a955d7eac1779b Daniel Bristot de Oliveira 2021-06-22 1473 kthread = kthread_create_on_cpu(main, NULL, cpu, comm);
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1474
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1475 if (IS_ERR(kthread)) {
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1476 pr_err(BANNER "could not start sampling thread\n");
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1477 stop_per_cpu_kthreads();
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1478 return -ENOMEM;
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1479 }
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1480
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1481 per_cpu(per_cpu_osnoise_var, cpu).kthread = kthread;
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1482 wake_up_process(kthread);
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1483
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1484 return 0;
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1485 }
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1486
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1487 /*
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1488 * start_per_cpu_kthread - Kick off per-cpu osnoise sampling kthreads
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1489 *
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1490 * This starts the kernel thread that will look for osnoise on many
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1491 * cpus.
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1492 */
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1493 static int start_per_cpu_kthreads(struct trace_array *tr)
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1494 {
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1495 struct cpumask *current_mask = &save_cpumask;
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1496 int retval;
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1497 int cpu;
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1498
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1499 get_online_cpus();
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1500 /*
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1501 * Run only on CPUs in which trace and osnoise are allowed to run.
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1502 */
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1503 cpumask_and(current_mask, tr->tracing_cpumask, &osnoise_cpumask);
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1504 /*
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1505 * And the CPU is online.
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1506 */
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1507 cpumask_and(current_mask, cpu_online_mask, current_mask);
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1508
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1509 for_each_possible_cpu(cpu)
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1510 per_cpu(per_cpu_osnoise_var, cpu).kthread = NULL;
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1511
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1512 for_each_cpu(cpu, current_mask) {
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1513 retval = start_kthread(cpu);
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1514 if (retval) {
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1515 stop_per_cpu_kthreads();
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1516 return retval;
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1517 }
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1518 }
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1519
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1520 put_online_cpus();
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1521
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1522 return 0;
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1523 }
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1524
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1525 #ifdef CONFIG_HOTPLUG_CPU
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1526 static void osnoise_hotplug_workfn(struct work_struct *dummy)
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1527 {
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1528 struct trace_array *tr = osnoise_trace;
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1529 unsigned int cpu = smp_processor_id();
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1530
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1531
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1532 mutex_lock(&trace_types_lock);
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1533
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1534 if (!osnoise_busy)
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1535 goto out_unlock_trace;
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1536
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1537 mutex_lock(&interface_lock);
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1538 get_online_cpus();
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1539
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1540 if (!cpumask_test_cpu(cpu, &osnoise_cpumask))
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1541 goto out_unlock;
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1542
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1543 if (!cpumask_test_cpu(cpu, tr->tracing_cpumask))
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1544 goto out_unlock;
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1545
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1546 start_kthread(cpu);
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1547
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1548 out_unlock:
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1549 put_online_cpus();
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1550 mutex_unlock(&interface_lock);
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1551 out_unlock_trace:
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1552 mutex_unlock(&trace_types_lock);
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1553 }
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1554
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1555 static DECLARE_WORK(osnoise_hotplug_work, osnoise_hotplug_workfn);
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1556
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1557 /*
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1558 * osnoise_cpu_init - CPU hotplug online callback function
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1559 */
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1560 static int osnoise_cpu_init(unsigned int cpu)
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1561 {
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1562 schedule_work_on(cpu, &osnoise_hotplug_work);
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1563 return 0;
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1564 }
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1565
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1566 /*
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1567 * osnoise_cpu_die - CPU hotplug offline callback function
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1568 */
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1569 static int osnoise_cpu_die(unsigned int cpu)
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1570 {
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1571 stop_kthread(cpu);
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1572 return 0;
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1573 }
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1574
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1575 static void osnoise_init_hotplug_support(void)
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1576 {
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1577 int ret;
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1578
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1579 ret = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "trace/osnoise:online",
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1580 osnoise_cpu_init, osnoise_cpu_die);
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1581 if (ret < 0)
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1582 pr_warn(BANNER "Error to init cpu hotplug support\n");
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1583
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1584 return;
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1585 }
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1586 #else /* CONFIG_HOTPLUG_CPU */
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1587 static void osnoise_init_hotplug_support(void)
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1588 {
498627b4ac8578 Daniel Bristot de Oliveira 2021-06-28 1589 return;
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1590 }
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1591 #endif /* CONFIG_HOTPLUG_CPU */
c8895e271f7994 Daniel Bristot de Oliveira 2021-06-22 1592
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1593 /*
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1594 * osnoise_cpus_read - Read function for reading the "cpus" file
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1595 * @filp: The active open file structure
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1596 * @ubuf: The userspace provided buffer to read value into
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1597 * @cnt: The maximum number of bytes to read
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1598 * @ppos: The current "file" position
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1599 *
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1600 * Prints the "cpus" output into the user-provided buffer.
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1601 */
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1602 static ssize_t
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1603 osnoise_cpus_read(struct file *filp, char __user *ubuf, size_t count,
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1604 loff_t *ppos)
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1605 {
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1606 char *mask_str;
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1607 int len;
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1608
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1609 mutex_lock(&interface_lock);
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1610
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 @1611 len = snprintf(NULL, 0, "%*pbl\n", cpumask_pr_args(&osnoise_cpumask)) + 1;
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1612 mask_str = kmalloc(len, GFP_KERNEL);
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1613 if (!mask_str) {
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1614 count = -ENOMEM;
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1615 goto out_unlock;
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1616 }
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1617
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1618 len = snprintf(mask_str, len, "%*pbl\n", cpumask_pr_args(&osnoise_cpumask));
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1619 if (len >= count) {
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1620 count = -EINVAL;
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1621 goto out_free;
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1622 }
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1623
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1624 count = simple_read_from_buffer(ubuf, count, ppos, mask_str, len);
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1625
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1626 out_free:
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1627 kfree(mask_str);
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1628 out_unlock:
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1629 mutex_unlock(&interface_lock);
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1630
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1631 return count;
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1632 }
bce29ac9ce0bb0 Daniel Bristot de Oliveira 2021-06-22 1633
:::::: The code at line 1471 was first introduced by commit
:::::: a955d7eac1779b437ceb24fc352026a2cbcec140 trace: Add timerlat tracer
:::::: TO: Daniel Bristot de Oliveira <bristot@redhat.com>
:::::: CC: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
next reply other threads:[~2022-01-09 17:39 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-09 17:39 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2021-08-20 17:11 kernel/trace/trace_osnoise.c:1471:2: warning: %d in format string (no. 1) requires 'int' but the argument type is 'unsigned int'. [invalidPrintfArgType_sint] kernel test robot
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=202201092254.wcC7LuOL-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild@lists.01.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.