netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Eric Dumazet <edumazet@google.com>
To: Guenter Roeck <linux@roeck-us.net>
Cc: Eric Dumazet <eric.dumazet@gmail.com>,
	"David S . Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>, netdev <netdev@vger.kernel.org>,
	Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	virtualization@lists.linux-foundation.org
Subject: Re: [PATCH net] virtio_net: Do not pull payload in skb->head
Date: Sun, 11 Apr 2021 17:06:15 +0200	[thread overview]
Message-ID: <CANn89iJ+RjYPY11zUtvmMkOp1E2DKLuAk2q0LHUbcJpbcZVSjw@mail.gmail.com> (raw)
In-Reply-To: <20210411134329.GA132317@roeck-us.net>

On Sun, Apr 11, 2021 at 3:43 PM Guenter Roeck <linux@roeck-us.net> wrote:

> This patch causes a virtio-net interface failure when booting sh4 images
> in qemu. The test case is nothing special: Just try to get an IP address
> using udhcpc. If it fails, udhcpc reports:
>
> udhcpc: started, v1.33.0
> udhcpc: sending discover
> FAIL
>

Can you investigate where the incoming packet is dropped ?

perf record -a -g -e skb:kfree_skb "udhcpc"
perf report

Thanks !

(Some layer might need a pskb_may_pull())


> After the failure, ifconfig shows no error:
>
> eth0      Link encap:Ethernet  HWaddr 52:54:00:12:34:56
>           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
>           RX packets:1 errors:0 dropped:0 overruns:0 frame:0
>           TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 txqueuelen:1000
>           RX bytes:590 (590.0 B)  TX bytes:342 (342.0 B)
>
> This happens with almost every boot. The problem disappears after reverting
> this patch.
>
> Guenter
>
> ---
> bisect log:
> # bad: [52e44129fba5cfc4e351fdb5e45849afc74d9a53] Merge branch 'for-5.12-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/dennis/percpu
> # good: [f40ddce88593482919761f74910f42f4b84c004b] Linux 5.11
> git bisect start 'HEAD' 'v5.11'
> # good: [d99676af540c2dc829999928fb81c58c80a1dce4] Merge tag 'drm-next-2021-02-19' of git://anongit.freedesktop.org/drm/drm
> git bisect good d99676af540c2dc829999928fb81c58c80a1dce4
> # good: [c4fbde84fedeaf513ec96f0c6ed3f352bdcd61d6] Merge tag 'sfi-removal-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
> git bisect good c4fbde84fedeaf513ec96f0c6ed3f352bdcd61d6
> # good: [b1dd9bf688b0dcc5a34dca660de46c7570bd9243] net: phy: broadcom: Fix RGMII delays for BCM50160 and BCM50610M
> git bisect good b1dd9bf688b0dcc5a34dca660de46c7570bd9243
> # good: [e138138003eb3b3d06cc91cf2e8c5dec77e2a31e] Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
> git bisect good e138138003eb3b3d06cc91cf2e8c5dec77e2a31e
> # good: [dbaa5d1c254e1b565caee9ac7b526a9b7267d4c4] Merge branch 'parisc-5.12-3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux
> git bisect good dbaa5d1c254e1b565caee9ac7b526a9b7267d4c4
> # bad: [1ffbc7ea91606e4abd10eb60de5367f1c86daf5e] net: sched: sch_teql: fix null-pointer dereference
> git bisect bad 1ffbc7ea91606e4abd10eb60de5367f1c86daf5e
> # good: [9256ce33110174decc04caf6ef733409012e5b1c] Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue
> git bisect good 9256ce33110174decc04caf6ef733409012e5b1c
> # bad: [3cf1482852825bdf8cc4e4f09346262c80ad5cbe] Merge branch 'ethtool-link_mode'
> git bisect bad 3cf1482852825bdf8cc4e4f09346262c80ad5cbe
> # bad: [0f6925b3e8da0dbbb52447ca8a8b42b371aac7db] virtio_net: Do not pull payload in skb->head
> git bisect bad 0f6925b3e8da0dbbb52447ca8a8b42b371aac7db
> # good: [6dcc4e38386950abf9060784631622dfc4df9577] Merge branch 'AF_XDP Socket Creation Fixes'
> git bisect good 6dcc4e38386950abf9060784631622dfc4df9577
> # good: [630e4576f83accf90366686f39808d665d8dbecc] net-ipv6: bugfix - raw & sctp - switch to ipv6_can_nonlocal_bind()
> git bisect good 630e4576f83accf90366686f39808d665d8dbecc
> # good: [22f69de18ee86e81dc41253869e5dd963ccea429] Merge branch 'hns3-fixes'
> git bisect good 22f69de18ee86e81dc41253869e5dd963ccea429
> # good: [b25b343db0526669947a427e9a31bac91d29bb06] net: broadcom: bcm4908enet: Fix a double free in bcm4908_enet_dma_alloc
> git bisect good b25b343db0526669947a427e9a31bac91d29bb06
> # first bad commit: [0f6925b3e8da0dbbb52447ca8a8b42b371aac7db] virtio_net: Do not pull payload in skb->head
>
> ---
> qemu command line:
>
> qemu-system-sh4 -M r2d -kernel ./arch/sh/boot/zImage -no-reboot \
>         -snapshot \
>         -drive file=rootfs.ext2,format=raw,if=ide \
>         -device virtio-net,netdev=net0 -netdev user,id=net0 \
>         -append "root=/dev/sda console=ttySC1,115200 earlycon=scif,mmio16,0xffe80000 noiotrap" \
>         -serial null -serial stdio -nographic -monitor null
>
> The root file system is
>         https://github.com/groeck/linux-build-test/blob/master/rootfs/sh/rootfs.ext2.gz
> It was generated with buildroot version 2021.02.
>
> To reproduce the problem, just run the qemu command and look for "Network
> interface test [passed|failed]".
>
> AFAICS any qemu version can be used to reproduce the problem.
>
> ---
> defconfig:
>
> CONFIG_SYSVIPC=y
> CONFIG_LOG_BUF_SHIFT=14
> CONFIG_BLK_DEV_INITRD=y
> CONFIG_SLAB=y
> CONFIG_PROFILING=y
> CONFIG_CPU_SUBTYPE_SH7751R=y
> CONFIG_MEMORY_START=0x0c000000
> CONFIG_SH_RTS7751R2D=y
> CONFIG_RTS7751R2D_PLUS=y
> CONFIG_HEARTBEAT=y
> CONFIG_MODULES=y
> CONFIG_FLATMEM_MANUAL=y
> CONFIG_NET=y
> CONFIG_PACKET=y
> CONFIG_UNIX=y
> CONFIG_INET=y
> # CONFIG_IPV6 is not set
> CONFIG_PCI=y
> CONFIG_HOTPLUG_PCI=y
> CONFIG_DEVTMPFS=y
> CONFIG_DEVTMPFS_MOUNT=y
> CONFIG_MTD=y
> CONFIG_MTD_CMDLINE_PARTS=y
> CONFIG_MTD_BLOCK=y
> CONFIG_MTD_CFI=y
> CONFIG_MTD_CFI_AMDSTD=y
> CONFIG_MTD_PHYSMAP=y
> CONFIG_BLK_DEV_RAM=y
> CONFIG_VIRTIO_BLK=y
> CONFIG_BLK_DEV_NVME=y
> CONFIG_BLK_DEV_SD=y
> CONFIG_BLK_DEV_SR=y
> CONFIG_MEGARAID_SAS=y
> CONFIG_SCSI_SYM53C8XX_2=y
> CONFIG_SCSI_DC395x=y
> CONFIG_SCSI_AM53C974=y
> CONFIG_SCSI_VIRTIO=y
> CONFIG_ATA=y
> CONFIG_PATA_PLATFORM=y
> CONFIG_FUSION=y
> CONFIG_FUSION_SAS=y
> CONFIG_NETDEVICES=y
> CONFIG_VIRTIO_NET=y
> CONFIG_PCNET32=y
> CONFIG_NET_TULIP=y
> CONFIG_TULIP=y
> CONFIG_E100=y
> CONFIG_E1000=y
> CONFIG_E1000E=y
> CONFIG_NE2K_PCI=y
> CONFIG_8139CP=y
> CONFIG_8139TOO=y
> # CONFIG_8139TOO_PIO is not set
> CONFIG_USB_USBNET=y
> # CONFIG_INPUT_KEYBOARD is not set
> # CONFIG_INPUT_MOUSE is not set
> # CONFIG_SERIO is not set
> CONFIG_SERIAL_8250=y
> CONFIG_SERIAL_SH_SCI=y
> CONFIG_HW_RANDOM=y
> CONFIG_SPI=y
> CONFIG_SPI_SH_SCI=y
> # CONFIG_PTP_1588_CLOCK is not set
> CONFIG_MFD_SM501=y
> CONFIG_FB=y
> CONFIG_FB_SH_MOBILE_LCDC=m
> CONFIG_FB_SM501=y
> CONFIG_FRAMEBUFFER_CONSOLE=y
> CONFIG_LOGO=y
> # CONFIG_LOGO_LINUX_MONO is not set
> # CONFIG_LOGO_LINUX_VGA16 is not set
> # CONFIG_LOGO_LINUX_CLUT224 is not set
> # CONFIG_LOGO_SUPERH_MONO is not set
> # CONFIG_LOGO_SUPERH_VGA16 is not set
> CONFIG_SOUND=y
> CONFIG_SND=m
> CONFIG_SND_YMFPCI=m
> CONFIG_HID_GYRATION=y
> CONFIG_HID_PANTHERLORD=y
> CONFIG_HID_PETALYNX=y
> CONFIG_HID_SAMSUNG=y
> CONFIG_HID_SUNPLUS=y
> CONFIG_USB=y
> CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
> CONFIG_USB_XHCI_HCD=y
> CONFIG_USB_EHCI_HCD=y
> CONFIG_USB_OHCI_HCD=y
> CONFIG_USB_STORAGE=y
> CONFIG_USB_UAS=y
> CONFIG_MMC=y
> CONFIG_MMC_SDHCI=y
> CONFIG_MMC_SDHCI_PCI=y
> CONFIG_RTC_CLASS=y
> CONFIG_RTC_DRV_R9701=y
> CONFIG_VIRTIO_PCI=y
> CONFIG_VIRTIO_BALLOON=y
> CONFIG_VIRTIO_MMIO=y
> CONFIG_EXT2_FS=y
> CONFIG_ISO9660_FS=y
> CONFIG_MSDOS_FS=y
> CONFIG_VFAT_FS=y
> CONFIG_PROC_KCORE=y
> CONFIG_TMPFS=y
> CONFIG_MINIX_FS=y
> CONFIG_NLS_CODEPAGE_932=y
> CONFIG_CRC_T10DIF=y
> CONFIG_DEBUG_FS=y

  reply	other threads:[~2021-04-11 15:06 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-02 13:26 [PATCH net] virtio_net: Do not pull payload in skb->head Eric Dumazet
2021-04-06  2:03 ` Jason Wang
2021-04-07 18:09 ` Michael S. Tsirkin
2021-04-11 13:43 ` Guenter Roeck
2021-04-11 15:06   ` Eric Dumazet [this message]
2021-04-11 20:37     ` Guenter Roeck
2021-04-11 21:23       ` Eric Dumazet
2021-04-11 21:32         ` Guenter Roeck
2021-04-11 21:43           ` Eric Dumazet
2021-04-11 22:07             ` Guenter Roeck
2021-04-12  5:48               ` Eric Dumazet
2021-04-12  5:53                 ` Eric Dumazet
2021-04-12  6:23                   ` Guenter Roeck
2021-04-12  6:37                     ` Eric Dumazet
2021-04-11 22:20             ` Guenter Roeck

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=CANn89iJ+RjYPY11zUtvmMkOp1E2DKLuAk2q0LHUbcJpbcZVSjw@mail.gmail.com \
    --to=edumazet@google.com \
    --cc=davem@davemloft.net \
    --cc=eric.dumazet@gmail.com \
    --cc=jasowang@redhat.com \
    --cc=kuba@kernel.org \
    --cc=linux@roeck-us.net \
    --cc=mst@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=xuanzhuo@linux.alibaba.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).