Page MenuHomeFreeBSD
Feed Advanced Search

Oct 11 2016

gallatin accepted D8221: Avoid accessing the socket memory in tcp_input() for ESTABLISHED sessions.
Oct 11 2016, 11:33 PM
gallatin accepted D3687: Implement kernel support for hardware rate limited sockets.
Oct 11 2016, 1:17 PM

Oct 3 2016

gallatin committed rS306637: Conditionally move initial vfs bio alloc above 4G.
Conditionally move initial vfs bio alloc above 4G
Oct 3 2016, 1:24 PM

Sep 21 2016

gallatin accepted D7904: Make ICMPv6 hard error handling for TCP consistent with the ICMPv4 handling.
Sep 21 2016, 1:14 PM

Aug 18 2016

gallatin added inline comments to D3687: Implement kernel support for hardware rate limited sockets.
Aug 18 2016, 4:53 PM
gallatin accepted D7551: New driver for Broadcom NetXtreme-C and NetXtreme-E devices.

Mostly looks great. A few general comments:

Aug 18 2016, 4:41 PM
gallatin accepted D7564: LRO nsegs.

I can't prove my paranoia, so I think we should get this in, as it will be an improvement on balance.

Aug 18 2016, 4:12 PM

Aug 16 2016

gallatin accepted D6790: Add functionality so you can optionally change a progressed socket to a new tcp stack.
Aug 16 2016, 2:56 PM

Aug 15 2016

gallatin accepted D7499: tcp/lro: Make # of LRO entries tunable.

I tend to think type / range checking something like this is overkill.. I'm OK with it as-is..

Aug 15 2016, 6:08 PM

Aug 11 2016

gallatin committed rS303966: MFC r303457:.
MFC r303457:
Aug 11 2016, 7:05 PM
gallatin accepted D7393: Update iflib to support more NIC designs.
Aug 11 2016, 12:43 PM
gallatin added a comment to D7393: Update iflib to support more NIC designs.
In D7393#155251, @kmacy wrote:

Are there further reservations to this change?

This is the API he has been working against for the bnxt driver so he needs this to go in before bnxt does.

Aug 11 2016, 12:42 PM

Aug 4 2016

gallatin accepted D7415: tcp/lro: If timestamps mismatch or it's a FIN, force flush..
Aug 4 2016, 12:20 PM

Aug 2 2016

gallatin added inline comments to D7393: Update iflib to support more NIC designs.
Aug 2 2016, 1:08 AM
gallatin added a reviewer for D7393: Update iflib to support more NIC designs: kmacy.
Aug 2 2016, 12:18 AM

Aug 1 2016

gallatin committed rS303626: Rework IPV6 TCP path MTU discovery to match IPv4.
Rework IPV6 TCP path MTU discovery to match IPv4
Aug 1 2016, 5:02 PM
gallatin closed D7272: Rework IPv6 TCP path MTU discovery to match IPv4 by committing rS303626: Rework IPV6 TCP path MTU discovery to match IPv4.
Aug 1 2016, 5:02 PM

Jul 28 2016

gallatin committed rS303457: Call tcp_notify() directly to shoot down routes, rather than.
Call tcp_notify() directly to shoot down routes, rather than
Jul 28 2016, 7:32 PM
gallatin closed D7251: Avoid calling in_pcbnotifyall() to flush cached routes by committing rS303457: Call tcp_notify() directly to shoot down routes, rather than.
Jul 28 2016, 7:32 PM
gallatin updated the diff for D7272: Rework IPv6 TCP path MTU discovery to match IPv4.

Fix LINT-NOINET and a few line width problems

Jul 28 2016, 3:31 PM

Jul 27 2016

gallatin updated the diff for D7272: Rework IPv6 TCP path MTU discovery to match IPv4.

Update with some cleanups in reaction to comments from lstewart@

Jul 27 2016, 6:46 PM

Jul 26 2016

gallatin accepted D7136: TCP Timer cleanup.
Jul 26 2016, 3:32 PM

Jul 23 2016

gallatin added a comment to D7251: Avoid calling in_pcbnotifyall() to flush cached routes.
In D7251#151654, @mike-karels.net wrote:

I'm not sure my acceptance "counts" using mike-karels.net; if you add karels@, I can re-approve.

Jul 23 2016, 12:59 PM

Jul 22 2016

gallatin updated the diff for D7272: Rework IPv6 TCP path MTU discovery to match IPv4.
  • Address ae's feedback
Jul 22 2016, 6:26 PM
gallatin added a comment to D7251: Avoid calling in_pcbnotifyall() to flush cached routes.

OK, the diff is back to the way it should be. Now to try to make arc apply my change to the correct, dependant review.

