All of lore.kernel.org
 help / color / mirror / Atom feed
From: kbuild test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [RFC v2 net-next 09/12] vhost_net: user tap recvmsg api to access ptr ring
Date: Thu, 26 Dec 2019 17:05:29 +0800	[thread overview]
Message-ID: <201912261702.xTJkVYzF%lkp@intel.com> (raw)
In-Reply-To: <20191226023200.21389-10-prashantbhole.linux@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 6179 bytes --]

Hi Prashant,

[FYI, it's a private test report for your RFC patch.]
[auto build test ERROR on net-next/master]
[also build test ERROR on next-20191220]
[cannot apply to net/master bpf-next/master bpf/master v5.5-rc3]
[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/Prashant-Bhole/XDP-in-tx-path/20191226-103951
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 9f6cff995e98258b6b81cc864532f633e5b3a081
config: i386-randconfig-d001-20191225 (attached as .config)
compiler: gcc-7 (Debian 7.5.0-3) 7.5.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   ld: drivers/net/tap.o: in function `ptr_ring_unconsume':
>> include/linux/ptr_ring.h:552: undefined reference to `tun_ptr_free'

vim +552 include/linux/ptr_ring.h

2e0ab8ca83c122 Michael S. Tsirkin 2016-06-13  499  
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  500  /*
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  501   * Return entries into ring. Destroy entries that don't fit.
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  502   *
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  503   * Note: this is expected to be a rare slow path operation.
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  504   *
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  505   * Note: producer lock is nested within consumer lock, so if you
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  506   * resize you must make sure all uses nest correctly.
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  507   * In particular if you consume ring in interrupt or BH context, you must
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  508   * disable interrupts/BH when doing so.
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  509   */
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  510  static inline void ptr_ring_unconsume(struct ptr_ring *r, void **batch, int n,
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  511  				      void (*destroy)(void *))
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  512  {
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  513  	unsigned long flags;
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  514  	int head;
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  515  
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  516  	spin_lock_irqsave(&r->consumer_lock, flags);
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  517  	spin_lock(&r->producer_lock);
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  518  
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  519  	if (!r->size)
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  520  		goto done;
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  521  
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  522  	/*
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  523  	 * Clean out buffered entries (for simplicity). This way following code
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  524  	 * can test entries for NULL and if not assume they are valid.
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  525  	 */
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  526  	head = r->consumer_head - 1;
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  527  	while (likely(head >= r->consumer_tail))
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  528  		r->queue[head--] = NULL;
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  529  	r->consumer_tail = r->consumer_head;
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  530  
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  531  	/*
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  532  	 * Go over entries in batch, start moving head back and copy entries.
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  533  	 * Stop when we run into previously unconsumed entries.
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  534  	 */
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  535  	while (n) {
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  536  		head = r->consumer_head - 1;
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  537  		if (head < 0)
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  538  			head = r->size - 1;
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  539  		if (r->queue[head]) {
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  540  			/* This batch entry will have to be destroyed. */
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  541  			goto done;
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  542  		}
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  543  		r->queue[head] = batch[--n];
a259df36d1fbf2 Michael S. Tsirkin 2018-01-26  544  		r->consumer_tail = head;
a259df36d1fbf2 Michael S. Tsirkin 2018-01-26  545  		/* matching READ_ONCE in __ptr_ring_empty for lockless tests */
a259df36d1fbf2 Michael S. Tsirkin 2018-01-26  546  		WRITE_ONCE(r->consumer_head, head);
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  547  	}
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  548  
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  549  done:
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  550  	/* Destroy all entries left in the batch. */
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  551  	while (n)
197a5212c3dd70 Michael S. Tsirkin 2017-05-17 @552  		destroy(batch[--n]);
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  553  	spin_unlock(&r->producer_lock);
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  554  	spin_unlock_irqrestore(&r->consumer_lock, flags);
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  555  }
197a5212c3dd70 Michael S. Tsirkin 2017-05-17  556  

:::::: The code at line 552 was first introduced by commit
:::::: 197a5212c3dd70be267b5cd930be0fb68bb53018 ptr_ring: add ptr_ring_unconsume

:::::: TO: Michael S. Tsirkin <mst@redhat.com>
:::::: CC: David S. Miller <davem@davemloft.net>

---
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: 33631 bytes --]

  reply	other threads:[~2019-12-26  9:05 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-26  2:31 [RFC v2 net-next 00/12] XDP in tx path Prashant Bhole
2019-12-26  2:31 ` [RFC v2 net-next 01/12] net: introduce BPF_XDP_EGRESS attach type for XDP Prashant Bhole
2019-12-27 14:27   ` Jesper Dangaard Brouer
2019-12-28  0:15     ` Prashant Bhole
2020-01-07 11:35       ` Toke Høiland-Jørgensen
2020-01-11  0:53         ` Prashant Bhole
2019-12-26  2:31 ` [RFC v2 net-next 02/12] tools: sync kernel uapi/linux/if_link.h header Prashant Bhole
2019-12-26  2:31 ` [RFC v2 net-next 03/12] libbpf: api for getting/setting link xdp options Prashant Bhole
2019-12-30  4:49   ` Andrii Nakryiko
2020-01-03 11:04     ` Prashant Bhole
2019-12-26  2:31 ` [RFC v2 net-next 04/12] libbpf: set xdp program in tx path Prashant Bhole
2019-12-26  2:31 ` [RFC v2 net-next 05/12] samples/bpf: xdp1, add XDP tx support Prashant Bhole
2019-12-26  2:31 ` [RFC v2 net-next 06/12] net: core: rename netif_receive_generic_xdp() to do_generic_xdp_core() Prashant Bhole
2019-12-26  2:31 ` [RFC v2 net-next 07/12] net: core: export do_xdp_generic_core() Prashant Bhole
2019-12-26  2:31 ` [RFC v2 net-next 08/12] tuntap: check tun_msg_ctl type at necessary places Prashant Bhole
2019-12-26  2:31 ` [RFC v2 net-next 09/12] vhost_net: user tap recvmsg api to access ptr ring Prashant Bhole
2019-12-26  9:05   ` kbuild test robot [this message]
2019-12-26  2:31 ` [RFC v2 net-next 10/12] tuntap: remove usage of ptr ring in vhost_net Prashant Bhole
2019-12-26  2:31 ` [RFC v2 net-next 11/12] tun: set tx path XDP program Prashant Bhole
2019-12-26  2:32 ` [RFC v2 net-next 12/12] tun: run XDP program in tx path Prashant Bhole
2019-12-26 19:23 ` [RFC v2 net-next 00/12] XDP " Tom Herbert
2019-12-27  1:35   ` Prashant Bhole

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=201912261702.xTJkVYzF%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.