Re: em(4): enable TCP/UDP checksum offload
On 7.11.2012. 12:57, Hrvoje Popovski wrote: 82546GB pf (with henning's patch) + ipforward and with or without em tcp/udp checksum - not working 82541GI pf (with henning's patch) + ipforward + em tcp/udp checksum - works like charm I don't know if it's a good time, but now with new cksum diff and with enabled TCP/UDP chksum offload on em(4) everything is working fine. standard user traffic, nat, carp, site-to-site ipsec with 82541GI stable for 2 weeks with 82546GB stable for 2 days OpenBSD 5.3-current (GENERIC.MP) #1: Wed Jun 26 19:05:05 CEST 2013 r...@fw01.net.lab:/usr/src/sys/arch/amd64/compile/GENERIC.MP real mem = 2130444288 (2031MB) avail mem = 2066063360 (1970MB) mainbus0 at root bios0 at mainbus0: SMBIOS rev. 2.3 @ 0xf9920 (87 entries) bios0: vendor Dell Computer Corporation version A07 date 04/25/2008 bios0: Dell Computer Corporation PowerEdge 1850 acpi0 at bios0: rev 0 acpi0: sleep states S0 S4 S5 acpi0: tables DSDT FACP APIC SPCR HPET MCFG acpi0: wakeup devices PCI0(S5) PALO(S5) PBLO(S5) VPR0(S5) PBHI(S5) VPR1(S5) PICH(S5) acpitimer0 at acpi0: 3579545 Hz, 24 bits acpimadt0 at acpi0 addr 0xfee0: PC-AT compat cpu0 at mainbus0: apid 0 (boot processor) cpu0: Intel(R) Xeon(TM) CPU 3.40GHz, 3391.96 MHz cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,DTES64,MWAIT,DS-CPL,EST,CNXT-ID,CX16,xTPR,NXE,LONG,PERF cpu0: 1MB 64b/line 8-way L2 cache cpu0: smt 0, core 0, package 0 cpu0: apic clock running at 199MHz cpu1 at mainbus0: apid 6 (application processor) cpu1: Intel(R) Xeon(TM) CPU 3.40GHz, 3391.51 MHz cpu1: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,DTES64,MWAIT,DS-CPL,EST,CNXT-ID,CX16,xTPR,NXE,LONG,PERF cpu1: 1MB 64b/line 8-way L2 cache cpu1: smt 0, core 0, package 6 ioapic0 at mainbus0: apid 7 pa 0xfec0, version 20, 24 pins ioapic0: misconfigured as apic 0, remapped to apid 7 ioapic1 at mainbus0: apid 8 pa 0xfec8, version 20, 24 pins ioapic1: misconfigured as apic 0, remapped to apid 8 ioapic2 at mainbus0: apid 9 pa 0xfec83000, version 20, 24 pins ioapic2: misconfigured as apic 0, remapped to apid 9 acpihpet0 at acpi0: 14318179 Hz acpimcfg0 at acpi0 addr 0xe000, bus 0-255 acpiprt0 at acpi0: bus 0 (PCI0) acpiprt1 at acpi0: bus 1 (PALO) acpiprt2 at acpi0: bus 3 (DOBA) acpiprt3 at acpi0: bus 2 (DOBB) acpiprt4 at acpi0: bus 4 (PBLO) acpiprt5 at acpi0: bus 8 (VPR0) acpiprt6 at acpi0: bus 5 (PBHI) acpiprt7 at acpi0: bus 6 (PXB1) acpiprt8 at acpi0: bus 7 (PXB2) acpiprt9 at acpi0: bus 9 (PICH) acpicpu0 at acpi0 acpicpu1 at acpi0 ipmi at mainbus0 not configured pci0 at mainbus0 bus 0 pchb0 at pci0 dev 0 function 0 Intel E7520 Host rev 0x09 ppb0 at pci0 dev 2 function 0 Intel E7520 PCIE rev 0x09 pci1 at ppb0 bus 1 ppb1 at pci1 dev 0 function 0 Intel 6700PXH PCIE-PCIX rev 0x09 pci2 at ppb1 bus 2 em0 at pci2 dev 11 function 0 Intel 82546GB rev 0x03: apic 7 int 17, address 00:1b:21:30:99:ba em1 at pci2 dev 11 function 1 Intel 82546GB rev 0x03: apic 7 int 18, address 00:1b:21:30:99:bb ppb2 at pci1 dev 0 function 2 Intel 6700PXH PCIE-PCIX rev 0x09 pci3 at ppb2 bus 3 mpi0 at pci3 dev 5 function 0 Symbios Logic 53c1030 rev 0x08: msi scsibus0 at mpi0: 16 targets, initiator 7 sd0 at scsibus0 targ 0 lun 0: SEAGATE, ST373307LC, DS09 SCSI3 0/direct fixed serial.SEAGATE_ST373307LC_3HZ9GTXR sd0: 70007MB, 512 bytes/sector, 143374650 sectors safte0 at scsibus0 targ 6 lun 0: PE/PV, 1x2 SCSI BP, 1.0 SCSI2 3/processor fixed mpi0: target 0 Sync at 160MHz width 16bit offset 63 QAS 0 DT 1 IU 1 re0 at pci3 dev 12 function 0 D-Link DGE-528T rev 0x10: RTL8169/8110SB (0x1000), apic 7 int 19, address 00:21:91:f4:6d:3a rgephy0 at re0 phy 7: RTL8169S/8110S PHY, rev. 3 ppb3 at pci0 dev 4 function 0 Intel E7520 PCIE rev 0x09 pci4 at ppb3 bus 4 ppb4 at pci0 dev 5 function 0 Intel E7520 PCIE rev 0x09 pci5 at ppb4 bus 5 ppb5 at pci5 dev 0 function 0 Intel 6700PXH PCIE-PCIX rev 0x09 pci6 at ppb5 bus 6 em2 at pci6 dev 7 function 0 Intel 82541GI rev 0x05: apic 9 int 0, address 00:11:43:d1:eb:59 ppb6 at pci5 dev 0 function 2 Intel 6700PXH PCIE-PCIX rev 0x09 pci7 at ppb6 bus 7 em3 at pci7 dev 8 function 0 Intel 82541GI rev 0x05: apic 9 int 1, address 00:11:43:d1:eb:5a ppb7 at pci0 dev 6 function 0 Intel E7520 PCIE rev 0x09 pci8 at ppb7 bus 8 ppb8 at pci0 dev 30 function 0 Intel 82801BA Hub-to-PCI rev 0xc2 pci9 at ppb8 bus 9 vga1 at pci9 dev 13 function 0 ATI Radeon VE rev 0x00 radeondrm0 at vga1: apic 7 int 18 drm0 at radeondrm0 wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation) wsdisplay0: screen 1-5 added (80x25, vt100 emulation) pcib0 at pci0 dev 31 function 0 Intel 82801EB/ER LPC rev 0x02 pciide0 at pci0 dev 31 function 1 Intel 82801EB/ER IDE rev 0x02: DMA, channel 0 configured to compatibility, channel 1 configured to compatibility atapiscsi0 at pciide0 channel 0 drive 0 scsibus1 at atapiscsi0: 2 targets cd0 at scsibus1 targ 0 lun 0:
Re: em(4): enable TCP/UDP checksum offload
Peter Strömberg wilfrie...@gmail.com wrote: I have a case where it fails. rtorrent can't connect to the tracker. rtorrent is bound to 192.168.0.2 (em0) and the external iface is em2 so it's a mixture of having hw-csum and no hw-csum If this is with Henning's checksum diff backed out again (happened on Nov 6), then that's expected. -- Christian naddy Weisgerber na...@mips.inka.de
Re: em(4): enable TCP/UDP checksum offload
Hi, somewhat strange results here $ ifconfig em0 hwfeatures em0: flags=8843UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST mtu 1500 hwfeatures=36CSUM_TCPv4,CSUM_UDPv4,VLAN_MTU,VLAN_HWTAGGING lladdr XX:XX:XX:XX:XX:XX priority: 0 groups: egress media: Ethernet autoselect (100baseTX full-duplex,rxpause,txpause) status: active inet X.X.X.X netmask 0xff00 broadcast X.X.X.X $ Intel Q45 KT rev 0x03 at pci0 dev 3 function 3 not configured em0 at pci0 dev 25 function 0 Intel ICH10 D BM LM rev 0x02: msi, address X:X:X:X:X:X I can ping gateway, I can ping various servers on Internet via IP or DNS name, Apache from base running under chroot with HTTP and HTTPS and blogsum provided via HTTP. I can ssh login to that machine, I can view blogsum from remote machines, but localy on server xombrero or lynx is not able to display ANY web page, not even from local Apache. On Wed, Nov 7, 2012 at 8:50 AM, mxb m...@alumni.chalmers.se wrote: In my case, it is a CARP backup(master will be upgraded soon) rolling ospf on top of gre on top of ipsec, running npppd, and daily NAT/RDR for about 100 clients. On 6 nov 2012, at 21:31, Stuart Henderson s...@spacehopper.org wrote: For people who are testing checksum-offload-enabling diffs, it would help if you could say what sort of things have tested. Things like fragments/NFS are far more likely to exercise bugs in the hardware than standard web browsing.
Re: em(4): enable TCP/UDP checksum offload
On Wed, Nov 7, 2012 at 12:32 PM, Tomas Bodzar tomas.bod...@gmail.com wrote: Hi, somewhat strange results here $ ifconfig em0 hwfeatures em0: flags=8843UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST mtu 1500 hwfeatures=36CSUM_TCPv4,CSUM_UDPv4,VLAN_MTU,VLAN_HWTAGGING lladdr XX:XX:XX:XX:XX:XX priority: 0 groups: egress media: Ethernet autoselect (100baseTX full-duplex,rxpause,txpause) status: active inet X.X.X.X netmask 0xff00 broadcast X.X.X.X $ Intel Q45 KT rev 0x03 at pci0 dev 3 function 3 not configured em0 at pci0 dev 25 function 0 Intel ICH10 D BM LM rev 0x02: msi, address X:X:X:X:X:X I can ping gateway, I can ping various servers on Internet via IP or DNS name, Apache from base running under chroot with HTTP and HTTPS and blogsum provided via HTTP. I can ssh login to that machine, I can view blogsum from remote machines, but localy on server xombrero or lynx is not able to display ANY web page, not even from local Apache. On VMware Player 5 it seems to be fine including SSH, cvs, webbrowsing, pf for desktop use, remote X $ ifconfig em0 hwfeatures em0: flags=8843UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST mtu 1500 hwfeatures=36CSUM_TCPv4,CSUM_UDPv4,VLAN_MTU,VLAN_HWTAGGING lladdr X:X:X:X:X:X priority: 0 groups: egress media: Ethernet autoselect (1000baseT full-duplex,master) status: active inet X.X.X.X netmask 0xff00 broadcast X.X.X.X $ em0 at pci2 dev 0 function 0 Intel PRO/1000MT (82545EM) rev 0x01: apic 1 int 18, address X:X:X:X:X:X On Wed, Nov 7, 2012 at 8:50 AM, mxb m...@alumni.chalmers.se wrote: In my case, it is a CARP backup(master will be upgraded soon) rolling ospf on top of gre on top of ipsec, running npppd, and daily NAT/RDR for about 100 clients. On 6 nov 2012, at 21:31, Stuart Henderson s...@spacehopper.org wrote: For people who are testing checksum-offload-enabling diffs, it would help if you could say what sort of things have tested. Things like fragments/NFS are far more likely to exercise bugs in the hardware than standard web browsing.
Re: em(4): enable TCP/UDP checksum offload
On 5.11.2012 23:45, Hrvoje Popovski wrote: On 5.11.2012. 14:38, Hrvoje Popovski wrote: Hello, it's working here. Please ignore working here part. It is enabled here. Will play with combination of 82546GB and 82541GI interfaces. 82546GB pf (with henning's patch) + ipforward and with or without em tcp/udp checksum - not working 82541GI pf (with henning's patch) + ipforward + em tcp/udp checksum - works like charm with 82546GB and openbsd as host things like ssh, dns (small traffic) works
Re: em(4): enable TCP/UDP checksum offload
On Sun, 4 Nov 2012 16:06:31 +0100 Christopher Zimmermann madro...@gmerlin.de wrote: On Sun, 4 Nov 2012 14:46:34 +0100 Stefan Sperling s...@openbsd.org wrote: On Sun, Nov 04, 2012 at 01:21:38PM +, Christian Weisgerber wrote: Christian Weisgerber na...@mips.inka.de wrote: Like bge(4), we previously couldn't enable TCP/UDP transmit checksum offload on em(4). We can now. Works fine here on em0 at pci1 dev 1 function 0 Intel PRO/1000MT (82540EM) rev 0x02 and with VLAN on em0 at pci5 dev 0 function 0 Intel PRO/1000 MT (82574L) rev 0x00 It does however fail on em0 at pci1 dev 0 function 0 Intel I350 rev 0x01 (Watchdog timeouts, interface is unusable.) This one is working fine: em0 at pci1 dev 0 function 0 Intel PRO/1000MT (82573L) rev 0x00 here too: em0 at pci0 dev 25 function 0 Intel ICH9 IGP M AMT rev 0x03: msi and using it actively as NFS (udp) client.
Re: em(4): enable TCP/UDP checksum offload
looks good: # dmesg |grep ^em em0 at pci9 dev 0 function 0 Intel PRO/1000 PT (82571EB) rev 0x06: apic 0 int 8, address X:X:X:X:X:X em1 at pci9 dev 0 function 1 Intel PRO/1000 PT (82571EB) rev 0x06: apic 0 int 18, address X:X:X:X:X:X # ifconfig em hwfeatures em0: flags=8b43UP,BROADCAST,RUNNING,PROMISC,ALLMULTI,SIMPLEX,MULTICAST mtu 1500 hwfeatures=36CSUM_TCPv4,CSUM_UDPv4,VLAN_MTU,VLAN_HWTAGGING lladdr X:X:X:X:X:X priority: 0 trunk: trunkdev trunk0 media: Ethernet autoselect (1000baseT full-duplex) status: active em1: flags=8b43UP,BROADCAST,RUNNING,PROMISC,ALLMULTI,SIMPLEX,MULTICAST mtu 1500 hwfeatures=36CSUM_TCPv4,CSUM_UDPv4,VLAN_MTU,VLAN_HWTAGGING lladdr X:X:X:X:X:X priority: 0 trunk: trunkdev trunk0 media: Ethernet autoselect (1000baseT full-duplex) status: active
Re: em(4): enable TCP/UDP checksum offload
and these also look good: dmesg|grep ^em em0 at pci3 dev 0 function 0 Intel PRO/1000 PT (82572EI) rev 0x06: apic 2 int 17, address X:X:X:X:X:X ifconfig em hwfeatures em0: flags=8843UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST mtu 1500 hwfeatures=36CSUM_TCPv4,CSUM_UDPv4,VLAN_MTU,VLAN_HWTAGGING lladdr X:X:X:X:X:X priority: 0 groups: egress media: Ethernet autoselect (1000baseT full-duplex) status: active # dmesg|grep ^em em0 at pci0 dev 25 function 0 Intel ICH8 IGP M AMT rev 0x03: msi, address X:X:X:X:X:X # ifconfig em0 hwfeatures em0: flags=8843UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST mtu 1500 hwfeatures=36CSUM_TCPv4,CSUM_UDPv4,VLAN_MTU,VLAN_HWTAGGING lladdr X:X:X:X:X:X priority: 0 groups: egress media: Ethernet autoselect (1000baseT full-duplex,rxpause,txpause) status: active I will keep the patch enabled on these interfaces and report if there should be any problems which I didn't notice yet. Best Regards Andreas
Re: em(4): enable TCP/UDP checksum offload
For people who are testing checksum-offload-enabling diffs, it would help if you could say what sort of things have tested. Things like fragments/NFS are far more likely to exercise bugs in the hardware than standard web browsing.
Re: em(4): enable TCP/UDP checksum offload
In my case, it is a CARP backup(master will be upgraded soon) rolling ospf on top of gre on top of ipsec, running npppd, and daily NAT/RDR for about 100 clients. On 6 nov 2012, at 21:31, Stuart Henderson s...@spacehopper.org wrote: For people who are testing checksum-offload-enabling diffs, it would help if you could say what sort of things have tested. Things like fragments/NFS are far more likely to exercise bugs in the hardware than standard web browsing.
Re: em(4): enable TCP/UDP checksum offload
On 5.11.2012. 14:38, Hrvoje Popovski wrote: Hello, it's working here. Please ignore working here part. It is enabled here. Will play with combination of 82546GB and 82541GI interfaces.
em(4): enable TCP/UDP checksum offload
Like bge(4), we previously couldn't enable TCP/UDP transmit checksum offload on em(4). We can now. Works fine here on em0 at pci1 dev 1 function 0 Intel PRO/1000MT (82540EM) rev 0x02 and with VLAN on em0 at pci5 dev 0 function 0 Intel PRO/1000 MT (82574L) rev 0x00 Does anybody see any value in keeping the #ifdef around? Index: dev/pci/if_em.c === RCS file: /cvs/src/sys/dev/pci/if_em.c,v retrieving revision 1.267 diff -u -p -r1.267 if_em.c --- dev/pci/if_em.c 16 Aug 2012 09:31:53 - 1.267 +++ dev/pci/if_em.c 3 Nov 2012 01:53:32 - @@ -211,10 +211,8 @@ int em_rxfill(struct em_softc *); void em_rxeof(struct em_softc *); void em_receive_checksum(struct em_softc *, struct em_rx_desc *, struct mbuf *); -#ifdef EM_CSUM_OFFLOAD void em_transmit_checksum_setup(struct em_softc *, struct mbuf *, u_int32_t *, u_int32_t *); -#endif void em_iff(struct em_softc *); #ifdef EM_DEBUG void em_print_hw_stats(struct em_softc *); @@ -1121,14 +1119,10 @@ em_encap(struct em_softc *sc, struct mbu if (map-dm_nsegs sc-num_tx_desc_avail - 2) goto fail; -#ifdef EM_CSUM_OFFLOAD if (sc-hw.mac_type = em_82543) em_transmit_checksum_setup(sc, m_head, txd_upper, txd_lower); else txd_upper = txd_lower = 0; -#else - txd_upper = txd_lower = 0; -#endif i = sc-next_avail_tx_desc; if (sc-pcix_82544) @@ -1853,10 +1847,8 @@ em_setup_interface(struct em_softc *sc) ifp-if_capabilities |= IFCAP_VLAN_HWTAGGING; #endif -#ifdef EM_CSUM_OFFLOAD if (sc-hw.mac_type = em_82543) ifp-if_capabilities |= IFCAP_CSUM_TCPv4|IFCAP_CSUM_UDPv4; -#endif /* * Specify the media types supported by this adapter and register @@ -2275,7 +2267,6 @@ em_free_transmit_structures(struct em_so sc-txtag = NULL; } -#ifdef EM_CSUM_OFFLOAD /* * * The offload context needs to be set when we transfer the first @@ -2356,7 +2347,6 @@ em_transmit_checksum_setup(struct em_sof sc-num_tx_desc_avail--; sc-next_avail_tx_desc = curr_txd; } -#endif /* EM_CSUM_OFFLOAD */ /** * -- Christian naddy Weisgerber na...@mips.inka.de