Page MenuHomeFreeBSD

gallatin (Andrew Gallatin)
User

Projects

User Details

User Since
Jun 22 2015, 5:21 PM (359 w, 6 d)

Recent Activity

Thu, May 12

gallatin added a reviewer for D35170: Make MSG_TLSAPPDATA only apply to Alert records: hselasky.
Thu, May 12, 2:56 PM

Wed, Apr 27

gallatin accepted D35070: LACP w/ short timeout erroneously declares link-flapping.

Nice work!!!

Wed, Apr 27, 1:12 PM

Apr 14 2022

gallatin accepted D34916: tcp - hpts timing is off when we are above 1200 connections..
Apr 14 2022, 7:12 PM

Mar 18 2022

gallatin committed R10:b50abe6bd45d: namei: Treat non-tied KLDs as if they had INVARIANTS enabled (authored by gallatin).
namei: Treat non-tied KLDs as if they had INVARIANTS enabled
Mar 18 2022, 2:18 PM
gallatin closed D34588: namei: Treat non-tied KLDs as if they had INVARIANTS enabled.
Mar 18 2022, 2:17 PM

Mar 17 2022

gallatin updated the diff for D34588: namei: Treat non-tied KLDs as if they had INVARIANTS enabled.
  • Added a comment to why we enable debug stuff here as per mjg's request
Mar 17 2022, 5:17 PM
gallatin requested review of D34588: namei: Treat non-tied KLDs as if they had INVARIANTS enabled.
Mar 17 2022, 2:45 PM

Mar 3 2022

gallatin accepted D32356: Add support for TLS RX via IFNET.

I think pushing it and fixing the lagg issue after its in the tree is probably the best path forward.

Mar 3 2022, 8:47 PM · network

Feb 14 2022

gallatin added a comment to D34254: .gitignore: remove .orig/.rej.

The workflow I'm referring to is easily cleaning up after applying patches with git clean, using standard arguments.

Feb 14 2022, 2:38 PM

Feb 11 2022

gallatin accepted D34254: .gitignore: remove .orig/.rej.

Thank you!

Feb 11 2022, 9:24 PM

Feb 10 2022

gallatin committed R10:bf2a85f4e304: Fix a memory leak when ip_output_send() returns EAGAIN due to send tag issues (authored by gallatin).
Fix a memory leak when ip_output_send() returns EAGAIN due to send tag issues
Feb 10 2022, 8:40 PM

Feb 9 2022

gallatin accepted D34217: TCP syncache: enhance some KASSERT output.
Feb 9 2022, 1:38 AM

Feb 8 2022

gallatin added inline comments to D34205: cleanup of rack variables.
Feb 8 2022, 3:57 PM
gallatin accepted D34195: ktls: Disallow transmitting empty frames outside of TLS 1.0/CBC mode.
Feb 8 2022, 2:11 PM
gallatin added inline comments to D34195: ktls: Disallow transmitting empty frames outside of TLS 1.0/CBC mode.
Feb 8 2022, 1:07 AM

Feb 1 2022

gallatin accepted D34086: ktls: Write-lock the INP when changing a transmit TLS session..
Feb 1 2022, 3:58 PM

Jan 28 2022

gallatin accepted D34086: ktls: Write-lock the INP when changing a transmit TLS session..
Jan 28 2022, 9:49 PM
gallatin accepted D34085: tcp_ratelimit: Handle some edge cases with TLS + RL send tags..
Jan 28 2022, 9:48 PM

Jan 27 2022

gallatin committed R10:8a7404b2aeeb: tcp: fix leaks in tcp_chg_pacing_rate error paths (authored by gallatin).
tcp: fix leaks in tcp_chg_pacing_rate error paths
Jan 27 2022, 3:43 PM
gallatin closed D34058: tcp: fix leaks in tcp_chg_pacing_rate error paths.
Jan 27 2022, 3:43 PM
gallatin closed D34054: Fix a memory leak when ip_output_send() returns EAGAIN due to send tag issues.
Jan 27 2022, 3:35 PM
gallatin committed R10:9ba117960e17: Fix a memory leak when ip_output_send() returns EAGAIN due to send tag issues (authored by gallatin).
Fix a memory leak when ip_output_send() returns EAGAIN due to send tag issues
Jan 27 2022, 3:35 PM
gallatin requested review of D34058: tcp: fix leaks in tcp_chg_pacing_rate error paths.
Jan 27 2022, 1:01 AM