Jul 22 2016, 6:21 PM
gallatin updated the diff for D7251: Avoid calling in_pcbnotifyall() to flush cached routes.
  • Revert other files touched in mis-placed arc diff
Jul 22 2016, 6:20 PM
gallatin updated the diff for D7251: Avoid calling in_pcbnotifyall() to flush cached routes.
  • Revert mistplaced arc diff
Jul 22 2016, 6:16 PM
gallatin added a comment to D7251: Avoid calling in_pcbnotifyall() to flush cached routes.

OK, so my attempt at properly using arc has failed miserably.

Jul 22 2016, 6:06 PM
gallatin updated the diff for D7251: Avoid calling in_pcbnotifyall() to flush cached routes.

address feedback from ae

Jul 22 2016, 6:04 PM
gallatin added a comment to D7272: Rework IPv6 TCP path MTU discovery to match IPv4.

Thanks for the valuable input. I will uprev with my fixes later today.

Jul 22 2016, 2:50 PM

Jul 21 2016

gallatin retitled D7272: Rework IPv6 TCP path MTU discovery to match IPv4 from to Rework IPv6 TCP path MTU discovery to match IPv4.
Jul 21 2016, 3:08 PM

Jul 20 2016

gallatin accepted D7239: Fix per-connection L2 caching in fast path.

The code looks good to me; thanks for noticing that this was not in place.

Jul 20 2016, 4:20 PM

Jul 19 2016

gallatin retitled D7251: Avoid calling in_pcbnotifyall() to flush cached routes from to Avoid calling in_pcbnotifyall() to flush cached routes.
Jul 19 2016, 3:58 PM

Jul 13 2016

gallatin accepted D7136: TCP Timer cleanup.

In addition to helping the callout correctness, this seems to improve lock contention on tcbinfo, since this lock is now taken only when needed, not when entering every routine (thereby blocking writers, or blocking when a writer has the lock).

Jul 13 2016, 8:41 PM
gallatin added a reviewer for D7136: TCP Timer cleanup: gallatin.
Jul 13 2016, 8:36 PM

Jun 29 2016

gallatin added a reviewer for D7017: Add basic wrapper for CK's EBR: gallatin.
Jun 29 2016, 3:30 PM

Jun 7 2016

gallatin accepted D6689: tcp/lro: Implement hash table for LRO entries..

Looks good in terms of not killing perf. for the sorted case, and I'm fine with it as-is. However, maybe an else would be better than a goto?

Jun 7 2016, 1:16 PM

May 31 2016

gallatin added a comment to D6619: Use insertion sort instead of bubble sort in TCP LRO.
In D6619#140530, @gnn wrote:

Why are we implementing new sorts in the TCP stack? The stack should depend on generic sorting functions placed in a library.

May 31 2016, 8:03 PM

May 30 2016

gallatin accepted D6619: Use insertion sort instead of bubble sort in TCP LRO.

For Netflix workloads (~80Gb/s, ~80K connections), this seems to reduce the percentage of time spent in tcp_lro_sort() from ~1.1% down to 0.85%.

May 30 2016, 1:41 PM

May 26 2016

gallatin added a comment to D6555: New driver for Broadcom NetXtreme-C/E 10/25/40/50 Gbps Ethernet.

I'd really rather see new drivers for high performance hardware come in using the iflib interface. There will be a performance gain, and the code will be smaller and easier to maintain.

May 26 2016, 5:31 PM

May 25 2016

gallatin added a comment to D6472: Use optimised complexity safe sort routine instead of the kernel's qsort.

BTW, I tested a version of this patch in our Netflix code base. When serving roughly 80Gb/s with 80K TCP connections, the old method (qsort + tcp_lro_mbuf_compare_header) used 1.4% CPU, while the new (tcp_lro_sort) used 1.1% for LRO related sorting as measured by Intel Vtune. This test was done with a sysctl toggle to switch between qsort and the new sort.

May 25 2016, 4:05 PM
gallatin accepted D6472: Use optimised complexity safe sort routine instead of the kernel's qsort.

Great work -- faster AND safer

May 25 2016, 4:00 PM

May 17 2016

gallatin added a comment to D6406: mbuf: Add a flag for M_HASHTYPE_ to indicate the type has hash properties.

So the real goal here is to be able to express to the LRO code that you have a hash that is usable as a hash (eg, not just an ordinal queue index), and yet warn the RSS code that it is not a toeplitz rss hash result. Is that correct?

May 17 2016, 12:20 PM

May 15 2016

gallatin accepted D5211: import iflib.
May 15 2016, 1:07 AM

May 11 2016

gallatin accepted D6320: mxge: Setup mbuf flowid before calling tcp_lro_rx()..

Note that the hardware is only semi-RSS capable, which is why it is using an opaque flowid derived from the queue id.

May 11 2016, 2:26 PM

Apr 29 2016

gallatin accepted D6137: tcp/lro: Refactor the free/active list operation..

Thanks, I'm good w/this version

Apr 29 2016, 1:18 PM

Apr 28 2016

gallatin added a comment to D6137: tcp/lro: Refactor the free/active list operation..

The tcp_lro_entry_get() abstraction adds an extra compare to the critical path (the compare against NULL in the function itself, in addition to the same compare in the main routine). At least it does at the C level. Have you verified that the compiler is smart enough to continue to use a single compare?

Apr 28 2016, 3:19 PM

Apr 19 2016

gallatin added a comment to D5213: convert ixgbe to iflib.
In D5213#127689, @kmacy wrote:

Is this the final version, or is there further work to be done here?

Work continues in HEAD_MERGE/iflib branch at https://github.com/NextBSD/NextBSD.git

Ah, excellent. Is there any reason to keep this outdated review open? If you want to chuck it in the garbage pile, you can "Abandon" the revision.

@gallatin What do you think?

Apr 19 2016, 10:58 AM

Mar 28 2016

gallatin accepted D5765: tcp/lro: Change SLIST to LIST, so that removing an entry from the list is O(1).

Very nice, thanks.

Mar 28 2016, 11:29 AM

Mar 24 2016

gallatin added a comment to D5725: tcp/lro: Factor out tcp_lro_rx_done() to avoid code duplication.

I'd forgotten that was what hps had named his flusher. But, the cool thing is that the existing tcp_lro_flush_all() does exactly what you want. All you need to do is get hps' approval to remove the __predict_false() from the check at the top of tcp_lro_flush_all().

Mar 24 2016, 2:19 PM
gallatin added a comment to D5695: tcp/lro: Return TCP_LRO_NO_ENTRIES if we are short of LRO entries..

I have no objection.

Mar 24 2016, 12:10 PM
gallatin added a comment to D5725: tcp/lro: Factor out tcp_lro_rx_done() to avoid code duplication.

Internally at Netflix, we have a version of this patch with a slightly different name. This is because, in addition to avoiding code duplication, it also allows a bit more room to innovate with the LRO internals.

Mar 24 2016, 12:08 PM

Feb 22 2016

gallatin added a comment to D5211: import iflib.

Right. Adjust updates the number of threads once SMP comes on line. Are you saying that that's still a problem?

Feb 22 2016, 8:34 PM
gallatin added a comment to D5211: import iflib.
In D5211#114965, @kmacy wrote:
Feb 22 2016, 8:24 PM
gallatin added a comment to D5211: import iflib.
In D5211#114963, @kmacy wrote:

Hmm.. Even when loading the module at boot on -current, I'm still seeing a panic:

I can confirm that moving back to SI_SUB_SMP in the DECLARE_MODULE macro fixes it enough to at least work with an ixl module loaded post-boot.

diff --git a/sys/net/iflib.c b/sys/net/iflib.c
index ab5f74c..37d970e 100644
--- a/sys/net/iflib.c
+++ b/sys/net/iflib.c
@@ -421,7 +421,7 @@ static moduledata_t iflib_moduledata = {
        NULL
 };
 
-DECLARE_MODULE(iflib, iflib_moduledata, SI_SUB_INIT_IF, SI_ORDER_ANY);
+DECLARE_MODULE(iflib, iflib_moduledata, SI_SUB_SMP, SI_ORDER_ANY);
 MODULE_VERSION(iflib, 1);
 
 MODULE_DEPEND(iflib, pci, 1, 1, 1);

Uhm ... did you pull in the corresponding update to the task queue patch? That's probably the real problem.

Feb 22 2016, 8:20 PM
gallatin added a comment to D5211: import iflib.

Hmm.. Even when loading the module at boot on -current, I'm still seeing a panic:

Feb 22 2016, 8:03 PM
gallatin added a comment to D5211: import iflib.
In D5211#114958, @erj wrote:

Hmm.. Even when loading the module at boot on -current, I'm still seeing a panic:

D5205 is supposed to fix this crash.

Feb 22 2016, 7:46 PM
gallatin added a comment to D5211: import iflib.

Hmm.. Even when loading the module at boot on -current, I'm still seeing a panic:

Feb 22 2016, 7:22 PM
gallatin added inline comments to D5211: import iflib.
Feb 22 2016, 7:06 PM
gallatin added a comment to D5211: import iflib.

We still seem to be missing the device_register api required by iflib. Eg:

Feb 22 2016, 5:53 PM
gallatin accepted D5391: Improve detection of extended SFP diagnostics.
Feb 22 2016, 4:06 PM

Feb 20 2016

gallatin added a comment to D5211: import iflib.

