Page MenuHomeFreeBSD

jtl (Jonathan T. Looney)
UserAdministrator

Projects

User Details

User Since
Oct 29 2015, 5:25 PM (477 w, 2 d)
Roles
Administrator

Recent Activity

Jun 27 2024

jtl added inline comments to D45746: callout: provide CALLOUT_TRYLOCK flag.
Jun 27 2024, 5:31 PM

Jun 26 2024

jtl accepted D45411: tcp: simplify endpoint creation at the passive side.
Jun 26 2024, 7:29 PM
jtl accepted D45749: tcp: fix cleanup when in_pcbconnect() fails in syncache_socket().
Jun 26 2024, 7:24 PM
jtl accepted D45748: tcp: get rid of TDP_INTCPCALLOUT.
Jun 26 2024, 5:27 PM
jtl accepted D45747: tcp: use CALLOUT_TRYLOCK for the TCP callout.
Jun 26 2024, 5:27 PM
jtl accepted D45746: callout: provide CALLOUT_TRYLOCK flag.

Overall, I think this approach has value. See my in-line comments for suggestions on things to review further.

Jun 26 2024, 5:25 PM
jtl accepted D45745: locks: augment lock_class with lc_trylock method.
Jun 26 2024, 5:09 PM

Jun 21 2024

jtl added a comment to D45411: tcp: simplify endpoint creation at the passive side.

Thanks! I like this approach. I've added a few comments about potential enhancements.

Jun 21 2024, 11:35 PM

May 31 2024

jtl accepted D45425: tcp: in tcp_close() call tcp_timer_stop() after pcb has been dropped.
May 31 2024, 6:24 PM
jtl added a comment to D45411: tcp: simplify endpoint creation at the passive side.
In D45411#1035980, @jtl wrote:

Should we check for TCP_FUNC_BEING_REMOVED?

I thought about this and did again after you raised the question. The original code didn't.
...
However, since we don't hold the tcp_function_lock, the tfb can be removed any time before or after we set the TCP function block in tcp_newtcpcb. It cannot go away, since we hold a reference count. I guess that is the reason why there was no check...

May 31 2024, 3:51 PM
jtl added a comment to D45419: tcp: mark TCP stacks which can serve as a default stack.

Can you give a brief explanation of the problem this is supposed to solve?

May 31 2024, 3:18 PM

May 30 2024

jtl added a comment to D45411: tcp: simplify endpoint creation at the passive side.

Should we check for TCP_FUNC_BEING_REMOVED?

May 30 2024, 7:52 PM

Dec 20 2023

jtl added inline comments to D43122: inpcb: reoder inpcb destruction.
Dec 20 2023, 8:23 PM
jtl added inline comments to D43122: inpcb: reoder inpcb destruction.
Dec 20 2023, 3:58 PM

Dec 19 2023

jtl added inline comments to D43122: inpcb: reoder inpcb destruction.
Dec 19 2023, 7:02 PM

Nov 17 2023

jtl added a comment to D42664: tcphpts: enable per default.

I actually planned to make it a loadable module. Given that it creates extra threads that aren't going to be used by default makes its presence questionable.

Nov 17 2023, 11:14 PM

Nov 16 2023

jtl committed rG884eeff20ce9: genoffset.sh: fix build break on MacOS (authored by jtl).
genoffset.sh: fix build break on MacOS
Nov 16 2023, 5:57 PM
jtl closed D42407: Stop using a temporary file for genoffset.sh.
Nov 16 2023, 3:08 PM
jtl committed rGaccfb4cc9346: genoffset.sh: stop using a temporary file (authored by jtl).
genoffset.sh: stop using a temporary file
Nov 16 2023, 3:08 PM

Nov 7 2023

jtl added a comment to D42407: Stop using a temporary file for genoffset.sh.
In D42407#967685, @imp wrote:

I might also note in the commit message you used a here document with the shell output expanded in the commit message... it is a bit of a surprising change based on the commit message.

Nov 7 2023, 8:17 PM
jtl updated the summary of D42407: Stop using a temporary file for genoffset.sh.
Nov 7 2023, 8:13 PM

Oct 30 2023

jtl requested review of D42407: Stop using a temporary file for genoffset.sh.
Oct 30 2023, 5:56 PM

Sep 15 2023

jtl accepted D41877: nvme: Give up when we've failed.
Sep 15 2023, 4:56 PM
jtl added a reviewer for D41867: Deprecate fpu_kern_thread(): kib.
Sep 15 2023, 11:07 AM
jtl requested review of D41867: Deprecate fpu_kern_thread().
Sep 15 2023, 9:51 AM
jtl updated subscribers of D41865: Don't clear FPU registers when using FPU_KERN_NOCTX.
Sep 15 2023, 9:14 AM
jtl requested review of D41865: Don't clear FPU registers when using FPU_KERN_NOCTX.
Sep 15 2023, 8:43 AM

Jun 1 2023

jtl requested review of D40380: Modularize some IPv4/IPv6 protocol code.
Jun 1 2023, 7:06 PM

May 31 2023

jtl committed rG4f2cc73f34eb: tcp: Refactor tcp_get_srtt() (authored by jtl).
tcp: Refactor tcp_get_srtt()
May 31 2023, 7:24 PM
jtl closed D40304: Refactor tcp_get_srtt().
May 31 2023, 7:24 PM

May 27 2023

jtl added a comment to D40267: tcp: fix a bug where unshifting should be put last in tcp_get_srtt().

For what its worth...

May 27 2023, 3:30 PM
jtl requested review of D40304: Refactor tcp_get_srtt().
May 27 2023, 3:06 PM

May 9 2023

jtl committed rG8a16fb47303e: locks: fix two potential overflows in the lock delay code (authored by jtl).
locks: fix two potential overflows in the lock delay code
May 9 2023, 4:49 PM
jtl closed D39372: Fix two potential overflows in the lock delay code.
May 9 2023, 4:49 PM

Apr 17 2023

jtl updated the diff for D39372: Fix two potential overflows in the lock delay code.

Incorporate two suggestions from @jhb.

Apr 17 2023, 2:04 PM
jtl added inline comments to D39372: Fix two potential overflows in the lock delay code.
Apr 17 2023, 1:56 PM

Apr 10 2023

jtl added inline comments to D39372: Fix two potential overflows in the lock delay code.
Apr 10 2023, 11:25 PM

Apr 7 2023

jtl added inline comments to D39372: Fix two potential overflows in the lock delay code.
Apr 7 2023, 7:59 PM

Mar 31 2023

jtl updated the diff for D39372: Fix two potential overflows in the lock delay code.

Updated the diff to upgrade the delay field from u_short to u_int in struct lock_delay_arg. Due to alignment requirements, this probably won't actually change the size or in-memory layout of the structure at all.

Mar 31 2023, 6:23 PM
jtl added inline comments to D39372: Fix two potential overflows in the lock delay code.
Mar 31 2023, 6:15 PM
jtl requested review of D39372: Fix two potential overflows in the lock delay code.
Mar 31 2023, 5:14 PM

Mar 4 2023

jtl added inline comments to D38853: Make eventratecheck (formerly ppsratecheck) safe on multi-processor systems.
Mar 4 2023, 6:15 PM

Mar 3 2023

jtl added a comment to D38853: Make eventratecheck (formerly ppsratecheck) safe on multi-processor systems.
In D38853#884786, @mjg wrote:

Quite frankly I'm confused how come people keep claiming atomic ops are cheap, when it seemed it is common knowledge they are very expensive, especially so on amd64. Maybe I should do a writeup with real numbers(tm).

Mar 3 2023, 4:22 PM

Mar 2 2023

jtl added a comment to D38853: Make eventratecheck (formerly ppsratecheck) safe on multi-processor systems.
In D38853#884557, @mjg wrote:

atomics already make it probably too expensive to use

Mar 2 2023, 5:58 PM
jtl requested review of D38853: Make eventratecheck (formerly ppsratecheck) safe on multi-processor systems.
Mar 2 2023, 4:40 PM

Dec 15 2022

jtl added a comment to D37715: tcp: build rack and bbr as part of normal kernel builds.

By the way, I should clarify that I am not opposed to this change; rather, my previous comment was merely intended to help explain what I view as the implications of the change and advocate that we make sure there is sufficiently broad agreement to proceed.

Dec 15 2022, 7:29 PM
jtl added a comment to D37715: tcp: build rack and bbr as part of normal kernel builds.

The rationale for the present state is found here.

Dec 15 2022, 6:56 PM

Sep 28 2022

jtl abandoned D14993: Add a limit on how long TCP data can live at the head of the output queue.

Functionally committed in D36716

Sep 28 2022, 5:53 PM

Sep 26 2022

jtl added a comment to D36716: Tcp progress timeout.

