From: kbuild test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH] drm/mst: Fix up u64 division
Date: Sat, 09 Nov 2019 06:12:54 +0800 [thread overview]
Message-ID: <201911090652.CPRCCFGQ%lkp@intel.com> (raw)
In-Reply-To: <20191106173622.15573-1-sean@poorly.run>
[-- Attachment #1: Type: text/plain, Size: 6189 bytes --]
Hi Sean,
I love your patch! Perhaps something to improve:
[auto build test WARNING on drm-intel/for-linux-next]
[also build test WARNING on next-20191108]
[cannot apply to v5.4-rc6]
[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/Sean-Paul/drm-mst-Fix-up-u64-division/20191109-040829
base: git://anongit.freedesktop.org/drm-intel for-linux-next
config: m68k-allmodconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 7.4.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
GCC_VERSION=7.4.0 make.cross ARCH=m68k
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
drivers/gpu/drm/drm_dp_mst_topology.c: In function '__topology_ref_save':
drivers/gpu/drm/drm_dp_mst_topology.c:1424:6: error: implicit declaration of function 'stack_trace_save'; did you mean 'stack_depot_save'? [-Werror=implicit-function-declaration]
n = stack_trace_save(stack_entries, ARRAY_SIZE(stack_entries), 1);
^~~~~~~~~~~~~~~~
stack_depot_save
drivers/gpu/drm/drm_dp_mst_topology.c: In function '__dump_topology_ref_history':
drivers/gpu/drm/drm_dp_mst_topology.c:1513:3: error: implicit declaration of function 'stack_trace_snprint'; did you mean 'acpi_trace_point'? [-Werror=implicit-function-declaration]
stack_trace_snprint(buf, PAGE_SIZE, entries, nr_entries, 4);
^~~~~~~~~~~~~~~~~~~
acpi_trace_point
>> drivers/gpu/drm/drm_dp_mst_topology.c:1515:46: warning: format '%u' expects argument of type 'unsigned int', but argument 6 has type 'long unsigned int' [-Wformat=]
drm_printf(&p, " %d %ss (last at %5llu.%06u):\n%s",
~~~^
%06lu
cc1: some warnings being treated as errors
vim +1515 drivers/gpu/drm/drm_dp_mst_topology.c
1412
1413 static noinline void
1414 __topology_ref_save(struct drm_dp_mst_topology_mgr *mgr,
1415 struct drm_dp_mst_topology_ref_history *history,
1416 enum drm_dp_mst_topology_ref_type type)
1417 {
1418 struct drm_dp_mst_topology_ref_entry *entry = NULL;
1419 depot_stack_handle_t backtrace;
1420 ulong stack_entries[STACK_DEPTH];
1421 uint n;
1422 int i;
1423
> 1424 n = stack_trace_save(stack_entries, ARRAY_SIZE(stack_entries), 1);
1425 backtrace = stack_depot_save(stack_entries, n, GFP_KERNEL);
1426 if (!backtrace)
1427 return;
1428
1429 /* Try to find an existing entry for this backtrace */
1430 for (i = 0; i < history->len; i++) {
1431 if (history->entries[i].backtrace == backtrace) {
1432 entry = &history->entries[i];
1433 break;
1434 }
1435 }
1436
1437 /* Otherwise add one */
1438 if (!entry) {
1439 struct drm_dp_mst_topology_ref_entry *new;
1440 int new_len = history->len + 1;
1441
1442 new = krealloc(history->entries, sizeof(*new) * new_len,
1443 GFP_KERNEL);
1444 if (!new)
1445 return;
1446
1447 entry = &new[history->len];
1448 history->len = new_len;
1449 history->entries = new;
1450
1451 entry->backtrace = backtrace;
1452 entry->type = type;
1453 entry->count = 0;
1454 }
1455 entry->count++;
1456 entry->ts_nsec = ktime_get_ns();
1457 }
1458
1459 static int
1460 topology_ref_history_cmp(const void *a, const void *b)
1461 {
1462 const struct drm_dp_mst_topology_ref_entry *entry_a = a, *entry_b = b;
1463
1464 if (entry_a->ts_nsec > entry_b->ts_nsec)
1465 return 1;
1466 else if (entry_a->ts_nsec < entry_b->ts_nsec)
1467 return -1;
1468 else
1469 return 0;
1470 }
1471
1472 static inline const char *
1473 topology_ref_type_to_str(enum drm_dp_mst_topology_ref_type type)
1474 {
1475 if (type == DRM_DP_MST_TOPOLOGY_REF_GET)
1476 return "get";
1477 else
1478 return "put";
1479 }
1480
1481 static void
1482 __dump_topology_ref_history(struct drm_dp_mst_topology_ref_history *history,
1483 void *ptr, const char *type_str)
1484 {
1485 struct drm_printer p = drm_debug_printer(DBG_PREFIX);
1486 char *buf = kzalloc(PAGE_SIZE, GFP_KERNEL);
1487 int i;
1488
1489 if (!buf)
1490 return;
1491
1492 if (!history->len)
1493 goto out;
1494
1495 /* First, sort the list so that it goes from oldest to newest
1496 * reference entry
1497 */
1498 sort(history->entries, history->len, sizeof(*history->entries),
1499 topology_ref_history_cmp, NULL);
1500
1501 drm_printf(&p, "%s (%p) topology count reached 0, dumping history:\n",
1502 type_str, ptr);
1503
1504 for (i = 0; i < history->len; i++) {
1505 const struct drm_dp_mst_topology_ref_entry *entry =
1506 &history->entries[i];
1507 ulong *entries;
1508 uint nr_entries;
1509 u64 ts_nsec = entry->ts_nsec;
1510 u64 rem_nsec = do_div(ts_nsec, 1000000000);
1511
1512 nr_entries = stack_depot_fetch(entry->backtrace, &entries);
1513 stack_trace_snprint(buf, PAGE_SIZE, entries, nr_entries, 4);
1514
> 1515 drm_printf(&p, " %d %ss (last at %5llu.%06u):\n%s",
1516 entry->count,
1517 topology_ref_type_to_str(entry->type),
1518 ts_nsec, do_div(rem_nsec, 1000), buf);
1519 }
1520
1521 /* Now free the history, since this is the only time we expose it */
1522 kfree(history->entries);
1523 out:
1524 kfree(buf);
1525 }
1526
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 51345 bytes --]
prev parent reply other threads:[~2019-11-08 22:12 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-06 17:36 [PATCH] drm/mst: Fix up u64 division Sean Paul
2019-11-06 18:28 ` Ville Syrjälä
2019-11-06 19:41 ` Sean Paul
2019-11-06 20:14 ` Ville Syrjälä
2019-11-06 20:22 ` Sean Paul
2019-11-08 22:12 ` kbuild test robot [this message]
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=201911090652.CPRCCFGQ%lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@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.