Jan 26 2022

gallatin requested review of D34054: Fix a memory leak when ip_output_send() returns EAGAIN due to send tag issues.
Jan 26 2022, 9:19 PM

Dec 27 2021

gallatin accepted D33156: iflib: fix vlan offload processing across multiple drivers..
Dec 27 2021, 2:30 PM

Dec 21 2021

gallatin accepted D33589: Remove dead code..
Dec 21 2021, 5:11 PM

Dec 17 2021

gallatin added a comment to D33055: Make hwpmc work for userspace binaries again.

Do you intend to commit this soon? If not I'm happy to commit it as Reported+Tested by you instead.

Sorry for the delay, I just pushed it.

Thanks. Will you be MFC'ing it (there's no MFC after: tag in your commit message)?

Dec 17 2021, 8:14 PM
gallatin updated subscribers of D31485: iflib: Allow drivers to determine which queue to TX on.
Dec 17 2021, 6:28 PM

Dec 15 2021

gallatin accepted D33395: Fix epoch handling in if_oce.
Dec 15 2021, 9:45 PM
gallatin added a comment to D33395: Fix epoch handling in if_oce.

I like the second patch you suggested. How to proceed? Would you like to create a new review for your patch and I approve it or would you like me to update this review with your patch?

Dec 15 2021, 9:02 PM
gallatin added a comment to D33395: Fix epoch handling in if_oce.

I like your approach much better than mine. Does your patch already handle the calling sequence:

oce_if_deactivate()
  oce_stop_rx()
    oce_rx_cq_clean()
      oce_rx_flush_lro()
        tcp_lro_flush_all()

Or don't we need to cover that?

Dec 15 2021, 6:50 PM
gallatin added a comment to D33395: Fix epoch handling in if_oce.

Why not just fix the driver for epoch for real so that the normal, non LRO path holds epoch and we don't need to repeatedly enter it in ether_input()? I've tried to upload an alternate patch..

Dec 15 2021, 3:06 PM
gallatin added a comment to D33395: Fix epoch handling in if_oce.

Why not just fix the driver for epoch for real so that the normal, non LRO path holds epoch and we don't need to repeatedly enter it in ether_input()? I've tried to upload an alternate patch..

Dec 15 2021, 3:04 PM
gallatin added inline comments to D31485: iflib: Allow drivers to determine which queue to TX on.
Dec 15 2021, 2:26 PM
gallatin added a comment to D33055: Make hwpmc work for userspace binaries again.

Do you intend to commit this soon? If not I'm happy to commit it as Reported+Tested by you instead.

Dec 15 2021, 1:44 PM
gallatin committed R10:517a7adb1160: Make hwpmc work for userspace binaries again (authored by gallatin).
Make hwpmc work for userspace binaries again
Dec 15 2021, 1:44 PM
gallatin closed D33055: Make hwpmc work for userspace binaries again.
Dec 15 2021, 1:44 PM

Dec 3 2021

gallatin added a comment to D33055: Make hwpmc work for userspace binaries again.

Any objection to me committing this change ?

Mind if I reword the description?

Dec 3 2021, 4:27 PM
gallatin added a comment to D33055: Make hwpmc work for userspace binaries again.

Any objection to me committing this change ?

Dec 3 2021, 3:02 PM

Dec 2 2021

gallatin added a comment to D33055: Make hwpmc work for userspace binaries again.

OK, I'm happy to keep this as a separate change. I mostly just want to get this committed so I can bring it down into our (netflix) tree and not carry a diff going forward..

Dec 2 2021, 5:51 PM
gallatin updated the diff for D33055: Make hwpmc work for userspace binaries again.
  • keep image->pi_entry = eh.e_entry as requested by jrt27
Dec 2 2021, 5:49 PM
gallatin updated the summary of D33055: Make hwpmc work for userspace binaries again.
Dec 2 2021, 4:57 PM
gallatin updated the diff for D33055: Make hwpmc work for userspace binaries again.

I've updated the patch to

  • use first_exec_segment as suggested by jrtc27
  • set image->pi_entry = eh.e_entry as suggested by brett_gutste.in
Dec 2 2021, 4:55 PM

Nov 30 2021

gallatin accepted D33155: em: skip rxcsum offload processing when disabled.
Nov 30 2021, 10:22 PM
gallatin accepted D33189: vmxnet3: skip zero-length descriptor in the middle of a packet.
Nov 30 2021, 5:00 PM
gallatin accepted D33189: vmxnet3: skip zero-length descriptor in the middle of a packet.
Nov 30 2021, 2:10 PM
gallatin added a comment to D33155: em: skip rxcsum offload processing when disabled.

I don't like that the drivers are dealing in ifps and calling things like if_getcapenable(). Establishing an interface that allowed drivers to have no knowledge of these details was one of the motivations for iflib.

Nov 30 2021, 12:02 AM

Nov 23 2021

gallatin accepted D33096: netinet: Implement in_cksum_skip() using m_apply().

Very nice.

Nov 23 2021, 4:56 PM

Nov 18 2021

gallatin requested review of D33055: Make hwpmc work for userspace binaries again.
Nov 18 2021, 7:06 PM

Nov 16 2021

gallatin accepted D33006: ktls: Split encrypt vs decrypt OCF counters..
Nov 16 2021, 1:30 PM

Nov 11 2021

gallatin added a comment to D32940: mbuf: Only allow extpg mbufs if the system has a direct map.

We already have code in ip_output() to convert to normal mbuf chains in the case that checksums are off on an egress interface. Is there something special about bridges that they fall through the cracks here?

Sorry, I should have provided more background. My plan is to remove that code. See revisions D32941 and D32942 where I did this for sctp_delayed_cksum(). My point about if_bridge is just that it's not that unusual to have to fall back to software checksuming.

The problem is that there's still a number of places, e.g., in pf(4), which calculate checksums but are missing the corresponding mb_unmapped_to_ext() calls. Some of them are hard to fix since we have to modify several layers of code which currently don't expect errors (mb_unmapped_to_ext() can fail to allocate memory) and don't expect the mbuf chain to change (as happens if mb_unmapped_to_ext() is required). Rather than doing that, my idea was to instead modify the software checksum code to handle unmapped mbufs, using m_apply(). But this requires the direct map, hence this change.

Nov 11 2021, 10:32 PM
gallatin added a comment to D32940: mbuf: Only allow extpg mbufs if the system has a direct map.

I honestly don't care about anything other than amd64 and arm64 and wish we could remove all other architectures, so I don't want to stand in the way too much here. If you think this is the best direction to go in, then that's fine.

Nov 11 2021, 5:21 PM
gallatin added a comment to D32940: mbuf: Only allow extpg mbufs if the system has a direct map.

We already have code in ip_output() to convert to normal mbuf chains in the case that checksums are off on an egress interface. Is there something special about bridges that they fall through the cracks here?

Nov 11 2021, 5:19 PM
gallatin added a comment to D32940: mbuf: Only allow extpg mbufs if the system has a direct map.

To be honest, when I did early testing of extpgs, I found by far, hands down, the most improvement for sendfile use of extpgs on 32 bit platforms (x86), and the cases we're worried about (sw checksum) are corner cases that most people should never run into. So I'd prefer if it just defaulted to off on platforms without a direct map, but the user was allowed to force it.

Nov 11 2021, 3:09 PM

Oct 22 2021

gallatin accepted D32600: tcp: DSCP Codepoint not being propagated in the rack fast path..
Oct 22 2021, 1:44 PM

Oct 19 2021

gallatin accepted D32566: ktls: Always create a software backend for receive sessions..
Oct 19 2021, 10:19 PM
gallatin accepted D32564: ktls: Add a routine to query information in a receive socket buffer..
Oct 19 2021, 10:15 PM
gallatin accepted D32565: ktls: Change struct ktls_session.cipher to an OCF-specific type..
Oct 19 2021, 9:45 PM

Oct 14 2021

gallatin accepted D32487: ktls: Defer creation of threads and zones until first use..

I'm not a fan of this added complexity, but it looks like it was done in a very careful way. I really appreciate it being done when creating the session, rather than upon enqueue.

Oct 14 2021, 9:35 PM

Oct 12 2021

gallatin accepted D32381: ktls: Ensure FIFO encryption order for TLS 1.0..
Oct 12 2021, 9:09 PM

Oct 11 2021

gallatin added inline comments to D32381: ktls: Ensure FIFO encryption order for TLS 1.0..
Oct 11 2021, 1:07 PM

Oct 6 2021

gallatin accepted D32333: e1000: print EEPROM/NVM/OROM versions.
Oct 6 2021, 10:58 PM
gallatin accepted D32333: e1000: print EEPROM/NVM/OROM versions.
Oct 6 2021, 12:53 PM

Sep 28 2021

gallatin accepted D32210: nvme: start qpair in state RECOVERY_WAITING.
Sep 28 2021, 9:26 PM

Sep 14 2021

gallatin requested review of D31959: tcp: avoid useless calculations in tcp_account_for_send() when len is 0.
Sep 14 2021, 2:54 PM

Sep 10 2021

gallatin accepted D31901: aio: Interlock with listen(2).
Sep 10 2021, 8:47 PM
gallatin accepted D31900: socket: Add macros to lock socket buffers using socket references.
Sep 10 2021, 6:50 PM

Sep 5 2021

gallatin accepted D31658: socket: Move sockbuf locks into the owning socket.

I agree that removing the indirection with a new SOCK_{SEND|RECVBUF}_LOCK() is a good idea.

Sep 5 2021, 12:20 AM

Sep 4 2021

gallatin accepted D31659: socket: Properly interlock when transitioning to a listening socket.
Sep 4 2021, 11:09 PM
gallatin accepted D31657: socket: Rename sb(un)lock() and interlock with listen(2).
Sep 4 2021, 11:04 PM

Aug 25 2021

gallatin accepted D31679: Minimalistic patch to fulfil the TCP LRO contract.
Aug 25 2021, 11:28 PM
gallatin added a comment to D31679: Minimalistic patch to fulfil the TCP LRO contract.

I would do it in hn_nvs_handle_rxbuf(). Eg, take the epoch outside the for() loop, so it is held for all rx pkt reception.

Aug 25 2021, 6:35 PM
gallatin accepted D31648: Enforce the network epoch contract at entry points in TCP LRO code.
Aug 25 2021, 2:50 PM

Aug 24 2021

gallatin added a comment to D31658: socket: Move sockbuf locks into the owning socket.

Please take into account what gallatin@ says regarding performance impacts.

Aug 24 2021, 5:05 PM
gallatin added inline comments to D31658: socket: Move sockbuf locks into the owning socket.
Aug 24 2021, 5:04 PM
gallatin accepted D31656: socket: Reorder socket and sockbuf fields to eliminate some padding.
Aug 24 2021, 3:12 PM
gallatin added a comment to D31648: Enforce the network epoch contract at entry points in TCP LRO code.

Why is this under #ifdef ? Anything inputting packets via if_input() needs the network epoch.

I put it under #ifdef, because the intention of this patch is only to move an NET_EPOCH_ASSERT() from an internal function to the beginning on functions which enter the LRO code and end up in calling the internal function.

If we agree on this plan, we can remove the #ifdef where the caller always should be in the network epoch.

Aug 24 2021, 3:11 PM
gallatin added a comment to D31648: Enforce the network epoch contract at entry points in TCP LRO code.

Please no.

99% of drivers already have the network epoch via their ithread. For the few that don't, like the hyperv driver in the associated bug, the driver needs to take the network epoch. Let's please not penalize the 99% of drivers that already have the epoch for a few oddball drivers that don't use ithreads.

Now I'm confused. My intention was do enforce what you suggest: the drivers need to enter and leave the network epoch.

Are you saying that 99% of the driver which have the network epoch via their ithread result having it such that a NET_EPOCH_ASSERT() would fail? Is there any other way of testing?

Aug 24 2021, 3:10 PM
gallatin requested changes to D31648: Enforce the network epoch contract at entry points in TCP LRO code.
Aug 24 2021, 2:55 AM

Aug 17 2021

gallatin accepted D31550: iflib: emulate counters in netmap mode.
Aug 17 2021, 2:51 PM