How does this relate to the TCP User Timeout from RFC 793/9293?

Sep 26 2022, 7:30 PM
jtl added a comment to D36595: Add options for enforcing W^X.
In D36595#832812, @kib wrote:

I still do not like the extra verbosity from kernel. If insisting on adding more kernel messages, you could make logging for SIGTRAP with interesting si_codes, covering both wxorx and capsicum in one shot.

Sep 26 2022, 2:41 PM

Sep 23 2022

jtl updated the diff for D36595: Add options for enforcing W^X.

Fix the man page description of the vm.enforce_wxorx sysctl/tunable to indicate that a value of 2 both denies mappings and sends a signal.

Sep 23 2022, 4:24 PM
jtl added inline comments to D36595: Add options for enforcing W^X.
Sep 23 2022, 4:20 PM
jtl updated the diff for D36595: Add options for enforcing W^X.

Addressed review feedback.
Restored defaults.

Sep 23 2022, 4:16 PM

Sep 21 2022

jtl updated the diff for D36595: Add options for enforcing W^X.

Added a section to the security(7) man page in an attempt to clarify the controls which will be available if this change is merged.

Sep 21 2022, 2:38 PM

Sep 16 2022

jtl added a comment to D36595: Add options for enforcing W^X.
In D36595#831110, @jtl wrote:
In D36595#831026, @kib wrote:

IMO there is too much controls now for wxorx. There is proccontrol -m wxmap, and essentially adding yet another knob breaks it.

I'll look into this a little more.

Sep 16 2022, 7:09 PM
jtl added a comment to D36595: Add options for enforcing W^X.
In D36595#831026, @kib wrote:

IMO there is too much controls now for wxorx. There is proccontrol -m wxmap, and essentially adding yet another knob breaks it.

Sep 16 2022, 4:53 PM
jtl added inline comments to D36595: Add options for enforcing W^X.
Sep 16 2022, 3:14 PM
jtl updated the diff for D36595: Add options for enforcing W^X.

Made changes based on review:

  • Switch from syslog to uprintf() for reporting ELF W^X failure.
  • Separate W^X logging and enforcement.
  • Change test for which processes to signal. (Now, system processes, processes which are still starting, and kernel threads are exempt.)
  • Switch from using SIGSEGV to SIGTRAP with a descriptive code.
Sep 16 2022, 3:07 PM

Sep 15 2022

jtl updated the diff for D36595: Add options for enforcing W^X.

Changes suggested in the review:

  • Added entry to UPDATING.
  • Updated security(7) man page.
Sep 15 2022, 5:50 PM
jtl requested review of D36595: Add options for enforcing W^X.
Sep 15 2022, 4:48 PM

Sep 9 2022

jtl added a comment to D36275: ip_reass: retire ipreass_slowtimo() in favor of per-slot callout.

The diff seems ok to me, but I don't really understand why we need one callout per hash bucket. It's an extra 64KB per VNET, which isn't exactly cheap. I can see why it's conceptually simpler to implement this way, since you have a per-bucket mutex to synchronize the callout, but it still feels like overkill. I don't have any other comments on the patch itself.

Sep 9 2022, 4:51 PM

Sep 22 2021

jtl added inline comments to D24400: Make encrypted swap more reliable.
Sep 22 2021, 3:30 PM

Jun 17 2021

jtl added inline comments to D30740: net.inet.tcp.tolerate_missing_ts=1.
Jun 17 2021, 3:03 PM

May 20 2021

jtl added inline comments to D29441: tcp: Add PRR cwnd reduction for non-SACK loss.
May 20 2021, 2:31 PM

Apr 12 2021

jtl added a comment to D29519: Add missing sockaddr length and family validation to various protocols.

Ping? Any comments on the overall approach, or on the details of the change?

Hi Mark,

we discussed this at the last transport call. We agreed that that handling should be consistent but wanted to check until the next transport call (about two weeks from now) what the consistent way would be. My understanding is:

Apr 12 2021, 2:44 PM

Apr 1 2021

jtl added a comment to D29519: Add missing sockaddr length and family validation to various protocols.

Thanks for doing this! It looks like a very positive change, and I'm sure there was a lot of effort put into finding the right way to clean up the code.

Apr 1 2021, 3:03 PM
jtl added a comment to D24316: Make sonewconn overflow messages have per-socket rate-limits and values.
In D24316#639938, @brd wrote:

@jtl Please MFC this to stable/12 along with D24272

