* Re: [PATCH v2] kcov, usb, vhost: specify contexts for remote coverage sections
[not found] <223901affc7bd759b2d6995c2dbfbdd0a29bc88a.1602248029.git.andreyknvl@google.com>
@ 2020-10-10 18:57 ` kernel test robot
2020-10-10 20:08 ` kernel test robot
1 sibling, 0 replies; 2+ messages in thread
From: kernel test robot @ 2020-10-10 18:57 UTC (permalink / raw)
To: Andrey Konovalov, Dmitry Vyukov
Cc: kbuild-all, Andrew Morton, Linux Memory Management List,
linux-usb, linux-kernel, Greg Kroah-Hartman, Alan Stern,
Shuah Khan, Alexander Potapenko, Marco Elver
[-- Attachment #1: Type: text/plain, Size: 3879 bytes --]
Hi Andrey,
I love your patch! Yet something to improve:
[auto build test ERROR on usb/usb-testing]
[also build test ERROR on vhost/linux-next hnaz-linux-mm/master linus/master v5.9-rc8 next-20201009]
[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/Andrey-Konovalov/kcov-usb-vhost-specify-contexts-for-remote-coverage-sections/20201009-205923
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
config: x86_64-rhel-8.3 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/0day-ci/linux/commit/669e3ded7b025bc4f34c158e66974ff11f452a88
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Andrey-Konovalov/kcov-usb-vhost-specify-contexts-for-remote-coverage-sections/20201009-205923
git checkout 669e3ded7b025bc4f34c158e66974ff11f452a88
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
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 >>):
drivers/vhost/vhost.c: In function 'vhost_worker':
>> drivers/vhost/vhost.c:367:8: error: 'KCOV_CONTEXT_TASK' undeclared (first use in this function)
367 | KCOV_CONTEXT_TASK);
| ^~~~~~~~~~~~~~~~~
drivers/vhost/vhost.c:367:8: note: each undeclared identifier is reported only once for each function it appears in
--
drivers/usb/core/hub.c: In function 'hub_event':
>> drivers/usb/core/hub.c:5526:48: error: 'KCOV_CONTEXT_TASK' undeclared (first use in this function)
5526 | kcov_remote_start_usb((u64)hdev->bus->busnum, KCOV_CONTEXT_TASK);
| ^~~~~~~~~~~~~~~~~
drivers/usb/core/hub.c:5526:48: note: each undeclared identifier is reported only once for each function it appears in
--
drivers/usb/core/hcd.c: In function '__usb_hcd_giveback_urb':
>> drivers/usb/core/hcd.c:1649:52: error: 'KCOV_CONTEXT_SOFTIRQ' undeclared (first use in this function)
1649 | kcov_remote_start_usb((u64)urb->dev->bus->busnum, KCOV_CONTEXT_SOFTIRQ);
| ^~~~~~~~~~~~~~~~~~~~
drivers/usb/core/hcd.c:1649:52: note: each undeclared identifier is reported only once for each function it appears in
vim +/KCOV_CONTEXT_TASK +367 drivers/vhost/vhost.c
338
339 static int vhost_worker(void *data)
340 {
341 struct vhost_dev *dev = data;
342 struct vhost_work *work, *work_next;
343 struct llist_node *node;
344
345 kthread_use_mm(dev->mm);
346
347 for (;;) {
348 /* mb paired w/ kthread_stop */
349 set_current_state(TASK_INTERRUPTIBLE);
350
351 if (kthread_should_stop()) {
352 __set_current_state(TASK_RUNNING);
353 break;
354 }
355
356 node = llist_del_all(&dev->work_list);
357 if (!node)
358 schedule();
359
360 node = llist_reverse_order(node);
361 /* make sure flag is seen after deletion */
362 smp_wmb();
363 llist_for_each_entry_safe(work, work_next, node, node) {
364 clear_bit(VHOST_WORK_QUEUED, &work->flags);
365 __set_current_state(TASK_RUNNING);
366 kcov_remote_start_common(dev->kcov_handle,
> 367 KCOV_CONTEXT_TASK);
368 work->fn(work);
369 kcov_remote_stop(KCOV_CONTEXT_TASK);
370 if (need_resched())
371 schedule();
372 }
373 }
374 kthread_unuse_mm(dev->mm);
375 return 0;
376 }
377
---
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: 40688 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH v2] kcov, usb, vhost: specify contexts for remote coverage sections
[not found] <223901affc7bd759b2d6995c2dbfbdd0a29bc88a.1602248029.git.andreyknvl@google.com>
2020-10-10 18:57 ` [PATCH v2] kcov, usb, vhost: specify contexts for remote coverage sections kernel test robot
@ 2020-10-10 20:08 ` kernel test robot
1 sibling, 0 replies; 2+ messages in thread
From: kernel test robot @ 2020-10-10 20:08 UTC (permalink / raw)
To: Andrey Konovalov, Dmitry Vyukov
Cc: kbuild-all, Andrew Morton, Linux Memory Management List,
linux-usb, linux-kernel, Greg Kroah-Hartman, Alan Stern,
Shuah Khan, Alexander Potapenko, Marco Elver
[-- Attachment #1: Type: text/plain, Size: 7072 bytes --]
Hi Andrey,
I love your patch! Yet something to improve:
[auto build test ERROR on usb/usb-testing]
[also build test ERROR on vhost/linux-next hnaz-linux-mm/master linus/master v5.9-rc8 next-20201009]
[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/Andrey-Konovalov/kcov-usb-vhost-specify-contexts-for-remote-coverage-sections/20201009-205923
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
config: x86_64-rhel (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/0day-ci/linux/commit/669e3ded7b025bc4f34c158e66974ff11f452a88
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Andrey-Konovalov/kcov-usb-vhost-specify-contexts-for-remote-coverage-sections/20201009-205923
git checkout 669e3ded7b025bc4f34c158e66974ff11f452a88
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
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 >>):
drivers/usb/core/hub.c: In function 'hub_event':
>> drivers/usb/core/hub.c:5526:48: error: 'KCOV_CONTEXT_TASK' undeclared (first use in this function)
5526 | kcov_remote_start_usb((u64)hdev->bus->busnum, KCOV_CONTEXT_TASK);
| ^~~~~~~~~~~~~~~~~
drivers/usb/core/hub.c:5526:48: note: each undeclared identifier is reported only once for each function it appears in
--
drivers/usb/core/hcd.c: In function '__usb_hcd_giveback_urb':
>> drivers/usb/core/hcd.c:1649:52: error: 'KCOV_CONTEXT_SOFTIRQ' undeclared (first use in this function)
1649 | kcov_remote_start_usb((u64)urb->dev->bus->busnum, KCOV_CONTEXT_SOFTIRQ);
| ^~~~~~~~~~~~~~~~~~~~
drivers/usb/core/hcd.c:1649:52: note: each undeclared identifier is reported only once for each function it appears in
--
drivers/vhost/vhost.c: In function 'vhost_worker':
>> drivers/vhost/vhost.c:367:8: error: 'KCOV_CONTEXT_TASK' undeclared (first use in this function)
367 | KCOV_CONTEXT_TASK);
| ^~~~~~~~~~~~~~~~~
drivers/vhost/vhost.c:367:8: note: each undeclared identifier is reported only once for each function it appears in
vim +/KCOV_CONTEXT_TASK +5526 drivers/usb/core/hub.c
5510
5511 static void hub_event(struct work_struct *work)
5512 {
5513 struct usb_device *hdev;
5514 struct usb_interface *intf;
5515 struct usb_hub *hub;
5516 struct device *hub_dev;
5517 u16 hubstatus;
5518 u16 hubchange;
5519 int i, ret;
5520
5521 hub = container_of(work, struct usb_hub, events);
5522 hdev = hub->hdev;
5523 hub_dev = hub->intfdev;
5524 intf = to_usb_interface(hub_dev);
5525
> 5526 kcov_remote_start_usb((u64)hdev->bus->busnum, KCOV_CONTEXT_TASK);
5527
5528 dev_dbg(hub_dev, "state %d ports %d chg %04x evt %04x\n",
5529 hdev->state, hdev->maxchild,
5530 /* NOTE: expects max 15 ports... */
5531 (u16) hub->change_bits[0],
5532 (u16) hub->event_bits[0]);
5533
5534 /* Lock the device, then check to see if we were
5535 * disconnected while waiting for the lock to succeed. */
5536 usb_lock_device(hdev);
5537 if (unlikely(hub->disconnected))
5538 goto out_hdev_lock;
5539
5540 /* If the hub has died, clean up after it */
5541 if (hdev->state == USB_STATE_NOTATTACHED) {
5542 hub->error = -ENODEV;
5543 hub_quiesce(hub, HUB_DISCONNECT);
5544 goto out_hdev_lock;
5545 }
5546
5547 /* Autoresume */
5548 ret = usb_autopm_get_interface(intf);
5549 if (ret) {
5550 dev_dbg(hub_dev, "Can't autoresume: %d\n", ret);
5551 goto out_hdev_lock;
5552 }
5553
5554 /* If this is an inactive hub, do nothing */
5555 if (hub->quiescing)
5556 goto out_autopm;
5557
5558 if (hub->error) {
5559 dev_dbg(hub_dev, "resetting for error %d\n", hub->error);
5560
5561 ret = usb_reset_device(hdev);
5562 if (ret) {
5563 dev_dbg(hub_dev, "error resetting hub: %d\n", ret);
5564 goto out_autopm;
5565 }
5566
5567 hub->nerrors = 0;
5568 hub->error = 0;
5569 }
5570
5571 /* deal with port status changes */
5572 for (i = 1; i <= hdev->maxchild; i++) {
5573 struct usb_port *port_dev = hub->ports[i - 1];
5574
5575 if (test_bit(i, hub->event_bits)
5576 || test_bit(i, hub->change_bits)
5577 || test_bit(i, hub->wakeup_bits)) {
5578 /*
5579 * The get_noresume and barrier ensure that if
5580 * the port was in the process of resuming, we
5581 * flush that work and keep the port active for
5582 * the duration of the port_event(). However,
5583 * if the port is runtime pm suspended
5584 * (powered-off), we leave it in that state, run
5585 * an abbreviated port_event(), and move on.
5586 */
5587 pm_runtime_get_noresume(&port_dev->dev);
5588 pm_runtime_barrier(&port_dev->dev);
5589 usb_lock_port(port_dev);
5590 port_event(hub, i);
5591 usb_unlock_port(port_dev);
5592 pm_runtime_put_sync(&port_dev->dev);
5593 }
5594 }
5595
5596 /* deal with hub status changes */
5597 if (test_and_clear_bit(0, hub->event_bits) == 0)
5598 ; /* do nothing */
5599 else if (hub_hub_status(hub, &hubstatus, &hubchange) < 0)
5600 dev_err(hub_dev, "get_hub_status failed\n");
5601 else {
5602 if (hubchange & HUB_CHANGE_LOCAL_POWER) {
5603 dev_dbg(hub_dev, "power change\n");
5604 clear_hub_feature(hdev, C_HUB_LOCAL_POWER);
5605 if (hubstatus & HUB_STATUS_LOCAL_POWER)
5606 /* FIXME: Is this always true? */
5607 hub->limited_power = 1;
5608 else
5609 hub->limited_power = 0;
5610 }
5611 if (hubchange & HUB_CHANGE_OVERCURRENT) {
5612 u16 status = 0;
5613 u16 unused;
5614
5615 dev_dbg(hub_dev, "over-current change\n");
5616 clear_hub_feature(hdev, C_HUB_OVER_CURRENT);
5617 msleep(500); /* Cool down */
5618 hub_power_on(hub, true);
5619 hub_hub_status(hub, &status, &unused);
5620 if (status & HUB_STATUS_OVERCURRENT)
5621 dev_err(hub_dev, "over-current condition\n");
5622 }
5623 }
5624
5625 out_autopm:
5626 /* Balance the usb_autopm_get_interface() above */
5627 usb_autopm_put_interface_no_suspend(intf);
5628 out_hdev_lock:
5629 usb_unlock_device(hdev);
5630
5631 /* Balance the stuff in kick_hub_wq() and allow autosuspend */
5632 usb_autopm_put_interface(intf);
5633 kref_put(&hub->kref, hub_release);
5634
5635 kcov_remote_stop(KCOV_CONTEXT_TASK);
5636 }
5637
---
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: 45567 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-10-10 20:09 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <223901affc7bd759b2d6995c2dbfbdd0a29bc88a.1602248029.git.andreyknvl@google.com>
2020-10-10 18:57 ` [PATCH v2] kcov, usb, vhost: specify contexts for remote coverage sections kernel test robot
2020-10-10 20:08 ` kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox