[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [qemu/qemu] 8d689f: e1000e: Fix tx/rx counters
From: |
Richard Henderson |
Subject: |
[Qemu-commits] [qemu/qemu] 8d689f: e1000e: Fix tx/rx counters |
Date: |
Tue, 23 May 2023 06:22:43 -0700 |
Branch: refs/heads/staging
Home: https://github.com/qemu/qemu
Commit: 8d689f6aae8be096b4a1859be07c1b083865f755
https://github.com/qemu/qemu/commit/8d689f6aae8be096b4a1859be07c1b083865f755
Author: timothee.cocault@gmail.com <timothee.cocault@gmail.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/e1000.c
M hw/net/e1000e_core.c
M hw/net/e1000x_common.c
M hw/net/igb_core.c
Log Message:
-----------
e1000e: Fix tx/rx counters
The bytes and packets counter registers are cleared on read.
Copying the "total counter" registers to the "good counter" registers has
side effects.
If the "total" register is never read by the OS, it only gets incremented.
This leads to exponential growth of the "good" register.
This commit increments the counters individually to avoid this.
Signed-off-by: Timothée Cocault <timothee.cocault@gmail.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 163246e1ce9607251ed52df1131af25d608de782
https://github.com/qemu/qemu/commit/163246e1ce9607251ed52df1131af25d608de782
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/net_tx_pkt.c
M hw/net/net_tx_pkt.h
Log Message:
-----------
hw/net/net_tx_pkt: Decouple implementation from PCI
This is intended to be followed by another change for the interface.
It also fixes the leak of memory mapping when the specified memory is
partially mapped.
Fixes: e263cd49c7 ("Packet abstraction for VMWARE network devices")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: a51db5802744b274ab40385dd9fe8354722fcc4d
https://github.com/qemu/qemu/commit/a51db5802744b274ab40385dd9fe8354722fcc4d
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/e1000e_core.c
M hw/net/igb_core.c
M hw/net/net_tx_pkt.c
M hw/net/net_tx_pkt.h
M hw/net/vmxnet3.c
Log Message:
-----------
hw/net/net_tx_pkt: Decouple interface from PCI
This allows to use the network packet abstractions even if PCI is not
used.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: f3f9b726afba1f53663768603189e574f80b5907
https://github.com/qemu/qemu/commit/f3f9b726afba1f53663768603189e574f80b5907
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/e1000.c
M hw/net/e1000e_core.c
M hw/net/e1000x_common.c
M hw/net/e1000x_common.h
M hw/net/igb_core.c
Log Message:
-----------
e1000x: Fix BPRC and MPRC
Before this change, e1000 and the common code updated BPRC and MPRC
depending on the matched filter, but e1000e and igb decided to update
those counters by deriving the packet type independently. This
inconsistency caused a multicast packet to be counted twice.
Updating BPRC and MPRC depending on are fundamentally flawed anyway as
a filter can be used for different types of packets. For example, it is
possible to filter broadcast packets with MTA.
Always determine what counters to update by inspecting the packets.
Fixes: 3b27430177 ("e1000: Implementing various counters")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: ed447c60b341f1714b3c800d7f9c68898e873f78
https://github.com/qemu/qemu/commit/ed447c60b341f1714b3c800d7f9c68898e873f78
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/igb_core.c
M hw/net/igb_regs.h
Log Message:
-----------
igb: Fix Rx packet type encoding
igb's advanced descriptor uses a packet type encoding different from
one used in e1000e's extended descriptor. Fix the logic to encode
Rx packet type accordingly.
Fixes: 3a977deebe ("Intrdocue igb device emulation")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: e209716749cda1581cfc8e582591c0216c30ab0d
https://github.com/qemu/qemu/commit/e209716749cda1581cfc8e582591c0216c30ab0d
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/igb_core.c
Log Message:
-----------
igb: Do not require CTRL.VME for tx VLAN tagging
While the datasheet of e1000e says it checks CTRL.VME for tx VLAN
tagging, igb's datasheet has no such statements. It also says for
"CTRL.VLE":
> This register only affects the VLAN Strip in Rx it does not have any
> influence in the Tx path in the 82576.
(Appendix A. Changes from the 82575)
There is no "CTRL.VLE" so it is more likely that it is a mistake of
CTRL.VME.
Fixes: fba7c3b788 ("igb: respect VMVIR and VMOLR for VLAN")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: f0b1df5c4502b5ec89f83417924935ab201511d0
https://github.com/qemu/qemu/commit/f0b1df5c4502b5ec89f83417924935ab201511d0
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/igb_core.c
Log Message:
-----------
igb: Clear IMS bits when committing ICR access
The datasheet says contradicting statements regarding ICR accesses so it
is not reliable to determine the behavior of ICR accesses. However,
e1000e does clear IMS bits when reading ICR accesses and Linux also
expects ICR accesses will clear IMS bits according to:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/ethernet/intel/igb/igb_main.c?h=v6.2#n8048
Fixes: 3a977deebe ("Intrdocue igb device emulation")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 2f0fa232b8c330df029120a6824c8be3d4eb5cae
https://github.com/qemu/qemu/commit/2f0fa232b8c330df029120a6824c8be3d4eb5cae
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/igb_core.c
M hw/net/net_rx_pkt.c
M hw/net/net_rx_pkt.h
M hw/net/virtio-net.c
M hw/net/vmxnet3.c
M include/net/eth.h
M net/eth.c
Log Message:
-----------
net/net_rx_pkt: Use iovec for net_rx_pkt_set_protocols()
igb does not properly ensure the buffer passed to
net_rx_pkt_set_protocols() is contiguous for the entire L2/L3/L4 header.
Allow it to pass scattered data to net_rx_pkt_set_protocols().
Fixes: 3a977deebe ("Intrdocue igb device emulation")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 310a128eae12339f97f6c940a7ddf92f40d283e4
https://github.com/qemu/qemu/commit/310a128eae12339f97f6c940a7ddf92f40d283e4
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/e1000e_core.c
Log Message:
-----------
e1000e: Always copy ethernet header
e1000e_receive_internal() used to check the iov length to determine
copy the iovs to a contiguous buffer, but the check is flawed in two
ways:
- It does not ensure that iovcnt > 0.
- It does not take virtio-net header into consideration.
The size of this copy is just 18 octets, which can be even less than
the code size required for checks. This (wrong) optimization is probably
not worth so just remove it.
Fixes: 6f3fbe4ed0 ("net: Introduce e1000e device emulation")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: dc9ef1bf454811646b3ee6387f1b96f63f538a18
https://github.com/qemu/qemu/commit/dc9ef1bf454811646b3ee6387f1b96f63f538a18
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/igb_core.c
Log Message:
-----------
igb: Always copy ethernet header
igb_receive_internal() used to check the iov length to determine
copy the iovs to a contiguous buffer, but the check is flawed in two
ways:
- It does not ensure that iovcnt > 0.
- It does not take virtio-net header into consideration.
The size of this copy is just 22 octets, which can be even less than
the code size required for checks. This (wrong) optimization is probably
not worth so just remove it. Removing this also allows igb to assume
aligned accesses for the ethernet header.
Fixes: 3a977deebe ("Intrdocue igb device emulation")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 8e6c718a6aaa5073842130a1b643d66479601580
https://github.com/qemu/qemu/commit/8e6c718a6aaa5073842130a1b643d66479601580
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M MAINTAINERS
M docs/system/devices/igb.rst
M scripts/ci/org.centos/stream/8/x86_64/test-avocado
Log Message:
-----------
Fix references to igb Avocado test
Fixes: 9f95111474 ("tests/avocado: re-factor igb test to avoid timeouts")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 808f976c85b62b3bb1a6fdea697ca9f5e0d35539
https://github.com/qemu/qemu/commit/808f976c85b62b3bb1a6fdea697ca9f5e0d35539
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M tests/avocado/netdev-ethtool.py
Log Message:
-----------
tests/avocado: Remove unused imports
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 1531fb4d8d2f62fe40b995dbb8ce16676e0af9d3
https://github.com/qemu/qemu/commit/1531fb4d8d2f62fe40b995dbb8ce16676e0af9d3
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M tests/avocado/netdev-ethtool.py
Log Message:
-----------
tests/avocado: Remove test_igb_nomsi_kvm
It is unlikely to find more bugs with KVM so remove test_igb_nomsi_kvm
to save time to run it.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Acked-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: f0f3ac41d527a2c7bcee26195ae9038f760913f4
https://github.com/qemu/qemu/commit/f0f3ac41d527a2c7bcee26195ae9038f760913f4
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/net_rx_pkt.c
M hw/net/net_rx_pkt.h
Log Message:
-----------
hw/net/net_tx_pkt: Remove net_rx_pkt_get_l4_info
This function is not used.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 0b11783014a0876344b14872d05ad55b21838e12
https://github.com/qemu/qemu/commit/0b11783014a0876344b14872d05ad55b21838e12
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/net_tx_pkt.c
M include/net/eth.h
M net/eth.c
Log Message:
-----------
net/eth: Rename eth_setup_vlan_headers_ex
The old eth_setup_vlan_headers has no user so remove it and rename
eth_setup_vlan_headers_ex.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: e9e5b930691e5995210ca82aa6b9516733c20577
https://github.com/qemu/qemu/commit/e9e5b930691e5995210ca82aa6b9516733c20577
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/e1000.c
M hw/net/e1000e_core.c
M hw/net/e1000x_common.c
M hw/net/e1000x_common.h
M hw/net/igb_core.c
M hw/net/trace-events
Log Message:
-----------
e1000x: Share more Rx filtering logic
This saves some code and enables tracepoint for e1000's VLAN filtering.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 743495144208cd1871ce0971ae6c57925141c855
https://github.com/qemu/qemu/commit/743495144208cd1871ce0971ae6c57925141c855
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/e1000x_common.c
M include/net/eth.h
Log Message:
-----------
e1000x: Take CRC into consideration for size check
Section 13.7.15 Receive Length Error Count says:
> Packets over 1522 bytes are oversized if LongPacketEnable is 0b
> (RCTL.LPE). If LongPacketEnable (LPE) is 1b, then an incoming packet
> is considered oversized if it exceeds 16384 bytes.
> These lengths are based on bytes in the received packet from
> <Destination Address> through <CRC>, inclusively.
As QEMU processes packets without CRC, the number of bytes for CRC
need to be subtracted. This change adds some size definitions to be used
to derive the new size thresholds to eth.h.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 5052fc9eb17b5ae6fd956834c68c3f7201dea8df
https://github.com/qemu/qemu/commit/5052fc9eb17b5ae6fd956834c68c3f7201dea8df
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/e1000e_core.c
M hw/net/e1000x_regs.h
M hw/net/igb_core.c
M hw/net/trace-events
Log Message:
-----------
e1000x: Rename TcpIpv6 into TcpIpv6Ex
e1000e and igb employs NetPktRssIpV6TcpEx for RSS hash if TcpIpv6 MRQC
bit is set. Moreover, igb also has a MRQC bit for NetPktRssIpV6Tcp
though it is not implemented yet. Rename it to TcpIpv6Ex to avoid
confusion.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 8b876b99a1b60ee657e3ef57b5c04d8836034d60
https://github.com/qemu/qemu/commit/8b876b99a1b60ee657e3ef57b5c04d8836034d60
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/e1000e_core.c
Log Message:
-----------
e1000e: Always log status after building rx metadata
Without this change, the status flags may not be traced e.g. if checksum
offloading is disabled.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: d5241351bd4fdb40cafc87024c4f924267a7ba1c
https://github.com/qemu/qemu/commit/d5241351bd4fdb40cafc87024c4f924267a7ba1c
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/igb_core.c
Log Message:
-----------
igb: Always log status after building rx metadata
Without this change, the status flags may not be traced e.g. if checksum
offloading is disabled.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: a09cc21e80ebbb0fecc8eea33281290144234c9b
https://github.com/qemu/qemu/commit/a09cc21e80ebbb0fecc8eea33281290144234c9b
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/igb_core.c
Log Message:
-----------
igb: Remove goto
The goto is a bit confusing as it changes the control flow only if L4
protocol is not recognized. It is also different from e1000e, and
noisy when comparing e1000e and igb.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 5d92e88a506387837431cee069ca8fee4f7c29ae
https://github.com/qemu/qemu/commit/5d92e88a506387837431cee069ca8fee4f7c29ae
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/igb_core.c
Log Message:
-----------
igb: Read DCMD.VLE of the first Tx descriptor
Section 7.2.2.3 Advanced Transmit Data Descriptor says:
> For frames that spans multiple descriptors, all fields apart from
> DCMD.EOP, DCMD.RS, DCMD.DEXT, DTALEN, Address and DTYP are valid only
> in the first descriptors and are ignored in the subsequent ones.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 5c867340252cd5c4c3dcd50b51da961f2f6cb83d
https://github.com/qemu/qemu/commit/5c867340252cd5c4c3dcd50b51da961f2f6cb83d
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/e1000e_core.c
Log Message:
-----------
e1000e: Reset packet state after emptying Tx queue
Keeping Tx packet state after the transmit queue is emptied has some
problems:
- The datasheet says the descriptors can be reused after the transmit
queue is emptied, but the Tx packet state may keep references to them.
- The Tx packet state cannot be migrated so it can be reset anytime the
migration happens.
Always reset Tx packet state always after the queue is emptied.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 1c5618a267640c8d315bf25ab0b84b24980d2458
https://github.com/qemu/qemu/commit/1c5618a267640c8d315bf25ab0b84b24980d2458
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/vmxnet3.c
Log Message:
-----------
vmxnet3: Reset packet state after emptying Tx queue
Keeping Tx packet state after the transmit queue is emptied but this
behavior is unreliable as the state can be reset anytime the migration
happens.
Always reset Tx packet state always after the queue is emptied.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 4847dabf6743477dd29da9962466403dfcf625f3
https://github.com/qemu/qemu/commit/4847dabf6743477dd29da9962466403dfcf625f3
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/igb_core.c
M hw/net/igb_regs.h
Log Message:
-----------
igb: Add more definitions for Tx descriptor
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: ff2b24c86258c6257bdb27bb16fefb11aea5ea57
https://github.com/qemu/qemu/commit/ff2b24c86258c6257bdb27bb16fefb11aea5ea57
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/igb.c
M hw/net/igb_common.h
M hw/net/igbvf.c
Log Message:
-----------
igb: Share common VF constants
The constants need to be consistent between the PF and VF.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 882e54da90a7634d6ccd6d451e2f6950bd68fe04
https://github.com/qemu/qemu/commit/882e54da90a7634d6ccd6d451e2f6950bd68fe04
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/igb_core.c
Log Message:
-----------
igb: Fix igb_mac_reg_init coding style alignment
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: fe619f2005b15b14f718c56a57152c5c1c06b4c8
https://github.com/qemu/qemu/commit/fe619f2005b15b14f718c56a57152c5c1c06b4c8
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/igb_core.c
Log Message:
-----------
igb: Clear EICR bits for delayed MSI-X interrupts
Section 7.3.4.1 says:
> When auto-clear is enabled for an interrupt cause, the EICR bit is
> set when a cause event mapped to this vector occurs. When the EITR
> Counter reaches zero, the MSI-X message is sent on PCIe. Then the
> EICR bit is cleared and enabled to be set by a new cause event
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 54ced75e497109b1cd9aa3ff75b863e7fea0358a
https://github.com/qemu/qemu/commit/54ced75e497109b1cd9aa3ff75b863e7fea0358a
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/e1000e_core.c
Log Message:
-----------
e1000e: Rename a variable in e1000e_receive_internal()
Rename variable "n" to "causes", which properly represents the content
of the variable.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 5c30aea4c93e90ed67ee6d279d8bdf7328953638
https://github.com/qemu/qemu/commit/5c30aea4c93e90ed67ee6d279d8bdf7328953638
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/igb_core.c
Log Message:
-----------
igb: Rename a variable in igb_receive_internal()
Rename variable "n" to "causes", which properly represents the content
of the variable.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 85427bf3884f42626208865f3fe594b3919566fb
https://github.com/qemu/qemu/commit/85427bf3884f42626208865f3fe594b3919566fb
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M include/net/eth.h
M net/eth.c
Log Message:
-----------
net/eth: Use void pointers
The uses of uint8_t pointers were misleading as they are never accessed
as an array of octets and it even require more strict alignment to
access as struct eth_header.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: aaa8a15c96a8a7341a3667dcc932f8c5f227d6af
https://github.com/qemu/qemu/commit/aaa8a15c96a8a7341a3667dcc932f8c5f227d6af
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/net_tx_pkt.c
M include/net/eth.h
M net/eth.c
Log Message:
-----------
net/eth: Always add VLAN tag
It is possible to have another VLAN tag even if the packet is already
tagged.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 7edf2f1d54454c0c0e5596b1112318cb91ec1afe
https://github.com/qemu/qemu/commit/7edf2f1d54454c0c0e5596b1112318cb91ec1afe
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/net_rx_pkt.c
Log Message:
-----------
hw/net/net_rx_pkt: Enforce alignment for eth_header
eth_strip_vlan and eth_strip_vlan_ex refers to ehdr_buf as struct
eth_header. Enforce alignment for the structure.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: c6e33a2c529088ef2be787d0704d5706bb154450
https://github.com/qemu/qemu/commit/c6e33a2c529088ef2be787d0704d5706bb154450
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M tests/qtest/libqos/igb.c
Log Message:
-----------
tests/qtest/libqos/igb: Set GPIE.Multiple_MSIX
GPIE.Multiple_MSIX is not set by default, and needs to be set to get
interrupts from multiple MSI-X vectors.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 191e8bde88a47303eed697a1fb56d19eb0a2a759
https://github.com/qemu/qemu/commit/191e8bde88a47303eed697a1fb56d19eb0a2a759
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/igb_core.c
Log Message:
-----------
igb: Implement MSI-X single vector mode
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: abc9a29d6bccb2886f86f6242fc228b7eaf5cd87
https://github.com/qemu/qemu/commit/abc9a29d6bccb2886f86f6242fc228b7eaf5cd87
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/igb_core.c
M hw/net/igb_regs.h
Log Message:
-----------
igb: Use UDP for RSS hash
e1000e does not support using UDP for RSS hash, but igb does.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 907209e3111dd62a553a19319b422ff8aba5b9c0
https://github.com/qemu/qemu/commit/907209e3111dd62a553a19319b422ff8aba5b9c0
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/e1000e_core.c
M hw/net/igb_core.c
M hw/net/igb_regs.h
M hw/net/net_rx_pkt.c
M include/net/eth.h
M include/qemu/crc32c.h
M net/eth.c
M util/crc32c.c
Log Message:
-----------
igb: Implement Rx SCTP CSO
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: f199b13bc113c46eaddcf9f375d13f1e400b4e35
https://github.com/qemu/qemu/commit/f199b13bc113c46eaddcf9f375d13f1e400b4e35
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/igb_core.c
M hw/net/net_tx_pkt.c
M hw/net/net_tx_pkt.h
Log Message:
-----------
igb: Implement Tx SCTP CSO
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 7e64a9cabb6b8fe12d315e355e0c362e1453f227
https://github.com/qemu/qemu/commit/7e64a9cabb6b8fe12d315e355e0c362e1453f227
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/e1000e_core.c
M hw/net/igb_core.c
M hw/net/net_rx_pkt.c
M hw/net/net_rx_pkt.h
M include/net/eth.h
M net/eth.c
Log Message:
-----------
igb: Strip the second VLAN tag for extended VLAN
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 6aa262f8e39d2fcb5c0088badc6ee930e52bb36c
https://github.com/qemu/qemu/commit/6aa262f8e39d2fcb5c0088badc6ee930e52bb36c
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/igb_core.c
Log Message:
-----------
igb: Filter with the second VLAN tag for extended VLAN
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: bb97003e731993fc1107bf6c663a68dbe1f60621
https://github.com/qemu/qemu/commit/bb97003e731993fc1107bf6c663a68dbe1f60621
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/igb_core.c
Log Message:
-----------
igb: Implement igb-specific oversize check
igb has a configurable size limit for LPE, and uses different limits
depending on whether the packet is treated as a VLAN packet.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 3a9926d939f86243e9fff28b516411236999e3c4
https://github.com/qemu/qemu/commit/3a9926d939f86243e9fff28b516411236999e3c4
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/igb_common.h
M hw/net/igb_core.c
M hw/net/igb_regs.h
Log Message:
-----------
igb: Implement Rx PTP2 timestamp
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 3dfc616eabc18f036511178bf7551f34abfd19cb
https://github.com/qemu/qemu/commit/3dfc616eabc18f036511178bf7551f34abfd19cb
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/igb_core.c
M hw/net/igb_regs.h
Log Message:
-----------
igb: Implement Tx timestamp
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: ad431f0f8254e808a20987804cff1b38de089e47
https://github.com/qemu/qemu/commit/ad431f0f8254e808a20987804cff1b38de089e47
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/e1000e_core.c
M hw/net/e1000e_core.h
M hw/net/trace-events
Log Message:
-----------
e1000e: Notify only new interrupts
In MSI-X mode, if there are interrupts already notified but not cleared
and a new interrupt arrives, e1000e incorrectly notifies the notified
ones again along with the new one.
To fix this issue, replace e1000e_update_interrupt_state() with
two new functions: e1000e_raise_interrupts() and
e1000e_lower_interrupts(). These functions don't only raise or lower
interrupts, but it also performs register writes which updates the
interrupt state. Before it performs a register write, these function
determines the interrupts already raised, and compares with the
interrupts raised after the register write to determine the interrupts
to notify.
The introduction of these functions made tracepoints which assumes that
the caller of e1000e_update_interrupt_state() performs register writes
obsolete. These tracepoints are now removed, and alternative ones are
added to the new functions.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 5844562b177e2067b8ebf78d1845334e0c759896
https://github.com/qemu/qemu/commit/5844562b177e2067b8ebf78d1845334e0c759896
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/igb_core.c
M hw/net/trace-events
M scripts/ci/org.centos/stream/8/x86_64/test-avocado
M tests/avocado/netdev-ethtool.py
Log Message:
-----------
igb: Notify only new interrupts
This follows the corresponding change for e1000e. This fixes:
tests/avocado/netdev-ethtool.py:NetDevEthtool.test_igb
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: efb1fd7a73aac29b02514c8aa46b752a7c7caa73
https://github.com/qemu/qemu/commit/efb1fd7a73aac29b02514c8aa46b752a7c7caa73
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/igb_core.c
Log Message:
-----------
igb: Clear-on-read ICR when ICR.INTA is set
For GPIE.NSICR, Section 7.3.2.1.2 says:
> ICR bits are cleared on register read. If GPIE.NSICR = 0b, then the
> clear on read occurs only if no bit is set in the IMS or at least one
> bit is set in the IMS and there is a true interrupt as reflected in
> ICR.INTA.
e1000e does similar though it checks for CTRL_EXT.IAME, which does not
exist on igb.
Suggested-by: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 9472640633494af67a418e6258e9b2941db1f5c1
https://github.com/qemu/qemu/commit/9472640633494af67a418e6258e9b2941db1f5c1
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/Kconfig
Log Message:
-----------
vmxnet3: Do not depend on PC
vmxnet3 has no dependency on PC, and VMware Fusion actually makes it
available on Apple Silicon according to:
https://kb.vmware.com/s/article/90364
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: c8110e767f2deb99029513d79d95a1c84bbeac9c
https://github.com/qemu/qemu/commit/c8110e767f2deb99029513d79d95a1c84bbeac9c
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M MAINTAINERS
Log Message:
-----------
MAINTAINERS: Add a reviewer for network packet abstractions
I have made significant changes for network packet abstractions so add
me as a reviewer.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: c37d98f3a940c832dafd3b77d3f9619df64c8ac4
https://github.com/qemu/qemu/commit/c37d98f3a940c832dafd3b77d3f9619df64c8ac4
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M docs/system/devices/igb.rst
Log Message:
-----------
docs/system/devices/igb: Note igb is tested for DPDK
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 792676c165159c11412346870fd58fd243ab2166
https://github.com/qemu/qemu/commit/792676c165159c11412346870fd58fd243ab2166
Author: Stefan Hajnoczi <stefanha@redhat.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M hw/net/rtl8139.c
Log Message:
-----------
rtl8139: fix large_send_mss divide-by-zero
If the driver sets large_send_mss to 0 then a divide-by-zero occurs.
Even if the division wasn't a problem, the for loop that emits MSS-sized
packets would never terminate.
Solve these issues by skipping offloading when large_send_mss=0.
This issue was found by OSS-Fuzz as part of Alexander Bulekov's device
fuzzing work. The reproducer is:
$ cat << EOF | ./qemu-system-i386 -display none -machine accel=qtest, -m \
512M,slots=1,maxmem=0xffff000000000000 -machine q35 -nodefaults -device \
rtl8139,netdev=net0 -netdev user,id=net0 -device \
pc-dimm,id=nv1,memdev=mem1,addr=0xb800a64602800000 -object \
memory-backend-ram,id=mem1,size=2M -qtest stdio
outl 0xcf8 0x80000814
outl 0xcfc 0xe0000000
outl 0xcf8 0x80000804
outw 0xcfc 0x06
write 0xe0000037 0x1 0x04
write 0xe00000e0 0x2 0x01
write 0x1 0x1 0x04
write 0x3 0x1 0x98
write 0xa 0x1 0x8c
write 0xb 0x1 0x02
write 0xc 0x1 0x46
write 0xd 0x1 0xa6
write 0xf 0x1 0xb8
write 0xb800a646028c000c 0x1 0x08
write 0xb800a646028c000e 0x1 0x47
write 0xb800a646028c0010 0x1 0x02
write 0xb800a646028c0017 0x1 0x06
write 0xb800a646028c0036 0x1 0x80
write 0xe00000d9 0x1 0x40
EOF
Buglink: https://gitlab.com/qemu-project/qemu/-/issues/1582
Closes: https://gitlab.com/qemu-project/qemu/-/issues/1582
Cc: qemu-stable@nongnu.org
Cc: Peter Maydell <peter.maydell@linaro.org>
Fixes: 6d71357a3b65 ("rtl8139: honor large send MSS value")
Reported-by: Alexander Bulekov <alxndr@bu.edu>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Tested-by: Alexander Bulekov <alxndr@bu.edu>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Commit: 00f76608a68dcd832c4a1b66694ef3e9cb52912f
https://github.com/qemu/qemu/commit/00f76608a68dcd832c4a1b66694ef3e9cb52912f
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M MAINTAINERS
M docs/system/devices/igb.rst
M hw/net/Kconfig
M hw/net/e1000.c
M hw/net/e1000e_core.c
M hw/net/e1000e_core.h
M hw/net/e1000x_common.c
M hw/net/e1000x_common.h
M hw/net/e1000x_regs.h
M hw/net/igb.c
M hw/net/igb_common.h
M hw/net/igb_core.c
M hw/net/igb_regs.h
M hw/net/igbvf.c
M hw/net/net_rx_pkt.c
M hw/net/net_rx_pkt.h
M hw/net/net_tx_pkt.c
M hw/net/net_tx_pkt.h
M hw/net/rtl8139.c
M hw/net/trace-events
M hw/net/virtio-net.c
M hw/net/vmxnet3.c
M include/net/eth.h
M include/qemu/crc32c.h
M net/eth.c
M scripts/ci/org.centos/stream/8/x86_64/test-avocado
M tests/avocado/netdev-ethtool.py
M tests/qtest/libqos/igb.c
M util/crc32c.c
Log Message:
-----------
Merge tag 'net-pull-request' of https://github.com/jasowang/qemu into staging
# -----BEGIN PGP SIGNATURE-----
# Version: GnuPG v1
#
# iQEcBAABAgAGBQJkbGmXAAoJEO8Ells5jWIR4ogH/R5+IgkZi1dwN/IxCpzTIc5H
# l5ncKK6TCqKCfgpFnFFLNKhcDqDczq4LhO42s/vnuOF8vIXcUVhLAz0HULARb46o
# p/7Ufn1k8Zg/HGtWwIW+9CcTkymsHzTOwFcTRFiCjpdkjaW1Wprb2q968f0Px8eS
# cKqC5xln8U+s02KWQMHlJili6BTPuw1ZNnYV3iq/81Me96WOtPd8c8ZSF4aVR2AB
# Kqah+BBOnk4p4kg9Gs0OvM4TffEBrsab8iu4s6SSQGA6ymCWY6GeCX0Ik4u9P1yE
# 6NtKLixBPO4fqLwWxWuKVJmaLKmuEd/FjZXWwITx9EPNtDuBuGLDKuvW8fJxkhw=
# =dw2I
# -----END PGP SIGNATURE-----
# gpg: Signature made Tue 23 May 2023 12:21:59 AM PDT
# gpg: using RSA key EF04965B398D6211
# gpg: Good signature from "Jason Wang (Jason Wang on RedHat)
<jasowang@redhat.com>" [undefined]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg: There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 215D 46F4 8246 689E C77F 3562 EF04 965B 398D 6211
* tag 'net-pull-request' of https://github.com/jasowang/qemu: (50 commits)
rtl8139: fix large_send_mss divide-by-zero
docs/system/devices/igb: Note igb is tested for DPDK
MAINTAINERS: Add a reviewer for network packet abstractions
vmxnet3: Do not depend on PC
igb: Clear-on-read ICR when ICR.INTA is set
igb: Notify only new interrupts
e1000e: Notify only new interrupts
igb: Implement Tx timestamp
igb: Implement Rx PTP2 timestamp
igb: Implement igb-specific oversize check
igb: Filter with the second VLAN tag for extended VLAN
igb: Strip the second VLAN tag for extended VLAN
igb: Implement Tx SCTP CSO
igb: Implement Rx SCTP CSO
igb: Use UDP for RSS hash
igb: Implement MSI-X single vector mode
tests/qtest/libqos/igb: Set GPIE.Multiple_MSIX
hw/net/net_rx_pkt: Enforce alignment for eth_header
net/eth: Always add VLAN tag
net/eth: Use void pointers
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Compare: https://github.com/qemu/qemu/compare/886c0453cbf1...00f76608a68d
- [Qemu-commits] [qemu/qemu] 8d689f: e1000e: Fix tx/rx counters,
Richard Henderson <=