Apr 1 2021, 2:00 AM
jtl added a comment to D29522: tcp: For hostcache performance, use atomics instead of counters.

Thanks for doing this so quickly!

Apr 1 2021, 1:11 AM

Mar 31 2021

jtl added a comment to D29510: tcp: Make hostcache.cache_count MPSAFE by using a counter_u64_t.

FWIW, I disagree with this change. I think we should instead use atomic operations here.

Mar 31 2021, 9:41 PM
jtl committed rG40d278253d20: Fetch the sigfastblock value in syscalls that wait for signals (authored by jtl).
Fetch the sigfastblock value in syscalls that wait for signals
Mar 31 2021, 7:56 PM
jtl committed rGa25c17022e2d: Fetch the sigfastblock value in syscalls that wait for signals (authored by jtl).
Fetch the sigfastblock value in syscalls that wait for signals
Mar 31 2021, 10:51 AM

Mar 12 2021

jtl committed rGdbec10e08808: Fetch the sigfastblock value in syscalls that wait for signals (authored by jtl).
Fetch the sigfastblock value in syscalls that wait for signals
Mar 12 2021, 6:35 PM
jtl closed D29225: Synchronize the sigfastblock value on entry to sigsuspend.
Mar 12 2021, 6:34 PM
jtl added a comment to D29225: Synchronize the sigfastblock value on entry to sigsuspend.
In D29225#654397, @kib wrote:

It is strange indeed, and it sounds more like a self-inflicting action from userspace. Code in rtld or libthr should not leak sigfastblock block, but of course bugs are possible.

Mar 12 2021, 5:45 PM
jtl updated the diff for D29225: Synchronize the sigfastblock value on entry to sigsuspend.

This is the change I am planning to commit once the regression tests finish running.

Mar 12 2021, 5:35 PM

Mar 11 2021

jtl requested review of D29225: Synchronize the sigfastblock value on entry to sigsuspend.
Mar 11 2021, 8:46 PM

Jan 14 2021

jtl accepted D28142: tcp: add sysctl to tolerate TCP segments missing timestamps.
Jan 14 2021, 2:36 PM

Dec 4 2020

jtl added a comment to D27459: Only bring down clone interfaces at shutdown.

This does not fix the regression I am experiencing in my test setup. I am testing with a machine which uses a LAGG interface to communicate with the outside world. Shutting this interface down still makes my SSH sessions hang.

Dec 4 2020, 4:44 PM

Dec 3 2020

jtl abandoned D27464: Fix hung TCP sessions on shutdown.

I just saw the discussion on the committers mailing list. First, it shows that @cy already has a proposed fix. Secondly, it shows that this is a larger issue (for example, netboot), which probably needs a different solution.

Dec 3 2020, 8:36 PM
jtl added a comment to D27464: Fix hung TCP sessions on shutdown.

When committing, please add a reference to https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=251540

Dec 3 2020, 8:23 PM
jtl requested review of D27464: Fix hung TCP sessions on shutdown.
Dec 3 2020, 7:49 PM

Nov 20 2020

jtl closed D27246: Fix dtrace symbol resolution for anonymous structs/unions.
Nov 20 2020, 7:09 PM
jtl committed rS367905: When copying types from one CTF container to another, ensure that we.
When copying types from one CTF container to another, ensure that we
Nov 20 2020, 7:09 PM
jtl added a comment to D27246: Fix dtrace symbol resolution for anonymous structs/unions.

I'd suggest running the DTrace test suite with this change if you haven't. make -C cddl/usr.sbin/dtrace WITH_DTRACE_TESTS= all install should install them to /usr/tests/cddl/usr.sbin/dtrace.

Nov 20 2020, 5:14 PM

Nov 17 2020

jtl added a comment to D27246: Fix dtrace symbol resolution for anonymous structs/unions.

Could you please re-upload with context?

Nov 17 2020, 3:47 PM
jtl updated the diff for D27246: Fix dtrace symbol resolution for anonymous structs/unions.

Updating the diff to include context.

Nov 17 2020, 3:30 PM
jtl closed D27213: Fix dtrace symbol resolution in the face of bitfields.
Nov 17 2020, 2:07 PM
jtl committed rS367763: When copying types from one CTF container to another, ensure that we.
When copying types from one CTF container to another, ensure that we
Nov 17 2020, 2:07 PM
jtl updated the diff for D27246: Fix dtrace symbol resolution for anonymous structs/unions.

