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
next prev parent 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.