All of lore.kernel.org
 help / color / mirror / Atom feed
From: Aaron Conole <aconole@redhat.com>
To: kbuild test robot <lkp@intel.com>
Cc: netdev@vger.kernel.org, "Michael S. Tsirkin" <mst@redhat.com>,
	kbuild-all@01.org, linux-kernel@vger.kernel.org,
	virtualization@lists.linux-foundation.org
Subject: Re: [PATCH -next 2/2] virtio_net: Read the advised MTU
Date: Thu, 02 Jun 2016 13:48:41 -0400	[thread overview]
Message-ID: <f7tvb1rqy6e.fsf@redhat.com> (raw)
In-Reply-To: <201606030134.9z1SDe8C%fengguang.wu@intel.com> (kbuild test robot's message of "Fri, 3 Jun 2016 01:25:49 +0800")


kbuild test robot <lkp@intel.com> writes:

> Hi,
>
> [auto build test ERROR on next-20160602]
>
> url:    https://github.com/0day-ci/linux/commits/Aaron-Conole/virtio-net-Advised-MTU-feature/20160603-000714
> config: i386-allmodconfig (attached as .config)
> compiler: gcc-6 (Debian 6.1.1-1) 6.1.1 20160430
> reproduce:
>         # save the attached .config to linux build tree
>         make ARCH=i386 
>
> Note: the linux-review/Aaron-Conole/virtio-net-Advised-MTU-feature/20160603-000714 HEAD d909da4df3c52f78b4f5fcccd89aea5e38722d10 builds fine.
>       It only hurts bisectibility.
>
> All errors (new ones prefixed by >>):
>
>    drivers/net/virtio_net.c: In function 'virtnet_probe':
>>> drivers/net/virtio_net.c:1899:31: error: 'VIRTIO_NET_F_MTU'
>>> undeclared (first use in this function)
>      if (virtio_has_feature(vdev, VIRTIO_NET_F_MTU)) {
>                                   ^~~~~~~~~~~~~~~~
>    drivers/net/virtio_net.c:1899:31: note: each undeclared identifier is reported only once for each function it appears in
>    drivers/net/virtio_net.c: At top level:
>>> drivers/net/virtio_net.c:2076:2: error: 'VIRTIO_NET_F_MTU'
>>> undeclared here (not in a function)
>      VIRTIO_NET_F_MTU,
>      ^~~~~~~~~~~~~~~~

Oops, hunk was dropped during rebase.  Sorry for this, v2 will fix this
error, as well and I'll do a boot test before submission.

Thanks kbuild robot!

> vim +/VIRTIO_NET_F_MTU +1899 drivers/net/virtio_net.c
>
>   1893		    virtio_has_feature(vdev, VIRTIO_F_VERSION_1))
>   1894			vi->any_header_sg = true;
>   1895	
>   1896		if (virtio_has_feature(vdev, VIRTIO_NET_F_CTRL_VQ))
>   1897			vi->has_cvq = true;
>   1898	
>> 1899		if (virtio_has_feature(vdev, VIRTIO_NET_F_MTU)) {
>   1900			dev->mtu = virtio_cread16(vdev,
>   1901 offsetof(struct virtio_net_config,
>   1902							   mtu));
>   1903		}
>   1904	
>   1905		if (vi->any_header_sg)
>   1906			dev->needed_headroom = vi->hdr_len;
>   1907	
>   1908		/* Use single tx/rx queue pair as default */
>   1909		vi->curr_queue_pairs = 1;
>   1910		vi->max_queue_pairs = max_queue_pairs;
>   1911	
>   1912		/* Allocate/initialize the rx/tx queues, and invoke find_vqs */
>   1913		err = init_vqs(vi);
>   1914		if (err)
>   1915			goto free_stats;
>   1916	
>   1917	#ifdef CONFIG_SYSFS
>   1918		if (vi->mergeable_rx_bufs)
>   1919			dev->sysfs_rx_queue_group = &virtio_net_mrg_rx_group;
>   1920	#endif
>   1921		netif_set_real_num_tx_queues(dev, vi->curr_queue_pairs);
>   1922		netif_set_real_num_rx_queues(dev, vi->curr_queue_pairs);
>   1923	
>   1924		virtnet_init_settings(dev);
>   1925	
>   1926		err = register_netdev(dev);
>   1927		if (err) {
>   1928			pr_debug("virtio_net: registering device failed\n");
>   1929			goto free_vqs;
>   1930		}
>   1931	
>   1932		virtio_device_ready(vdev);
>   1933	
>   1934		vi->nb.notifier_call = &virtnet_cpu_callback;
>   1935		err = register_hotcpu_notifier(&vi->nb);
>   1936		if (err) {
>   1937			pr_debug("virtio_net: registering cpu notifier failed\n");
>   1938			goto free_unregister_netdev;
>   1939		}
>   1940	
>   1941		/* Assume link up if device can't report link status,
>   1942		   otherwise get link status from config. */
>   1943		if (virtio_has_feature(vi->vdev, VIRTIO_NET_F_STATUS)) {
>   1944			netif_carrier_off(dev);
>   1945			schedule_work(&vi->config_work);
>   1946		} else {
>   1947			vi->status = VIRTIO_NET_S_LINK_UP;
>   1948			netif_carrier_on(dev);
>   1949		}
>   1950	
>   1951		pr_debug("virtnet: registered device %s with %d RX and TX vq's\n",
>   1952			 dev->name, max_queue_pairs);
>   1953	
>   1954		return 0;
>   1955	
>   1956	free_unregister_netdev:
>   1957		vi->vdev->config->reset(vdev);
>   1958	
>   1959		unregister_netdev(dev);
>   1960	free_vqs:
>   1961		cancel_delayed_work_sync(&vi->refill);
>   1962		free_receive_page_frags(vi);
>   1963		virtnet_del_vqs(vi);
>   1964	free_stats:
>   1965		free_percpu(vi->stats);
>   1966	free:
>   1967		free_netdev(dev);
>   1968		return err;
>   1969	}
>   1970	
>   1971	static void remove_vq_common(struct virtnet_info *vi)
>   1972	{
>   1973		vi->vdev->config->reset(vi->vdev);
>   1974	
>   1975		/* Free unused buffers in both send and recv, if any. */
>   1976		free_unused_bufs(vi);
>   1977	
>   1978		free_receive_bufs(vi);
>   1979	
>   1980		free_receive_page_frags(vi);
>   1981	
>   1982		virtnet_del_vqs(vi);
>   1983	}
>   1984	
>   1985	static void virtnet_remove(struct virtio_device *vdev)
>   1986	{
>   1987		struct virtnet_info *vi = vdev->priv;
>   1988	
>   1989		unregister_hotcpu_notifier(&vi->nb);
>   1990	
>   1991		/* Make sure no work handler is accessing the device. */
>   1992		flush_work(&vi->config_work);
>   1993	
>   1994		unregister_netdev(vi->dev);
>   1995	
>   1996		remove_vq_common(vi);
>   1997	
>   1998		free_percpu(vi->stats);
>   1999		free_netdev(vi->dev);
>   2000	}
>   2001	
>   2002	#ifdef CONFIG_PM_SLEEP
>   2003	static int virtnet_freeze(struct virtio_device *vdev)
>   2004	{
>   2005		struct virtnet_info *vi = vdev->priv;
>   2006		int i;
>   2007	
>   2008		unregister_hotcpu_notifier(&vi->nb);
>   2009	
>   2010		/* Make sure no work handler is accessing the device */
>   2011		flush_work(&vi->config_work);
>   2012	
>   2013		netif_device_detach(vi->dev);
>   2014		cancel_delayed_work_sync(&vi->refill);
>   2015	
>   2016		if (netif_running(vi->dev)) {
>   2017			for (i = 0; i < vi->max_queue_pairs; i++)
>   2018				napi_disable(&vi->rq[i].napi);
>   2019		}
>   2020	
>   2021		remove_vq_common(vi);
>   2022	
>   2023		return 0;
>   2024	}
>   2025	
>   2026	static int virtnet_restore(struct virtio_device *vdev)
>   2027	{
>   2028		struct virtnet_info *vi = vdev->priv;
>   2029		int err, i;
>   2030	
>   2031		err = init_vqs(vi);
>   2032		if (err)
>   2033			return err;
>   2034	
>   2035		virtio_device_ready(vdev);
>   2036	
>   2037		if (netif_running(vi->dev)) {
>   2038			for (i = 0; i < vi->curr_queue_pairs; i++)
>   2039				if (!try_fill_recv(vi, &vi->rq[i], GFP_KERNEL))
>   2040					schedule_delayed_work(&vi->refill, 0);
>   2041	
>   2042			for (i = 0; i < vi->max_queue_pairs; i++)
>   2043				virtnet_napi_enable(&vi->rq[i]);
>   2044		}
>   2045	
>   2046		netif_device_attach(vi->dev);
>   2047	
>   2048		rtnl_lock();
>   2049		virtnet_set_queues(vi, vi->curr_queue_pairs);
>   2050		rtnl_unlock();
>   2051	
>   2052		err = register_hotcpu_notifier(&vi->nb);
>   2053		if (err)
>   2054			return err;
>   2055	
>   2056		return 0;
>   2057	}
>   2058	#endif
>   2059	
>   2060	static struct virtio_device_id id_table[] = {
>   2061		{ VIRTIO_ID_NET, VIRTIO_DEV_ANY_ID },
>   2062		{ 0 },
>   2063	};
>   2064	
>   2065	static unsigned int features[] = {
>   2066		VIRTIO_NET_F_CSUM, VIRTIO_NET_F_GUEST_CSUM,
>   2067		VIRTIO_NET_F_GSO, VIRTIO_NET_F_MAC,
>   2068 VIRTIO_NET_F_HOST_TSO4, VIRTIO_NET_F_HOST_UFO,
> VIRTIO_NET_F_HOST_TSO6,
>   2069 VIRTIO_NET_F_HOST_ECN, VIRTIO_NET_F_GUEST_TSO4,
> VIRTIO_NET_F_GUEST_TSO6,
>   2070		VIRTIO_NET_F_GUEST_ECN, VIRTIO_NET_F_GUEST_UFO,
>   2071		VIRTIO_NET_F_MRG_RXBUF, VIRTIO_NET_F_STATUS, VIRTIO_NET_F_CTRL_VQ,
>   2072		VIRTIO_NET_F_CTRL_RX, VIRTIO_NET_F_CTRL_VLAN,
>   2073		VIRTIO_NET_F_GUEST_ANNOUNCE, VIRTIO_NET_F_MQ,
>   2074		VIRTIO_NET_F_CTRL_MAC_ADDR,
>   2075		VIRTIO_F_ANY_LAYOUT,
>> 2076		VIRTIO_NET_F_MTU,
>   2077	};
>   2078	
>   2079	static struct virtio_driver virtio_net_driver = {
>
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

WARNING: multiple messages have this Message-ID (diff)
From: Aaron Conole <aconole@redhat.com>
To: kbuild test robot <lkp@intel.com>
Cc: kbuild-all@01.org, virtualization@lists.linux-foundation.org,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	"Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [PATCH -next 2/2] virtio_net: Read the advised MTU
Date: Thu, 02 Jun 2016 13:48:41 -0400	[thread overview]
Message-ID: <f7tvb1rqy6e.fsf@redhat.com> (raw)
In-Reply-To: <201606030134.9z1SDe8C%fengguang.wu@intel.com> (kbuild test robot's message of "Fri, 3 Jun 2016 01:25:49 +0800")


kbuild test robot <lkp@intel.com> writes:

> Hi,
>
> [auto build test ERROR on next-20160602]
>
> url:    https://github.com/0day-ci/linux/commits/Aaron-Conole/virtio-net-Advised-MTU-feature/20160603-000714
> config: i386-allmodconfig (attached as .config)
> compiler: gcc-6 (Debian 6.1.1-1) 6.1.1 20160430
> reproduce:
>         # save the attached .config to linux build tree
>         make ARCH=i386 
>
> Note: the linux-review/Aaron-Conole/virtio-net-Advised-MTU-feature/20160603-000714 HEAD d909da4df3c52f78b4f5fcccd89aea5e38722d10 builds fine.
>       It only hurts bisectibility.
>
> All errors (new ones prefixed by >>):
>
>    drivers/net/virtio_net.c: In function 'virtnet_probe':
>>> drivers/net/virtio_net.c:1899:31: error: 'VIRTIO_NET_F_MTU'
>>> undeclared (first use in this function)
>      if (virtio_has_feature(vdev, VIRTIO_NET_F_MTU)) {
>                                   ^~~~~~~~~~~~~~~~
>    drivers/net/virtio_net.c:1899:31: note: each undeclared identifier is reported only once for each function it appears in
>    drivers/net/virtio_net.c: At top level:
>>> drivers/net/virtio_net.c:2076:2: error: 'VIRTIO_NET_F_MTU'
>>> undeclared here (not in a function)
>      VIRTIO_NET_F_MTU,
>      ^~~~~~~~~~~~~~~~

Oops, hunk was dropped during rebase.  Sorry for this, v2 will fix this
error, as well and I'll do a boot test before submission.

Thanks kbuild robot!

> vim +/VIRTIO_NET_F_MTU +1899 drivers/net/virtio_net.c
>
>   1893		    virtio_has_feature(vdev, VIRTIO_F_VERSION_1))
>   1894			vi->any_header_sg = true;
>   1895	
>   1896		if (virtio_has_feature(vdev, VIRTIO_NET_F_CTRL_VQ))
>   1897			vi->has_cvq = true;
>   1898	
>> 1899		if (virtio_has_feature(vdev, VIRTIO_NET_F_MTU)) {
>   1900			dev->mtu = virtio_cread16(vdev,
>   1901 offsetof(struct virtio_net_config,
>   1902							   mtu));
>   1903		}
>   1904	
>   1905		if (vi->any_header_sg)
>   1906			dev->needed_headroom = vi->hdr_len;
>   1907	
>   1908		/* Use single tx/rx queue pair as default */
>   1909		vi->curr_queue_pairs = 1;
>   1910		vi->max_queue_pairs = max_queue_pairs;
>   1911	
>   1912		/* Allocate/initialize the rx/tx queues, and invoke find_vqs */
>   1913		err = init_vqs(vi);
>   1914		if (err)
>   1915			goto free_stats;
>   1916	
>   1917	#ifdef CONFIG_SYSFS
>   1918		if (vi->mergeable_rx_bufs)
>   1919			dev->sysfs_rx_queue_group = &virtio_net_mrg_rx_group;
>   1920	#endif
>   1921		netif_set_real_num_tx_queues(dev, vi->curr_queue_pairs);
>   1922		netif_set_real_num_rx_queues(dev, vi->curr_queue_pairs);
>   1923	
>   1924		virtnet_init_settings(dev);
>   1925	
>   1926		err = register_netdev(dev);
>   1927		if (err) {
>   1928			pr_debug("virtio_net: registering device failed\n");
>   1929			goto free_vqs;
>   1930		}
>   1931	
>   1932		virtio_device_ready(vdev);
>   1933	
>   1934		vi->nb.notifier_call = &virtnet_cpu_callback;
>   1935		err = register_hotcpu_notifier(&vi->nb);
>   1936		if (err) {
>   1937			pr_debug("virtio_net: registering cpu notifier failed\n");
>   1938			goto free_unregister_netdev;
>   1939		}
>   1940	
>   1941		/* Assume link up if device can't report link status,
>   1942		   otherwise get link status from config. */
>   1943		if (virtio_has_feature(vi->vdev, VIRTIO_NET_F_STATUS)) {
>   1944			netif_carrier_off(dev);
>   1945			schedule_work(&vi->config_work);
>   1946		} else {
>   1947			vi->status = VIRTIO_NET_S_LINK_UP;
>   1948			netif_carrier_on(dev);
>   1949		}
>   1950	
>   1951		pr_debug("virtnet: registered device %s with %d RX and TX vq's\n",
>   1952			 dev->name, max_queue_pairs);
>   1953	
>   1954		return 0;
>   1955	
>   1956	free_unregister_netdev:
>   1957		vi->vdev->config->reset(vdev);
>   1958	
>   1959		unregister_netdev(dev);
>   1960	free_vqs:
>   1961		cancel_delayed_work_sync(&vi->refill);
>   1962		free_receive_page_frags(vi);
>   1963		virtnet_del_vqs(vi);
>   1964	free_stats:
>   1965		free_percpu(vi->stats);
>   1966	free:
>   1967		free_netdev(dev);
>   1968		return err;
>   1969	}
>   1970	
>   1971	static void remove_vq_common(struct virtnet_info *vi)
>   1972	{
>   1973		vi->vdev->config->reset(vi->vdev);
>   1974	
>   1975		/* Free unused buffers in both send and recv, if any. */
>   1976		free_unused_bufs(vi);
>   1977	
>   1978		free_receive_bufs(vi);
>   1979	
>   1980		free_receive_page_frags(vi);
>   1981	
>   1982		virtnet_del_vqs(vi);
>   1983	}
>   1984	
>   1985	static void virtnet_remove(struct virtio_device *vdev)
>   1986	{
>   1987		struct virtnet_info *vi = vdev->priv;
>   1988	
>   1989		unregister_hotcpu_notifier(&vi->nb);
>   1990	
>   1991		/* Make sure no work handler is accessing the device. */
>   1992		flush_work(&vi->config_work);
>   1993	
>   1994		unregister_netdev(vi->dev);
>   1995	
>   1996		remove_vq_common(vi);
>   1997	
>   1998		free_percpu(vi->stats);
>   1999		free_netdev(vi->dev);
>   2000	}
>   2001	
>   2002	#ifdef CONFIG_PM_SLEEP
>   2003	static int virtnet_freeze(struct virtio_device *vdev)
>   2004	{
>   2005		struct virtnet_info *vi = vdev->priv;
>   2006		int i;
>   2007	
>   2008		unregister_hotcpu_notifier(&vi->nb);
>   2009	
>   2010		/* Make sure no work handler is accessing the device */
>   2011		flush_work(&vi->config_work);
>   2012	
>   2013		netif_device_detach(vi->dev);
>   2014		cancel_delayed_work_sync(&vi->refill);
>   2015	
>   2016		if (netif_running(vi->dev)) {
>   2017			for (i = 0; i < vi->max_queue_pairs; i++)
>   2018				napi_disable(&vi->rq[i].napi);
>   2019		}
>   2020	
>   2021		remove_vq_common(vi);
>   2022	
>   2023		return 0;
>   2024	}
>   2025	
>   2026	static int virtnet_restore(struct virtio_device *vdev)
>   2027	{
>   2028		struct virtnet_info *vi = vdev->priv;
>   2029		int err, i;
>   2030	
>   2031		err = init_vqs(vi);
>   2032		if (err)
>   2033			return err;
>   2034	
>   2035		virtio_device_ready(vdev);
>   2036	
>   2037		if (netif_running(vi->dev)) {
>   2038			for (i = 0; i < vi->curr_queue_pairs; i++)
>   2039				if (!try_fill_recv(vi, &vi->rq[i], GFP_KERNEL))
>   2040					schedule_delayed_work(&vi->refill, 0);
>   2041	
>   2042			for (i = 0; i < vi->max_queue_pairs; i++)
>   2043				virtnet_napi_enable(&vi->rq[i]);
>   2044		}
>   2045	
>   2046		netif_device_attach(vi->dev);
>   2047	
>   2048		rtnl_lock();
>   2049		virtnet_set_queues(vi, vi->curr_queue_pairs);
>   2050		rtnl_unlock();
>   2051	
>   2052		err = register_hotcpu_notifier(&vi->nb);
>   2053		if (err)
>   2054			return err;
>   2055	
>   2056		return 0;
>   2057	}
>   2058	#endif
>   2059	
>   2060	static struct virtio_device_id id_table[] = {
>   2061		{ VIRTIO_ID_NET, VIRTIO_DEV_ANY_ID },
>   2062		{ 0 },
>   2063	};
>   2064	
>   2065	static unsigned int features[] = {
>   2066		VIRTIO_NET_F_CSUM, VIRTIO_NET_F_GUEST_CSUM,
>   2067		VIRTIO_NET_F_GSO, VIRTIO_NET_F_MAC,
>   2068 VIRTIO_NET_F_HOST_TSO4, VIRTIO_NET_F_HOST_UFO,
> VIRTIO_NET_F_HOST_TSO6,
>   2069 VIRTIO_NET_F_HOST_ECN, VIRTIO_NET_F_GUEST_TSO4,
> VIRTIO_NET_F_GUEST_TSO6,
>   2070		VIRTIO_NET_F_GUEST_ECN, VIRTIO_NET_F_GUEST_UFO,
>   2071		VIRTIO_NET_F_MRG_RXBUF, VIRTIO_NET_F_STATUS, VIRTIO_NET_F_CTRL_VQ,
>   2072		VIRTIO_NET_F_CTRL_RX, VIRTIO_NET_F_CTRL_VLAN,
>   2073		VIRTIO_NET_F_GUEST_ANNOUNCE, VIRTIO_NET_F_MQ,
>   2074		VIRTIO_NET_F_CTRL_MAC_ADDR,
>   2075		VIRTIO_F_ANY_LAYOUT,
>> 2076		VIRTIO_NET_F_MTU,
>   2077	};
>   2078	
>   2079	static struct virtio_driver virtio_net_driver = {
>
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

  reply	other threads:[~2016-06-02 17:48 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-02 15:43 [PATCH -next 0/2] virtio-net: Advised MTU feature Aaron Conole
2016-06-02 15:43 ` [PATCH -next 1/2] virtio: Start feature MTU support Aaron Conole
2016-06-02 16:17   ` Michael S. Tsirkin
2016-06-02 16:17   ` Michael S. Tsirkin
2016-06-02 17:10     ` Aaron Conole
2016-06-02 17:10       ` Aaron Conole
2016-06-02 15:43 ` [PATCH -next 2/2] virtio_net: Read the advised MTU Aaron Conole
2016-06-02 16:16   ` Michael S. Tsirkin
2016-06-02 16:16     ` Michael S. Tsirkin
2016-06-02 17:10     ` Aaron Conole
2016-06-02 17:10     ` Aaron Conole
     [not found]   ` <5750578E.4040406@hpe.com>
2016-06-02 17:06     ` Aaron Conole
2016-06-02 17:06     ` Aaron Conole
2016-06-02 18:02       ` Rick Jones
2016-06-02 18:02         ` Rick Jones
2016-06-02 17:25   ` kbuild test robot
2016-06-02 17:25     ` kbuild test robot
2016-06-02 17:48     ` Aaron Conole [this message]
2016-06-02 17:48       ` Aaron Conole

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=f7tvb1rqy6e.fsf@redhat.com \
    --to=aconole@redhat.com \
    --cc=kbuild-all@01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=mst@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=virtualization@lists.linux-foundation.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.