To follow up on my last comment, fixing this (patch appended) seems to result in the kernel actually sending down packets with csum offload, which then causes the ixl NIC to stop passing traffic, and to die occasionally with: "ixl0: Malicious Driver Detection event 0x02 on TX queue 5 pf number 0x00"

Feb 20 2016, 1:43 PM
gallatin added inline comments to D5211: import iflib.
Feb 20 2016, 3:14 AM

Feb 18 2016

gallatin added inline comments to D5211: import iflib.
Feb 18 2016, 10:36 PM
gallatin added inline comments to D5211: import iflib.
Feb 18 2016, 3:43 PM
gallatin accepted D5203: ixl(4): Fix two important RSS bugs..
Feb 18 2016, 3:06 AM

Feb 16 2016

gallatin added inline comments to D5211: import iflib.
Feb 16 2016, 10:17 PM

Feb 15 2016

gallatin added a comment to D5211: import iflib.

When linking, the mp_ring here conflicts with the one in the cxgbe driver if both iflib and cxgbe are included in the kernel.

Feb 15 2016, 8:33 PM
gallatin added inline comments to D5211: import iflib.
Feb 15 2016, 7:59 PM

Feb 11 2016

gallatin added a comment to D5211: import iflib.

I don't see a change to sys/conf/files to add iflib.c

Feb 11 2016, 8:56 PM
gallatin added a comment to D5210: add get_cpus interface.

I noticed this when trying to backport to stable..

Feb 11 2016, 8:21 PM
gallatin added inline comments to D5211: import iflib.
Feb 11 2016, 7:42 PM
gallatin added a comment to D5211: import iflib.

Thanks for all the fixes, and sorry again to be a PITA..

Feb 11 2016, 7:22 PM
gallatin added inline comments to D5211: import iflib.
Feb 11 2016, 4:43 PM

Feb 10 2016

gallatin added inline comments to D5211: import iflib.
Feb 10 2016, 7:33 PM
gallatin added inline comments to D5239: Fix comparison function in LRO.
Feb 10 2016, 1:51 PM

Feb 9 2016

gallatin added a comment to D5211: import iflib.

I just did my first pass (i'll be back for more). But I have to say that this is pretty awesome.

Feb 9 2016, 5:16 PM

Feb 5 2016

gallatin accepted D5185: tcp/lro: Allow network drivers to set the limit for TCP ACK/data segment aggregation limit.

Thanks for addressing my concerns.. Does anybody else want to comment?

Feb 5 2016, 4:17 PM

Feb 4 2016

gallatin added a comment to D5185: tcp/lro: Allow network drivers to set the limit for TCP ACK/data segment aggregation limit.

It might be nice to make these general tunables that could be done centrally and apply to all drivers, but that's probably outside the scope of the review.

Feb 4 2016, 3:57 PM
gallatin added a comment to D4994: Make quicksort or mergesort configurable for the LRO code..

@gnn : Yes, Andrew is going to test it, probably next week.

Feb 4 2016, 3:35 PM

Jan 19 2016

gallatin accepted D4914: Optimise LRO for RSS.
Jan 19 2016, 2:16 PM

Jan 13 2016

gallatin added a comment to D4914: Optimise LRO for RSS.

General comments:

Jan 13 2016, 4:44 PM

Jan 7 2016

gallatin added a comment to D4817: mlx5en: Allow RX and TX pause frames to be set through ifconfig.

I may be misreading this, but it appears we are loosing the ability to set the initial pause state via a loader tunable. Would it be possible to preserve this feature by masking the IFM_ETHER_*PAUSE bits with the user's desired pause sate in the initial ifmedia_set() call?

Jan 7 2016, 3:51 PM

Dec 17 2015

gallatin added a comment to D4598: mlx5en: add cqe zipping support.

o The device.h change is just whitespace & should probably be removed
o Have you measured the cost in terms of CPU overhead of doing this unzipping on a transmit-mostly workload (eg, busy web server, or even just net/iperf sender)? I'm assuming that it is in the noise, but it would be nice to get confirmation.

Dec 17 2015, 7:15 PM

Oct 8 2015

gallatin added a comment to D3687: Implement kernel support for hardware rate limited sockets.

The related mlx4 review which introduces a use case for the rate limiting is https://reviews.freebsd.org/D3647

Oct 8 2015, 4:32 PM

Jun 23 2015

gallatin committed rS284742: Fix r284612: As pointed out by jhb, in stable branches, if_baudrate.
Fix r284612: As pointed out by jhb, in stable branches, if_baudrate
Jun 23 2015, 10:31 PM

Jun 22 2015

gallatin committed rS284706: MFC r284612: Fix a typo.
MFC r284612: Fix a typo
Jun 22 2015, 7:37 PM