Page MenuHomeFreeBSD

gallatin (Andrew Gallatin)
User

Projects

User Details

User Since
Jun 22 2015, 5:21 PM (405 w, 3 d)

Recent Activity

Today

gallatin committed rG588f03ec9b9e: bectl: Improve error message when ZFS root is not found. (authored by gallatin).
bectl: Improve error message when ZFS root is not found.
Fri, Mar 31, 2:38 PM
gallatin closed D39346: bectl: Improve error message when libbe_init() fails.
Fri, Mar 31, 2:37 PM

Yesterday

gallatin requested review of D39346: bectl: Improve error message when libbe_init() fails.
Thu, Mar 30, 8:05 PM

Sat, Mar 25

gallatin committed rGabba58766fdd: LRO: Add missing checks for invalid IP addresses (authored by gallatin).
LRO: Add missing checks for invalid IP addresses
Sat, Mar 25, 4:05 PM

Fri, Mar 24

gallatin requested changes to D39235: LRO: improve IPv4/IPv6 packet header checks.

I really think this belongs in tcp_lro_low_level_parser(). The function you've hooked exists simply to deal with IPv4 IP checksums, that's why there was no analog for V6. If you do push this, you need to remove the stat increments.

Fri, Mar 24, 1:05 PM

Thu, Mar 23

gallatin accepted D39232: ktls: Drop all the INET and INET6 compile-time guards..
Thu, Mar 23, 7:45 PM

Tue, Mar 21

gallatin accepted D38504: ktls: Fix interlocking between ktls_enable_rx() and listen(2).
Tue, Mar 21, 7:52 PM

Sat, Mar 18

gallatin requested review of D39150: hyperv: Fix compilation with larger page sizes.
Sat, Mar 18, 4:43 PM

Thu, Mar 16

gallatin abandoned D24645: sched_ule: rate limit work stealing.
Thu, Mar 16, 6:40 PM
gallatin added a comment to D24645: sched_ule: rate limit work stealing.
In D24645#889225, @mjg wrote:

Is this still an issue? I think some work by mav@ managed to depessimize some of cpu search in 2668bb2add8d11c56524ce9014b510412f8f6aa9 and aefe0a8c32d370f2fdd0d0771eb59f8845beda17, perhaps to the point where the above is moot.

If stealing right now reduces your perf, I think a ratelimit on limit is only papering over the real problem.

Thu, Mar 16, 6:40 PM

Tue, Mar 14

gallatin added a comment to D24645: sched_ule: rate limit work stealing.
In D24645#889225, @mjg wrote:

Is this still an issue? I think some work by mav@ managed to depessimize some of cpu search in 2668bb2add8d11c56524ce9014b510412f8f6aa9 and aefe0a8c32d370f2fdd0d0771eb59f8845beda17, perhaps to the point where the above is moot.

If stealing right now reduces your perf, I think a ratelimit on limit is only papering over the real problem.

Tue, Mar 14, 6:53 PM

Mon, Mar 6

gallatin accepted D38932: ktls: Use IfAPI accessors to get capabilities.
Mon, Mar 6, 8:36 PM
gallatin accepted D38928: iflib: Further convert to use IfAPI accessors.
Mon, Mar 6, 5:57 PM

Feb 20 2023

gallatin added a comment to D38504: ktls: Fix interlocking between ktls_enable_rx() and listen(2).

It might be nice to document why the SOLISTENTING() check is not needed in the tx case..

Why exactly do we acquire the SEND_IO lock in enable_tx but we don't acquire the RECV_IO lock in enable_rx? It's a bit hard to write a useful comment without that info.

Feb 20 2023, 5:13 PM

Feb 12 2023

gallatin accepted D38504: ktls: Fix interlocking between ktls_enable_rx() and listen(2).

It might be nice to document why the SOLISTENTING() check is not needed in the tx case..

Feb 12 2023, 5:31 PM

Feb 9 2023

gallatin committed rGd24b032bec1b: ktls: Fix comments & whitespace issues with c0e4090e3d43 (authored by gallatin).
ktls: Fix comments & whitespace issues with c0e4090e3d43
Feb 9 2023, 7:12 PM
gallatin added inline comments to D38380: ktls: Avoid spurious calls to ktls_disable_ifnet().
Feb 9 2023, 6:58 PM
gallatin added a comment to D38380: ktls: Avoid spurious calls to ktls_disable_ifnet().
In D38380#875352, @jhb wrote:

I'm trying to remember the edge case for why the flag wasn't cleared when moving to a software session. I'm not sure this doesn't open whatever race that was back up. I think the problem might have been that when you switch to SW TLS you might still have existing mbufs in the socket buffer that were framed with the NIC TLS session. We don't go back and try to do software encryption of those mbufs, and even though you've changed the TLS session for "new" requests to send data in the future, those previously existing mbufs still have the old snd_tag and need NIC TLS behavior in TCP. I think you've now broken that case again. In theory the right answer is to check the mbufs you are planning to send to see if they have a send tag and do the split in tcp_m based on that, but that means walking the mbuf chain I think all the time, and the global flag in the sockbuf seemed less expensive.

When you switch to SW TLS, the existing mbufs that were framed with NIC TLS still reference the NIC TLS session. The t_nic_ktls_xmit flag remains set on the tcbcb until the NIC TLS session is released, meaning that TCP has moved past all those mbufs,

Feb 9 2023, 6:22 PM
gallatin added a comment to D38380: ktls: Avoid spurious calls to ktls_disable_ifnet().
In D38380#875352, @jhb wrote:

I'm trying to remember the edge case for why the flag wasn't cleared when moving to a software session. I'm not sure this doesn't open whatever race that was back up. I think the problem might have been that when you switch to SW TLS you might still have existing mbufs in the socket buffer that were framed with the NIC TLS session. We don't go back and try to do software encryption of those mbufs, and even though you've changed the TLS session for "new" requests to send data in the future, those previously existing mbufs still have the old snd_tag and need NIC TLS behavior in TCP. I think you've now broken that case again. In theory the right answer is to check the mbufs you are planning to send to see if they have a send tag and do the split in tcp_m based on that, but that means walking the mbuf chain I think all the time, and the global flag in the sockbuf seemed less expensive.

Feb 9 2023, 6:15 PM
gallatin committed rGc0e4090e3d43: ktls: Accurately track if ifnet ktls is enabled (authored by gallatin).
ktls: Accurately track if ifnet ktls is enabled
Feb 9 2023, 5:53 PM
gallatin updated the diff for D38380: ktls: Avoid spurious calls to ktls_disable_ifnet().

Updated patch to restore and document the td_rw_rlocks hack to detect if we might hold an rlock on the inp. Without this, we end up scheduling a taskqueue in about 18% of cases due to other threads holding locks.

Feb 9 2023, 5:52 PM

Feb 8 2023

gallatin updated the diff for D38380: ktls: Avoid spurious calls to ktls_disable_ifnet().

Update to hold the wlock in ktls_destroy for transmit ktls, as suggested by Mark.

Feb 8 2023, 1:14 AM

Feb 7 2023

gallatin added inline comments to D38380: ktls: Avoid spurious calls to ktls_disable_ifnet().
Feb 7 2023, 8:57 PM
gallatin updated the diff for D38380: ktls: Avoid spurious calls to ktls_disable_ifnet().

Run ktls_destroy() if we are called by a thread holding an rlock. There is no way to know if the rlock held by the thread is the inpcb lock, but just assume it is for safety.

Feb 7 2023, 4:25 PM
gallatin added a comment to D37977: pfil: add pfil_mem_{in,out}() and retire pfil_run_hooks().
In D37977#873536, @mjg wrote:

What cache-misses? I did not see any point in benching this change, it is the original minus some branches and no extra memory accesses.

Feb 7 2023, 12:57 AM

Feb 6 2023

gallatin added a comment to D37977: pfil: add pfil_mem_{in,out}() and retire pfil_run_hooks().
In D37977#873507, @mjg wrote:

that's probably because the branches you would normally ran into got previously sorted out with 0b70e3e78b0279c66be06dea27bcdaf5eadf663d , but chances are there is enough other slowdown for that to not matter on its own

Feb 6 2023, 9:39 PM
gallatin added inline comments to D38380: ktls: Avoid spurious calls to ktls_disable_ifnet().
Feb 6 2023, 8:35 PM
gallatin accepted D37848: Mechanically convert mxge(4) to DrvAPI.
Feb 6 2023, 4:40 PM

Feb 4 2023

gallatin added a reviewer for D38380: ktls: Avoid spurious calls to ktls_disable_ifnet(): hselasky.
Feb 4 2023, 1:55 AM
gallatin updated the summary of D38380: ktls: Avoid spurious calls to ktls_disable_ifnet().
Feb 4 2023, 1:54 AM
gallatin requested review of D38380: ktls: Avoid spurious calls to ktls_disable_ifnet().
Feb 4 2023, 1:54 AM

Feb 2 2023

gallatin closed D38346: ixgbe: Do not count l3/l4 checksum errors as input errors.
Feb 2 2023, 3:18 PM
gallatin committed rG8de48df35c3b: ixgbe: Do not count L3/L4 checksum errors as input errors (authored by gallatin).
ixgbe: Do not count L3/L4 checksum errors as input errors
Feb 2 2023, 3:18 PM

Feb 1 2023

gallatin requested review of D38346: ixgbe: Do not count l3/l4 checksum errors as input errors.
Feb 1 2023, 8:27 PM

Jan 24 2023

gallatin committed rGda81cc6035f8: dtrace: conditionally load the systrace_linux klds when loading dtrace. (authored by gallatin).
dtrace: conditionally load the systrace_linux klds when loading dtrace.
Jan 24 2023, 1:39 AM
gallatin closed D37986: dtrace: conditionally load the systrace_linux klds when loading dtrace..
Jan 24 2023, 1:38 AM

Jan 21 2023

gallatin updated the diff for D37986: dtrace: conditionally load the systrace_linux klds when loading dtrace..

Update diff to use ifdefs and SIZEOF_LONG as suggested by reviewers.

Jan 21 2023, 7:34 PM
gallatin closed D37707: centralize VM_BATCHQUEUE_SIZE definition & increase size on arm64.
Jan 21 2023, 7:31 PM
gallatin committed rG9cb6ba29cb70: vm: centralize VM_BATCHQUEUE_SIZE definition (authored by gallatin).
vm: centralize VM_BATCHQUEUE_SIZE definition
Jan 21 2023, 7:31 PM

Jan 11 2023

gallatin updated the diff for D37707: centralize VM_BATCHQUEUE_SIZE definition & increase size on arm64.

Remove now unneeded ifndef VM_BATCHQUEUE_SIZE as suggested by @jhb

Jan 11 2023, 9:25 PM
gallatin updated the diff for D37707: centralize VM_BATCHQUEUE_SIZE definition & increase size on arm64.

Updated patch to use SIZEOF_LONG, based on review feedback from @jhb and @markj

Jan 11 2023, 9:14 PM

Jan 10 2023

gallatin committed rG8ea418299548: tcp: Build RACK and BBR stacks as a part of LINT (authored by gallatin).
tcp: Build RACK and BBR stacks as a part of LINT
Jan 10 2023, 9:19 PM
gallatin closed D37903: Build RACK and BBR TCP stacks as a part of LINT.
Jan 10 2023, 9:18 PM
gallatin added inline comments to D37986: dtrace: conditionally load the systrace_linux klds when loading dtrace..
Jan 10 2023, 1:53 PM
gallatin updated the diff for D37986: dtrace: conditionally load the systrace_linux klds when loading dtrace..

Updated patch to load the proper systrace module when running on a 32-bit system.

Jan 10 2023, 1:52 PM
gallatin added inline comments to D37986: dtrace: conditionally load the systrace_linux klds when loading dtrace..
Jan 10 2023, 12:52 AM

Jan 9 2023

gallatin added inline comments to D37986: dtrace: conditionally load the systrace_linux klds when loading dtrace..
Jan 9 2023, 11:40 PM
gallatin updated the diff for D37903: Build RACK and BBR TCP stacks as a part of LINT.

Rebased to today's current.

Jan 9 2023, 7:42 PM
gallatin requested review of D37986: dtrace: conditionally load the systrace_linux klds when loading dtrace..
Jan 9 2023, 3:04 AM

Jan 5 2023

gallatin accepted D37954: rack and bbr not loading if TCP_RATELIMIT is not configured..
Jan 5 2023, 3:13 PM

Jan 3 2023

gallatin added a comment to D37903: Build RACK and BBR TCP stacks as a part of LINT.
In D37903#861938, @gbe wrote:

@gallatin transport Has had anyone the time to look at https://reviews.freebsd.org/D36538? At least TCPHPTS should be included somewhere and the documentation should also be updated!

Jan 3 2023, 7:13 PM
gallatin requested changes to D36538: tcp: Enable the extra TCP stacks per default.

You currently also need RATELIMIT if you want to actually use the stacks. I've submitted a patch privately to @rrs which removes this requirement.

Jan 3 2023, 7:11 PM

Dec 30 2022

gallatin added a comment to D37903: Build RACK and BBR TCP stacks as a part of LINT.

I actually prefer D37715. Isn't that what we have discussed on the TCP call on December 15th?

Dec 30 2022, 4:14 PM
gallatin updated the diff for D37903: Build RACK and BBR TCP stacks as a part of LINT.

Add WITH_EXTRA_TCP_STACKS to common NOTES file, as suggested by @imp

Dec 30 2022, 4:13 PM

Dec 29 2022

gallatin abandoned D37715: tcp: build rack and bbr as part of normal kernel builds.

Abandoning this in favor of D37903

Dec 29 2022, 9:50 PM
gallatin requested review of D37903: Build RACK and BBR TCP stacks as a part of LINT.
Dec 29 2022, 9:48 PM

Dec 22 2022

gallatin accepted D37775: ktls: Post receive errors on partially closed sockets..
Dec 22 2022, 8:52 PM

Dec 15 2022

gallatin added a comment to D37715: tcp: build rack and bbr as part of normal kernel builds.
In D37715#857654, @jtl wrote:

This causes them to be left out of CI build testing

The stacks should be build as part of a LINT kernel or tinderbox build. Is the CI test not doing that?

I think they are not being built, as they didn't compile with the various LINT_NO{IP,INET,INET6} and I didn't see any warnings about it. I'm not sure how they could be, as they are built when MK_EXTRA_TCP_STACKS=yes exists in /etc/src.conf. Is there a way to specify this inside a kernel config file, rather than in src.conf?

Dec 15 2022, 10:29 PM
gallatin added a comment to D37715: tcp: build rack and bbr as part of normal kernel builds.
In D37715#857654, @jtl wrote:
Dec 15 2022, 10:11 PM
gallatin requested review of D37715: tcp: build rack and bbr as part of normal kernel builds.
Dec 15 2022, 5:25 PM
gallatin requested review of D37707: centralize VM_BATCHQUEUE_SIZE definition & increase size on arm64.
Dec 15 2022, 2:07 AM

Dec 14 2022

gallatin committed rGac4e3a27ab49: Unbreak the build when MAC is not defined (authored by gallatin).
Unbreak the build when MAC is not defined
Dec 14 2022, 10:40 PM
gallatin committed rG1cac76c93fb7: vm: reduce lock contention when processing vm batchqueues (authored by gallatin).
vm: reduce lock contention when processing vm batchqueues
Dec 14 2022, 7:44 PM
gallatin committed rGc4a4b2633d97: allocate inpcb aligned to cachelines (authored by gallatin).
allocate inpcb aligned to cachelines
Dec 14 2022, 7:44 PM
gallatin closed D37687: allocate inpcb aligned to cachelines.
Dec 14 2022, 7:44 PM
gallatin closed D37305: vm: reduce lock contention when processing vm batchqueues.
Dec 14 2022, 7:44 PM
gallatin accepted D37692: ktls: Close a race with setting so_error when dropping a connection..
Dec 14 2022, 12:51 AM

Dec 13 2022

gallatin requested review of D37687: allocate inpcb aligned to cachelines.
Dec 13 2022, 8:30 PM

Dec 6 2022

gallatin closed D37609: ixl: silence runtime warning when PCI_IOV is not enabled.
Dec 6 2022, 4:39 PM
gallatin committed rG17859d538c23: ixl: silence runtime warning when PCI_IOV is not enabled (authored by gallatin).
ixl: silence runtime warning when PCI_IOV is not enabled
Dec 6 2022, 4:39 PM

Dec 5 2022

gallatin requested review of D37609: ixl: silence runtime warning when PCI_IOV is not enabled.
Dec 5 2022, 10:16 PM

Nov 30 2022

gallatin added a comment to D37305: vm: reduce lock contention when processing vm batchqueues.

The patch seems ok to me, but:

  • In vm_pageout_reinsert_active(), we should change the call to read if (vm_batchqueue_insert(bq, m) != 0), even though it's just a stylistic change.
Nov 30 2022, 10:50 PM

Nov 29 2022

gallatin added inline comments to D37517: newbus: Create a knob to disable devices that fail to attach..
Nov 29 2022, 12:50 AM

Nov 28 2022

gallatin updated subscribers of D37517: newbus: Create a knob to disable devices that fail to attach..
Nov 28 2022, 9:53 PM
gallatin accepted D37517: newbus: Create a knob to disable devices that fail to attach..

Thanks for this. I tested this and confirmed that it works as described.

Nov 28 2022, 9:52 PM

Nov 27 2022

gallatin added a comment to D37305: vm: reduce lock contention when processing vm batchqueues.

Update diff to restore missing hunk that causes vm_batchqueue_insert() to return the number of free slots. As pointed out by Markj