Aug 16 2021

gallatin accepted D31572: Add a switch structure for send tags..

I like this.

Aug 16 2021, 8:52 PM

Aug 14 2021

gallatin accepted D31536: ktls: Fix accounting for TLS 1.0 empty fragments..
Aug 14 2021, 2:47 PM

Aug 11 2021

gallatin committed R10:95c51fafa40d: ktls: Init reset tag task for cloned sessions (authored by gallatin).
ktls: Init reset tag task for cloned sessions
Aug 11 2021, 6:08 PM

Aug 5 2021

gallatin committed R10:739de953ecc1: ktls: Move KERN_TLS ifdef to tcp_var.h (authored by gallatin).
ktls: Move KERN_TLS ifdef to tcp_var.h
Aug 5 2021, 11:26 PM
gallatin committed R10:09066b98663d: ktls: Use the new PNOLOCK flag (authored by gallatin).
ktls: Use the new PNOLOCK flag
Aug 5 2021, 10:52 PM
gallatin committed R10:1b97a054f3ac: tsleep: Add a PNOLOCK flag (authored by gallatin).
tsleep: Add a PNOLOCK flag
Aug 5 2021, 10:52 PM
gallatin committed R10:2694c869ff9f: ktls: fix a panic with INVARIANTS (authored by gallatin).
ktls: fix a panic with INVARIANTS
Aug 5 2021, 5:11 PM
gallatin committed R10:98215005b747: ktls: start a thread to keep the 16k ktls buffer zone populated (authored by gallatin).
ktls: start a thread to keep the 16k ktls buffer zone populated
Aug 5 2021, 2:23 PM
gallatin closed D31260: ktls: start a thread to keep the 16k ktls buffer zone populated.
Aug 5 2021, 2:23 PM
gallatin updated the diff for D31260: ktls: start a thread to keep the 16k ktls buffer zone populated.

Address new feedback from jhb:

Aug 5 2021, 2:13 PM

Aug 3 2021

gallatin updated the diff for D31260: ktls: start a thread to keep the 16k ktls buffer zone populated.
  • Incorporated jhb's feedback
  • fixed a typo in a comment
  • changed alloc thread's name so that after truncation, its name appears different from the worker threads in 'ps axH'
Aug 3 2021, 10:02 PM
gallatin accepted D31377: Update the TCP LRO code to handle both encrypted and un-encrypted traffic..
Aug 3 2021, 3:26 PM
gallatin added a comment to D31377: Update the TCP LRO code to handle both encrypted and un-encrypted traffic..

Where is the new flag LRO_FLAG_DECRYPTED used? It seems to be write-only in this patch.

Aug 3 2021, 2:01 PM

Jul 30 2021

gallatin updated the diff for D31260: ktls: start a thread to keep the 16k ktls buffer zone populated.

Addressed Mark's feedback.

Jul 30 2021, 2:20 PM

Jul 21 2021

gallatin added a comment to D31260: ktls: start a thread to keep the 16k ktls buffer zone populated.
In D31260#703987, @mjg wrote:

Would uma_zone_reserve take care of this? The patch as proposed should not be necessary.

Jul 21 2021, 5:38 PM
gallatin updated the summary of D31260: ktls: start a thread to keep the 16k ktls buffer zone populated.
Jul 21 2021, 4:17 PM
gallatin updated the summary of D31260: ktls: start a thread to keep the 16k ktls buffer zone populated.
Jul 21 2021, 2:02 PM
gallatin updated the summary of D31260: ktls: start a thread to keep the 16k ktls buffer zone populated.
Jul 21 2021, 1:56 PM
gallatin requested review of D31260: ktls: start a thread to keep the 16k ktls buffer zone populated.
Jul 21 2021, 1:54 PM

Jul 15 2021

gallatin added a comment to D31189: tcp: LRO epoch issue as well a potential pullup issue..

This is a driver bug. The hyperv driver appears to be using a taskqueue to inject packets into the network stack, rather than a normal interrupt handler. As such, I feel that it is the hyperv driver's responsibility to take the network epoch, and not force 99% of drivers which do the right thing to take the epoch twice.

Jul 15 2021, 3:30 PM