While here, update the code in ctf_add_generic() to encode empty type names with index 0. This fixes the analogous case for type names.

Nov 17 2020, 3:09 AM
jtl updated the summary of D27246: Fix dtrace symbol resolution for anonymous structs/unions.
Nov 17 2020, 3:05 AM
jtl requested review of D27246: Fix dtrace symbol resolution for anonymous structs/unions.
Nov 17 2020, 3:03 AM
jtl added a comment to D27213: Fix dtrace symbol resolution in the face of bitfields.
In D27213#608228, @jtl wrote:

I can't reproduce this problem at all on head. The script appears to work properly. I remember that the use of anonymous unions in struct mbuf caused some problems, at least one of which was fixed by r305055, but that was a long time ago.

I can reproduce this problem locally. Some others can't reproduce the problem I reported in the main description. I'm not sure why, but there seems to be some non-determinism in the way symbols are loaded/resolved?

Nov 17 2020, 1:36 AM
jtl added a comment to D27213: Fix dtrace symbol resolution in the face of bitfields.
In D27213#608269, @ae wrote:

It seems I found how to reproduce it on test system:

  1. Load systemt without any unneeded modules
  2. kldload dtraceall
  3. Run
# dtrace -n 'fbt::ip_input:entry { printf("%s", stringof(args[0]->m_pkthdr.rcvif->if_xname)); }'
dtrace: description 'fbt::ip_input:entry ' matched 1 probe
CPU     ID                    FUNCTION:NAME
  2  49220                   ip_input:entry ix0
  2  49220                   ip_input:entry ix0
  6  49220                   ip_input:entry ix0
^C
# kldunload dtraceall
# kldload ipfw
# kldload dtraceall
# dtrace -n 'fbt::ip_input:entry { printf("%s", stringof(args[0]->m_pkthdr.rcvif->if_xname)); }'
dtrace: invalid probe specifier fbt::ip_input:entry { printf("%s", stringof(args[0]->m_pkthdr.rcvif->if_xname)); }: in action list: m_pkthdr is not a member of struct mbuf
Nov 17 2020, 1:16 AM

Nov 16 2020

jtl added a comment to D27213: Fix dtrace symbol resolution in the face of bitfields.
In D27213#608180, @jtl wrote:
In D27213#608081, @ae wrote:

Recently I faced with this problem on some machines:

# dtrace -n 'fbt::ip_input:entry { printf("%s", stringof(args[0]->m_pkthdr.rcvif->if_xname)); }'
dtrace: invalid probe specifier fbt::ip_input:entry { printf("%s", stringof(args[0]->m_pkthdr.rcvif->if_xname)); }: in action list: m_pkthdr is not a member of struct mbuf

And it seems it is exactly related.

It does appear that problem is likely related to type resolution. However, for what its worth, this patch does not solve that problem on my test machine. So, that problem may have a different cause.

I can't reproduce this problem at all on head. The script appears to work properly. I remember that the use of anonymous unions in struct mbuf caused some problems, at least one of which was fixed by r305055, but that was a long time ago.

Nov 16 2020, 6:03 PM
jtl added a comment to D27213: Fix dtrace symbol resolution in the face of bitfields.
In D27213#608081, @ae wrote:

Recently I faced with this problem on some machines:

# dtrace -n 'fbt::ip_input:entry { printf("%s", stringof(args[0]->m_pkthdr.rcvif->if_xname)); }'
dtrace: invalid probe specifier fbt::ip_input:entry { printf("%s", stringof(args[0]->m_pkthdr.rcvif->if_xname)); }: in action list: m_pkthdr is not a member of struct mbuf

And it seems it is exactly related.

Nov 16 2020, 4:52 PM
jtl added inline comments to D27213: Fix dtrace symbol resolution in the face of bitfields.
Nov 16 2020, 3:43 PM

Nov 14 2020

jtl closed D27173: Add regression test for D27164.
Nov 14 2020, 3:45 PM
jtl committed rS367685: Add a regression test for the port-selection behavior fixed in r367680..
Add a regression test for the port-selection behavior fixed in r367680.
Nov 14 2020, 3:45 PM
jtl closed D27164: Fix implicit automatic local port selection during connect calls.
Nov 14 2020, 2:50 PM
jtl committed rS367680: Fix implicit automatic local port selection for IPv6 during connect calls..
Fix implicit automatic local port selection for IPv6 during connect calls.
Nov 14 2020, 2:50 PM