Page MenuHomeFreeBSD

gallatin (Andrew Gallatin)
User

Projects

User Details

User Since
Jun 22 2015, 5:21 PM (243 w, 1 d)

Recent Activity

Today

gallatin updated the diff for D23752: Teach lagg to use rate-limited send tags for lacp.
Wed, Feb 19, 2:34 AM
gallatin created D23752: Teach lagg to use rate-limited send tags for lacp.
Wed, Feb 19, 2:30 AM

Yesterday

gallatin accepted D23710: Fix panics when using iflib pseudo device support.

I'd prefer the check be moved inside _iflib_assert(), but that's just a nit.

Tue, Feb 18, 2:31 PM
gallatin added inline comments to D23718: Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (M of N).
Tue, Feb 18, 2:22 PM

Thu, Feb 13

gallatin accepted D23674: Change smarter epoch support for NIC drivers to opt-in..
Thu, Feb 13, 10:33 PM

Wed, Feb 5

gallatin added a comment to D23483: Fix for unbalanced EPOCH(9) usage in kernel interrupt handler.

What we really care about is not re-ordering the load so that we ensure it happens prior to the loop. So I think you want an atomic with acquire semantics:

"the operation must have completed before any subsequent load or store (by program order) is performed"
Wed, Feb 5, 3:24 PM

Mon, Feb 3

gallatin accepted D23483: Fix for unbalanced EPOCH(9) usage in kernel interrupt handler.

To expand on this, the issue is that interrupt handlers are removed via intr_event_execute_handlers() when IH_DEAD is set. The thread removing the intr is woken up, and he calls intr_event_update(). When this happens, the ie_hflags are cleared and re-built from all the remaining handlers sharing the event. When the last IH_NET handler is removed, the IH_NET flag will be cleared from ih_hflags (or ie_hflags may still be being rebuilt in a different context), and the ithread_execute_handlers() may return with ie_hflags missing IH_NET. So we can end up in a scenario where IH_NET was present before calling ithread_execute_handlers, and is not present at its return, meaning we must cache the need for epoch locally.

Mon, Feb 3, 4:03 PM

Sat, Feb 1

gallatin added inline comments to D23408: epoch support for taskqueues.
Sat, Feb 1, 3:43 PM

Mon, Jan 27

gallatin accepted D23379: Enter epoch in msk_tick.
Mon, Jan 27, 12:06 AM

Fri, Jan 24

gallatin requested changes to D23348: Widen EPOCH(9) usage in network drivers (as a pre-step for D23347).

I like the idea of using a different ether_input() for epoch and non-epoch safe drivers to get the tests out of the critical path. However, this is a minor optimization at best, as branch predictors are really good these days on modern CPUs.

Fri, Jan 24, 2:15 PM
gallatin requested changes to D23347: Add support for batching interrupts in system interrupt code.
Fri, Jan 24, 2:11 PM
gallatin added a comment to D23347: Add support for batching interrupts in system interrupt code.

Some feedback:

Fri, Jan 24, 2:11 PM

Wed, Jan 22

gallatin added a comment to D23315: Make sure end of receive doesn't cause interrupt starvation in iflib.

As we discussed in slack, I'm not a huge fan of fixing things with a callout. If the hardware was amenable, I'd much rather leave the ring partially stocked and drop new packets until we were able to allocate mbufs again. However, based on the findings you reported with igb (it wanting a full rx ring to generate interrupts), I'm afraid that might require too much work from hardware drivers. And I'd prefer a fix to a real problem, even if its not something I personally find appealing, to leaving a real bug unfixed and having machines become unreachable.

Wed, Jan 22, 10:18 PM
gallatin accepted D23315: Make sure end of receive doesn't cause interrupt starvation in iflib.
Wed, Jan 22, 9:54 PM
gallatin accepted D23315: Make sure end of receive doesn't cause interrupt starvation in iflib.
Wed, Jan 22, 8:06 PM
gallatin added inline comments to D23315: Make sure end of receive doesn't cause interrupt starvation in iflib.
Wed, Jan 22, 3:41 PM