Nov 27 2022, 2:52 AM

Nov 21 2022

gallatin updated the diff for D37305: vm: reduce lock contention when processing vm batchqueues.

Update diff to restore missing hunk that causes vm_batchqueue_insert() to return the number of free slots. As pointed out by Markj

Nov 21 2022, 10:28 PM

Nov 11 2022

gallatin accepted D37353: ktls: Inline ktls_cleanup() into ktls_destroy()..
Nov 11 2022, 9:24 PM
gallatin accepted D37352: ktls: Don't leak ktls session objects for certain errors..
Nov 11 2022, 9:23 PM

Nov 7 2022

gallatin requested review of D37305: vm: reduce lock contention when processing vm batchqueues.
Nov 7 2022, 8:09 PM

Nov 1 2022

gallatin committed rG8b19898a78d5: Fix a panic on boot introduced by 555a861d6826 (authored by gallatin).
Fix a panic on boot introduced by 555a861d6826
Nov 1 2022, 5:47 PM

Oct 10 2022

gallatin added a comment to D36924: nvme: provide mutual exclusion for interrupt handler.

Why not just use a mutex, using mtx_trylock() for the acquire? Mutexes already check the panic special case..

Oct 10 2022, 6:17 PM

Sep 23 2022

gallatin accepted D36669: cxgbe: Use secq(9) to manage the timestamp generations..

Neat. I was not aware of seqc(9) until now!

Sep 23 2022, 10:48 AM

Sep 6 2022

gallatin added a reviewer for D36470: ktls: Document requirement of use_flowid for lagg and NIC kTLS: bcr.
Sep 6 2022, 9:15 PM
gallatin added inline comments to D36470: ktls: Document requirement of use_flowid for lagg and NIC kTLS.
Sep 6 2022, 9:10 PM
gallatin updated the diff for D36470: ktls: Document requirement of use_flowid for lagg and NIC kTLS.

Move NET_EPOCH_EXIT() to after the prints.

Sep 6 2022, 9:09 PM
gallatin requested review of D36470: ktls: Document requirement of use_flowid for lagg and NIC kTLS.
Sep 6 2022, 6:01 PM

Aug 24 2022

gallatin added inline comments to D36315: Enable M_TSTMP in Chelsio cxgbe driver by creating a mechanism that can sync the time..
Aug 24 2022, 12:14 PM

Aug 23 2022

gallatin added inline comments to D36315: Enable M_TSTMP in Chelsio cxgbe driver by creating a mechanism that can sync the time..
Aug 23 2022, 5:40 PM
gallatin added inline comments to D36315: Enable M_TSTMP in Chelsio cxgbe driver by creating a mechanism that can sync the time..
Aug 23 2022, 5:40 PM

Aug 22 2022

gallatin accepted D36043: lro has a loss of timestamp precision..
Aug 22 2022, 4:54 PM

Aug 13 2022

gallatin closed D36136: LRO: fix BPF filters for lagg ports in the hpts path.
Aug 13 2022, 9:35 PM
gallatin committed rG2c6ff1d6320d: LRO: fix BPF filters for lagg in the hpts path (authored by gallatin).
LRO: fix BPF filters for lagg in the hpts path
Aug 13 2022, 9:34 PM

Aug 11 2022

gallatin requested review of D36136: LRO: fix BPF filters for lagg ports in the hpts path.
Aug 11 2022, 12:11 AM

Aug 4 2022

gallatin accepted D36043: lro has a loss of timestamp precision..
Aug 4 2022, 11:14 PM
gallatin accepted D36043: lro has a loss of timestamp precision..
Aug 4 2022, 6:30 PM

Jul 28 2022

gallatin committed rG713ceb99b685: lagg: fix lagg ifioctl after SIOCSIFCAPNV (authored by gallatin).
lagg: fix lagg ifioctl after SIOCSIFCAPNV
Jul 28 2022, 2:39 PM
gallatin closed D35865: lagg: fix ifioctl after SIOCSIFCAPNV .
Jul 28 2022, 2:39 PM
gallatin updated the diff for D35865: lagg: fix ifioctl after SIOCSIFCAPNV .
  • Null'ed drv_ioctl_data.nvcap as suggested by @kib
Jul 28 2022, 12:46 AM

Jul 21 2022

gallatin updated the diff for D35865: lagg: fix ifioctl after SIOCSIFCAPNV .

Since all bits may be set, use the fact that the list is empty, rather than all bits remaining set, to zero caps and enables, as suggested by Hans

Jul 21 2022, 3:53 PM