Mon, Jan 20

gallatin accepted D23242: Enter network epoch for network interrupts.
Mon, Jan 20, 5:41 PM

Jan 18 2020

gallatin committed rS356866: pcpu_page_alloc: guard against empty NUMA domains.
pcpu_page_alloc: guard against empty NUMA domains
Jan 18 2020, 6:26 PM

Dec 29 2019

gallatin added a comment to D19433: [new driver] tn40xx(4): Tehuti networks tn40xx device driver..

Why are there multiple reviews? The other one still appears to be open (https://reviews.freebsd.org/D18856)

Dec 29 2019, 12:27 AM

Dec 22 2019

gallatin accepted D21712: iflib: Prevent watchdog from resetting idle queues.
Dec 22 2019, 11:09 PM
gallatin added a comment to D18856: new driver: Tehuti networks tn40xx device driver..

There is code which is clearly FreeBSD specific that needs to be converted to comply with style(9).

Dec 22 2019, 1:41 AM

Dec 17 2019

gallatin accepted D22802: Add support for TLS 1.3 using AES-GCM to the OCF backend for KTLS..
Dec 17 2019, 5:31 PM
gallatin accepted D22801: Add a structure for the AAD used in TLS 1.3..
Dec 17 2019, 4:51 PM

Nov 18 2019

gallatin accepted D22393: Revise the page cache size policy..
Nov 18 2019, 11:51 PM

Nov 15 2019

gallatin accepted D22335: netinet*: replace IP6_EXTHDR_GET().
Nov 15 2019, 2:37 PM

Nov 7 2019

gallatin closed D21553: hwpmc : fix perf counter MSR access.
Nov 7 2019, 7:54 PM
gallatin committed rS354470: hwpmc : fix AMD perf counter MSR access.
hwpmc : fix AMD perf counter MSR access
Nov 7 2019, 7:54 PM
gallatin added a comment to D21553: hwpmc : fix perf counter MSR access.

This fixes GPFs for me when using hwpmc on AMD Rome. The GPFs were triggered out of MSR writes in the amd hwpmc interrupt handler.

Nov 7 2019, 2:28 PM

Nov 4 2019

gallatin committed rS354338: Add tunable to allow interrupts on hyperthreaded cores.
Add tunable to allow interrupts on hyperthreaded cores
Nov 4 2019, 7:30 PM
gallatin closed D22233: Add tunable to allow interrupts on hyperthreaded cores.
Nov 4 2019, 7:30 PM
gallatin created D22233: Add tunable to allow interrupts on hyperthreaded cores.
Nov 4 2019, 2:26 PM

Nov 1 2019

gallatin abandoned D21534: hwpmc callstack fix.
Nov 1 2019, 2:45 PM
gallatin commandeered D21534: hwpmc callstack fix.

This was fixed in r353483, however the wrong differential was tagged in that commit, so this differential was never closed.

Nov 1 2019, 2:44 PM

Oct 31 2019

gallatin accepted D22203: iflib: properly release memory allocated for DMA.

Thanks for fixing this. The NULL canaries were left over from when iflib had a separate code path which avoided busdma. When I removed this codepath, I neglected to remove those canaries.

Oct 31 2019, 1:05 PM

Oct 25 2019

gallatin accepted D22157: iflib: cleanup memory leaks on driver detach.
Oct 25 2019, 11:37 PM

Oct 24 2019

gallatin committed rS354029: Add a tunable to set the pgcache zone's maxcache.
Add a tunable to set the pgcache zone's maxcache
Oct 24 2019, 6:39 PM
gallatin closed D22112: Add a tunable to set the pgcache zone's maxcache.
Oct 24 2019, 6:39 PM
gallatin added inline comments to D22086: iflib: Stop interface before (un)registering VLAN.
Oct 24 2019, 6:19 PM

Oct 23 2019

gallatin accepted D22117: Use a counter with a random base for explicit IVs in GCM..

Works fine running on a Netflix cache.

Oct 23 2019, 11:08 PM
gallatin accepted D22071: iflib: call ether_ifdetach and netmap_detach before stop.
Oct 23 2019, 6:10 PM

Oct 22 2019

gallatin updated the summary of D22112: Add a tunable to set the pgcache zone's maxcache.
Oct 22 2019, 3:39 PM
gallatin created D22112: Add a tunable to set the pgcache zone's maxcache.
Oct 22 2019, 3:38 PM

Oct 10 2019

gallatin added inline comments to D21959: introduce new 'ice' driver for Intel E800 Ethernet controllers.
Oct 10 2019, 12:07 PM
gallatin added a comment to D21959: introduce new 'ice' driver for Intel E800 Ethernet controllers.

I just looked for a short time.. more comments later..

Oct 10 2019, 12:00 AM

Oct 9 2019

gallatin accepted D21868: e1000: correctly set isc_pause_frames only when XOFF increases.
Oct 9 2019, 8:47 PM
gallatin accepted D21869: ix: report isc_pause_frames during stat update.
Oct 9 2019, 8:46 PM
gallatin added inline comments to D21869: ix: report isc_pause_frames during stat update.
Oct 9 2019, 8:21 PM
gallatin accepted D21870: ixl: report whether device received pause frames.
Oct 9 2019, 8:13 PM

Oct 8 2019

gallatin added a comment to D21712: iflib: Prevent watchdog from resetting idle queues.

Yes, I meant adding a KASSERT or at least a comment.

Oct 8 2019, 10:47 PM
gallatin accepted D21943: Correct and final KPI to traverse through interface address lists for drivers.Removal of not stack allocated epoch_tracker..

I like this a lot. Note that I only looked at mxge and a few iflib drivers.

Oct 8 2019, 5:59 PM

Oct 7 2019

gallatin accepted D21891: Add support for KTLS via the TOE on Chelsio's T6 adapters..
Oct 7 2019, 8:21 PM

Oct 6 2019

gallatin accepted D21179: Add header definition for RFC4340, Datagram Congestion Control Protocol.
Oct 6 2019, 6:32 PM

Oct 3 2019

gallatin added inline comments to D21891: Add support for KTLS via the TOE on Chelsio's T6 adapters..
Oct 3 2019, 11:15 PM

Oct 1 2019

gallatin updated the diff for D21857: KTLS intel isa-l : Rework TLS 1.3 support.

Moved PORTREVISION down a line to fix portlint complaint as pointed out by jhb

Oct 1 2019, 6:09 PM
gallatin created D21857: KTLS intel isa-l : Rework TLS 1.3 support.
Oct 1 2019, 5:51 PM

Sep 29 2019

gallatin accepted D21831: Add IFLIB_SINGLE_IRQ_RX_ONLY..
Sep 29 2019, 1:42 PM

Sep 28 2019

gallatin added a comment to D21122: Proof-of-concept hack: remove mp_ring from TX path.

Sep 28 2019, 7:53 PM
gallatin added a comment to D21122: Proof-of-concept hack: remove mp_ring from TX path.

In my tests of UDP transmit using N copies of netperf on a 14c/28t Xeon E5-2697 v3 (haswell) using a 40Gbe ixl, I see nearly a 100% performance improvement (eg, double the packet rate) as compared to using mp_ring. In fact, for a single-threaded test the packet rate is 4x what it is for mp_ring with tx-abdicate enabled.

Sep 28 2019, 7:50 PM

Sep 27 2019

gallatin added a comment to D21796: Fix a sw ktls bug where we would never encrypt anonymous data in place.

Applied suggested changes prior to committing.

Sep 27 2019, 8:11 PM
gallatin committed rS352816: kTLS: Fix a bug where we would not encrypt anon data inplace..
kTLS: Fix a bug where we would not encrypt anon data inplace.
Sep 27 2019, 8:09 PM
gallatin closed D21796: Fix a sw ktls bug where we would never encrypt anonymous data in place.
Sep 27 2019, 8:08 PM
gallatin added a comment to D19111: Summary: widen net_epoch coverage up to all packet processing.

@gallatin: Network drivers can also use worker threads instead of IRQ's to process packets. Especially USB network devices.

Sep 27 2019, 7:46 PM
gallatin added a comment to D21801: kernel support for TLS 1.3.
In D21801#476448, @jhb wrote:

Actually, we need to update the logic that populates the TLS header to stop writing the 8 byte nonce for GCM for 1.3 in ktls_seq? It probably doesn't hurt for it to stay, but it would be cleaner if we removed it. I've actually thought about reworking what we do anyway. The 8 byte nonce doesn't have to be the sequence number, it just has to be unique per record. OpenSSL picks a random 8 byte value and increments it. We could actually do the something similar and generate the TLS header always in ktls_frame(). We would generate an 8 byte random value that is saved in the TLS session when it is created and just increment it for each record that is framed. There's no requirement that the nonce's be monotonically increasing, etc. just unique per record. This would simplify ktls_seq() and would make the 1.3 vs 1.2 handling a bit clearer.

Sep 27 2019, 7:37 PM
gallatin updated the diff for D21446: New port: security/ktls_isa-l_crypto..

Re-submit diff with -U999999 for full context.

Sep 27 2019, 7:22 PM
gallatin updated the diff for D21446: New port: security/ktls_isa-l_crypto..

Updated the port to handle TLS 1.3

Sep 27 2019, 7:20 PM
gallatin committed rS352814: kTLS support for TLS 1.3.
kTLS support for TLS 1.3
Sep 27 2019, 7:18 PM
gallatin closed D21801: kernel support for TLS 1.3.
Sep 27 2019, 7:18 PM
gallatin added a comment to D21801: kernel support for TLS 1.3.

Applied suggested changes in what I'm about to commit.

Sep 27 2019, 7:14 PM
gallatin added reviewers for D21797: Add IFCAP_NOMAP to iflib: erj, marius.
Sep 27 2019, 4:51 PM

Sep 26 2019

gallatin accepted D19111: Summary: widen net_epoch coverage up to all packet processing.
Sep 26 2019, 11:26 PM
gallatin updated the diff for D21446: New port: security/ktls_isa-l_crypto..
  • I've taken linimon's changes from bugzilla
  • I've hooked the port to the Makefile in the parent
Sep 26 2019, 7:07 PM
gallatin commandeered D21446: New port: security/ktls_isa-l_crypto..
Sep 26 2019, 7:05 PM
gallatin updated the diff for D21801: kernel support for TLS 1.3.

Updated to address feedback from Hans:

  • add comment that record_type must be first in the union
  • added a constant for the 1.3 GCM iv len and checked it where we check it for 1.2
Sep 26 2019, 2:38 PM
gallatin accepted D21616: Replace MD5 by SipHash as TCP keyed hash function.

I tested this, and it performed well and worked fine.

Sep 26 2019, 2:13 PM
gallatin created D21801: kernel support for TLS 1.3.
Sep 26 2019, 1:57 PM
gallatin created D21797: Add IFCAP_NOMAP to iflib.
Sep 26 2019, 12:47 AM

Sep 25 2019

gallatin created D21796: Fix a sw ktls bug where we would never encrypt anonymous data in place.
Sep 25 2019, 10:36 PM

Sep 20 2019

gallatin added a comment to D21712: iflib: Prevent watchdog from resetting idle queues.

Would it make sense then to assert that the link is down?

Sep 20 2019, 2:55 PM
gallatin committed rS352552: remove redundant "ktls" in KTLS thr name.
remove redundant "ktls" in KTLS thr name
Sep 20 2019, 9:36 AM
gallatin added a comment to D21712: iflib: Prevent watchdog from resetting idle queues.

I'm not sure, but I think the only way this can happen is when the link is down. Is that the caee here?

Sep 20 2019, 8:27 AM
gallatin accepted D21711: iflib: Remove redundant VLAN events deregistration.
Sep 20 2019, 8:15 AM

Sep 17 2019

gallatin added a comment to D21122: Proof-of-concept hack: remove mp_ring from TX path.

Uncrappy is nice. But if we've got lock contention, it would be nice to know why.

Sep 17 2019, 7:17 PM
gallatin added a comment to D21122: Proof-of-concept hack: remove mp_ring from TX path.
Sep 17 2019, 12:39 PM

Sep 16 2019

gallatin accepted D21644: During SYN floods, fallback exclusively to SYN cookies for a small period.
Sep 16 2019, 12:18 PM

Sep 14 2019

gallatin added a comment to D21636: Filter TCP connections to SO_REUSEPORT_LB listen sockets by NUMA domain.

This isn't worth much consternation but I do wonder if we can try to limit the proliferation of these sockopts. For instance, if you generalize the existing _LB to take a generic integer arg, would that and cpuset achieve the same effect (and generalize to however people want to use those numbered groups?)

Sep 14 2019, 9:56 PM

Sep 13 2019

gallatin added inline comments to D21644: During SYN floods, fallback exclusively to SYN cookies for a small period.
Sep 13 2019, 10:21 PM
gallatin created D21648: ktls: NUMA awareness.
Sep 13 2019, 8:07 PM
gallatin added inline comments to D21636: Filter TCP connections to SO_REUSEPORT_LB listen sockets by NUMA domain.
Sep 13 2019, 6:53 PM
gallatin updated the diff for D21636: Filter TCP connections to SO_REUSEPORT_LB listen sockets by NUMA domain.
  • Fixed line wrap issues pointed out by igor
Sep 13 2019, 6:53 PM
gallatin added inline comments to D21636: Filter TCP connections to SO_REUSEPORT_LB listen sockets by NUMA domain.
Sep 13 2019, 6:01 PM
gallatin updated the diff for D21636: Filter TCP connections to SO_REUSEPORT_LB listen sockets by NUMA domain.

Address bz's concerns:

  • Shorten lines in man page
  • Make numa_domain consistently uint8_t
  • simplify logic in places
  • fix some style errors
Sep 13 2019, 6:00 PM
gallatin created D21636: Filter TCP connections to SO_REUSEPORT_LB listen sockets by NUMA domain.
Sep 13 2019, 2:24 PM

Sep 11 2019

gallatin committed rS352228: Avoid unneeded call to arc4random() in syncache_add().
Avoid unneeded call to arc4random() in syncache_add()
Sep 11 2019, 6:48 PM
gallatin closed D21591: avoid unneeded call to arc4random() in syncache_add().
Sep 11 2019, 6:48 PM

Sep 10 2019

gallatin created D21591: avoid unneeded call to arc4random() in syncache_add().
Sep 10 2019, 7:47 PM

Aug 30 2019

D21446: New port: security/ktls_isa-l_crypto. is now accepted and ready to land.
Aug 30 2019, 1:46 PM

Aug 27 2019

gallatin added a comment to D21122: Proof-of-concept hack: remove mp_ring from TX path.
Aug 27 2019, 12:27 AM

Aug 23 2019

gallatin accepted D21277: Add kernel-side support for in-kernel TLS..
Aug 23 2019, 11:39 PM

Aug 21 2019

D21127: Final prep patch for BBR is now accepted and ready to land.
Aug 21 2019, 12:42 PM

Aug 18 2019

D21242: Reallocate pcpu area on the correct domain. now requires changes to proceed.
Aug 18 2019, 7:52 PM