Page MenuHomeFreeBSD

jacob.e.keller_intel.com (Jacob Keller)
User

Projects

User Details

User Since
Aug 24 2017, 3:21 PM (116 w, 4 d)

Recent Activity

Yesterday

jacob.e.keller_intel.com added a comment to D22400: bitstring: add functions to find contiguous set/unset bit sequences.

Ok, will add tests and fix the comments.

Mon, Nov 18, 10:20 PM
jacob.e.keller_intel.com added a comment to D22398: bitstring: exit early if _start is past size of the bitstring.

Would you mind adding tests to tests/sys/sys/bitstring_test.c?

Mon, Nov 18, 10:19 PM
jacob.e.keller_intel.com added a reviewer for D22400: bitstring: add functions to find contiguous set/unset bit sequences: asomers.
Mon, Nov 18, 6:58 PM
jacob.e.keller_intel.com added a reviewer for D22398: bitstring: exit early if _start is past size of the bitstring: asomers.
Mon, Nov 18, 6:58 PM

Sat, Nov 16

jacob.e.keller_intel.com added a comment to D22400: bitstring: add functions to find contiguous set/unset bit sequences.

We use this implementation in the ice driver (current review at https://reviews.freebsd.org/D21959, will be updated to reflect moving the function here soon).

Sat, Nov 16, 12:44 AM
jacob.e.keller_intel.com added a reviewer for D22400: bitstring: add functions to find contiguous set/unset bit sequences: erj.
Sat, Nov 16, 12:41 AM
jacob.e.keller_intel.com created D22400: bitstring: add functions to find contiguous set/unset bit sequences.
Sat, Nov 16, 12:41 AM

Fri, Nov 15

jacob.e.keller_intel.com updated the summary of D22398: bitstring: exit early if _start is past size of the bitstring.
Fri, Nov 15, 11:53 PM
jacob.e.keller_intel.com added a reviewer for D22398: bitstring: exit early if _start is past size of the bitstring: erj.
Fri, Nov 15, 11:52 PM
jacob.e.keller_intel.com created D22398: bitstring: exit early if _start is past size of the bitstring.
Fri, Nov 15, 11:50 PM

Tue, Nov 5

jacob.e.keller_intel.com added a comment to D22245: route: remove extra reference on ifa in rtinit1..

You should be able to verify this leak by doing something like:

Tue, Nov 5, 6:49 PM
jacob.e.keller_intel.com added a comment to D22245: route: remove extra reference on ifa in rtinit1..

I'm really not sure this is the correct fix. Possibly we should just add an ifa_free after the rtrequest1_fib()?

Tue, Nov 5, 5:55 PM
jacob.e.keller_intel.com added reviewers for D22245: route: remove extra reference on ifa in rtinit1.: jhb, gallatin, erj.
Tue, Nov 5, 5:54 PM
jacob.e.keller_intel.com created D22245: route: remove extra reference on ifa in rtinit1..
Tue, Nov 5, 5:53 PM
jacob.e.keller_intel.com added a comment to D22244: route: remove an outdated comment from rtrequest1_fib.

I found this while debugging an extra reference on the ifa refcount. I think I found a "solution" that isn't quite right, but this comment is misleading.

Tue, Nov 5, 5:42 PM
jacob.e.keller_intel.com added reviewers for D22244: route: remove an outdated comment from rtrequest1_fib: jhb, mmacy, erj.
Tue, Nov 5, 5:41 PM
jacob.e.keller_intel.com created D22244: route: remove an outdated comment from rtrequest1_fib.
Tue, Nov 5, 5:40 PM

Mon, Nov 4

jacob.e.keller_intel.com updated the diff for D21240: net: add ETHER_IS_ZERO macro similar to ETHER_IS_BROADCAST.

Remove ETHER_IS_ZERO definitions from USB networking drivers.

Mon, Nov 4, 11:29 PM
jacob.e.keller_intel.com added a comment to D22203: iflib: properly release memory allocated for DMA.
In D22203#486049, @erj wrote:

@jacob.e.keller_intel.com, is this ready to be committed?

Mon, Nov 4, 10:49 PM

Fri, Nov 1

jacob.e.keller_intel.com abandoned D22215: fix leak of the ifg_list structure in if_delgroups..

We're in agreement that the refactor is a better solution, so I'm going to abandon this one.

Fri, Nov 1, 6:17 PM
jacob.e.keller_intel.com updated the diff for D22214: factor out remove logic from if_delgroup and if_delgroups.

add an IFNET_WLOCK_ASSERT in if_freegroup

Fri, Nov 1, 6:15 PM
jacob.e.keller_intel.com added a comment to D22215: fix leak of the ifg_list structure in if_delgroups..

I think the refactored version to avoid code duplication is probably a better fix. If you go with this one, perhaps remove the whitespace changes and only commit the added free().

Fri, Nov 1, 6:11 PM
jacob.e.keller_intel.com added a comment to D22215: fix leak of the ifg_list structure in if_delgroups..

Also, yay.. yet another memory leak fixed while playing whack-a-mole trying to fix leaks during driver load/unload testing. I think we still have at least one more on M_IFADDR somewhere.

Fri, Nov 1, 5:29 PM
jacob.e.keller_intel.com added reviewers for D22214: factor out remove logic from if_delgroup and if_delgroups: Intel Networking, jhb, gallatin, erj.
Fri, Nov 1, 5:28 PM
jacob.e.keller_intel.com added reviewers for D22215: fix leak of the ifg_list structure in if_delgroups.: Intel Networking, jhb, gallatin, erj.
Fri, Nov 1, 5:28 PM
jacob.e.keller_intel.com added a comment to D22214: factor out remove logic from if_delgroup and if_delgroups.

This is likely the better approach to solving the leak described in https://reviews.freebsd.org/D22215

Fri, Nov 1, 5:27 PM
jacob.e.keller_intel.com added a comment to D22215: fix leak of the ifg_list structure in if_delgroups..

This is the simpler straight forward fix to the same issue described in https://reviews.freebsd.org/D22214

Fri, Nov 1, 5:26 PM
jacob.e.keller_intel.com created D22215: fix leak of the ifg_list structure in if_delgroups..
Fri, Nov 1, 5:25 PM
jacob.e.keller_intel.com created D22214: factor out remove logic from if_delgroup and if_delgroups.
Fri, Nov 1, 5:23 PM

Thu, Oct 31

jacob.e.keller_intel.com added a comment to 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.

Thu, Oct 31, 10:07 PM
jacob.e.keller_intel.com added a comment to D22203: iflib: properly release memory allocated for DMA.

The fact that the map pointer can be NULL is weird, but we found this to be true in several places, and without the removal of the NULL checks we end up leaking ~200 bytes of M_DEVBUF, and associated other DMA memory allocated outside of malloc.

Thu, Oct 31, 12:29 AM
jacob.e.keller_intel.com added reviewers for D22203: iflib: properly release memory allocated for DMA: erj, Intel Networking, gallatin.
Thu, Oct 31, 12:28 AM
jacob.e.keller_intel.com created D22203: iflib: properly release memory allocated for DMA.
Thu, Oct 31, 12:27 AM

Fri, Oct 25

jacob.e.keller_intel.com added a comment to D22157: iflib: cleanup memory leaks on driver detach.

We should be able to MFC this to 12-STABLE and 11-STABLE. Since the issue has existed since the beginning of iflib in-tree, I don't really think it's worth trying to rush it into 12.1... although it is a relatively small fix.

Fri, Oct 25, 11:35 PM
jacob.e.keller_intel.com added reviewers for D22157: iflib: cleanup memory leaks on driver detach: Intel Networking, erj.
Fri, Oct 25, 11:34 PM
jacob.e.keller_intel.com created D22157: iflib: cleanup memory leaks on driver detach.
Fri, Oct 25, 11:22 PM
jacob.e.keller_intel.com added inline comments to D22086: iflib: Stop interface before (un)registering VLAN.
Fri, Oct 25, 5:28 PM

Wed, Oct 23

jacob.e.keller_intel.com added inline comments to D22086: iflib: Stop interface before (un)registering VLAN.
Wed, Oct 23, 6:39 PM
jacob.e.keller_intel.com added reviewers for D21239: net: prefer ETHER_ADDR_LEN over ETH_ADDR_LEN: Intel Networking, erj.
Wed, Oct 23, 6:36 PM
jacob.e.keller_intel.com added reviewers for D21240: net: add ETHER_IS_ZERO macro similar to ETHER_IS_BROADCAST: Intel Networking, erj.
Wed, Oct 23, 6:35 PM

Oct 18 2019

jacob.e.keller_intel.com added a comment to D22071: iflib: call ether_ifdetach and netmap_detach before stop.

Updated the review to add vlan event handler unregister calls before iflib_stop as well. I kept the call in iflib_deregister as well so that they get cleaned up properly during error flows. Now it uses the "unregister -> assign NULL" pattern so that only one of the flows will actually perform an unregister check.

Oct 18 2019, 5:42 PM
jacob.e.keller_intel.com updated the diff for D22071: iflib: call ether_ifdetach and netmap_detach before stop.

also move VLAN event handlers

Oct 18 2019, 5:36 PM
jacob.e.keller_intel.com added inline comments to D22071: iflib: call ether_ifdetach and netmap_detach before stop.
Oct 18 2019, 5:16 PM
jacob.e.keller_intel.com added a comment to D22071: iflib: call ether_ifdetach and netmap_detach before stop.

I did manage to eventually trigger another stale ifp pointer, though it was not reliable:

Kernel page fault with the following non-sleepable locks held:
exclusive sleep mutex ip6qlock (ip6qlock) r = 0 (0xfffffe00007aa848) locked @ /usr/src/sys/netinet6/frag6.c:849
shared rw vnet_rwlock (vnet_rwlock) r = 0 (0xffffffff820be700) locked @ /usr/src/sys/netinet6/frag6.c:845
stack backtrace:
#0 0xffffffff80bb6f83 at witness_debugger+0x73
#1 0xffffffff80bb7fa2 at witness_warn+0x442
#2 0xffffffff8108a0f3 at trap_pfault+0x53
#3 0xffffffff810896e4 at trap+0x2b4
#4 0xffffffff8106201c at calltrap+0x8
#5 0xffffffff80d8c07a at icmp6_error+0x4aa
#6 0xffffffff80d8b30e at frag6_freef+0x10e
#7 0xffffffff80d8b551 at frag6_slowtimo+0x111
#8 0xffffffff80bdcda4 at pfslowtimo+0x54
#9 0xffffffff80b65bdf at softclock_call_cc+0x13f
#10 0xffffffff80b65f9c at softclock+0x7c
#11 0xffffffff80b0f857 at ithread_loop+0x187
#12 0xffffffff80b0c4a4 at fork_exit+0x84
#13 0xffffffff8106305e at fork_trampoline+0xe
Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address   = 0xfffffe0000825dd8
fault code              = supervisor read data, page not present
instruction pointer     = 0x20:0xffffffff80d8c5b2
stack pointer           = 0x28:0xfffffe1fc28c6ff0
frame pointer           = 0x28:0xfffffe1fc28c7090
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 12 (swi4: clock (0))
trap number             = 12
panic: page fault
cpuid = 0
time = 1571354026
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe1fc28c6cb0
vpanic() at vpanic+0x19d/frame 0xfffffe1fc28c6d00
panic() at panic+0x43/frame 0xfffffe1fc28c6d60
trap_fatal() at trap_fatal+0x39c/frame 0xfffffe1fc28c6dc0
trap_pfault() at trap_pfault+0x62/frame 0xfffffe1fc28c6e10
trap() at trap+0x2b4/frame 0xfffffe1fc28c6f20
calltrap() at calltrap+0x8/frame 0xfffffe1fc28c6f20
--- trap 0xc, rip = 0xffffffff80d8c5b2, rsp = 0xfffffe1fc28c6ff0, rbp = 0xfffffe1fc28c7090 ---
icmp6_reflect() at icmp6_reflect+0x242/frame 0xfffffe1fc28c7090
icmp6_error() at icmp6_error+0x4aa/frame 0xfffffe1fc28c70e0
frag6_freef() at frag6_freef+0x10e/frame 0xfffffe1fc28c7130
frag6_slowtimo() at frag6_slowtimo+0x111/frame 0xfffffe1fc28c7180
pfslowtimo() at pfslowtimo+0x54/frame 0xfffffe1fc28c71b0
softclock_call_cc() at softclock_call_cc+0x13f/frame 0xfffffe1fc28c7260
softclock() at softclock+0x7c/frame 0xfffffe1fc28c7290
ithread_loop() at ithread_loop+0x187/frame 0xfffffe1fc28c72f0
fork_exit() at fork_exit+0x84/frame 0xfffffe1fc28c7330
fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe1fc28c7330
--- trap 0, rip = 0, rsp = 0, rbp = 0 ---
KDB: enter: panic
Oct 18 2019, 3:41 PM

Oct 17 2019

jacob.e.keller_intel.com added inline comments to D22071: iflib: call ether_ifdetach and netmap_detach before stop.
Oct 17 2019, 11:55 PM
jacob.e.keller_intel.com added a comment to D22071: iflib: call ether_ifdetach and netmap_detach before stop.

Assuming this fix makes sense, this should be MFC'd to 11-STABLE and 12-STABLE too, IMHO.

Oct 17 2019, 11:53 PM
jacob.e.keller_intel.com updated the summary of D22071: iflib: call ether_ifdetach and netmap_detach before stop.
Oct 17 2019, 11:50 PM
jacob.e.keller_intel.com added a comment to D22071: iflib: call ether_ifdetach and netmap_detach before stop.

I did manage to eventually trigger another stale ifp pointer, though it was not reliable:

Oct 17 2019, 11:49 PM
jacob.e.keller_intel.com created D22071: iflib: call ether_ifdetach and netmap_detach before stop.
Oct 17 2019, 11:47 PM
jacob.e.keller_intel.com added inline comments to D21705: if_ixv: disable RSS configuration on 82599 and X540 VFs.
Oct 17 2019, 7:33 PM

Oct 10 2019

jacob.e.keller_intel.com added a comment to D21959: introduce new 'ice' driver for Intel E800 Ethernet controllers.

Don't forget a manpage. :-)

Oct 10 2019, 6:15 PM
jacob.e.keller_intel.com 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:09 AM

Oct 9 2019

jacob.e.keller_intel.com updated the diff for D21869: ix: report isc_pause_frames during stat update.

Use the correct register value for the received pause frames

Oct 9 2019, 8:35 PM
jacob.e.keller_intel.com added inline comments to D21869: ix: report isc_pause_frames during stat update.
Oct 9 2019, 8:22 PM
jacob.e.keller_intel.com created D21959: introduce new 'ice' driver for Intel E800 Ethernet controllers.
Oct 9 2019, 7:06 PM

Oct 1 2019

jacob.e.keller_intel.com created D21870: ixl: report whether device received pause frames.
Oct 1 2019, 11:44 PM
jacob.e.keller_intel.com created D21869: ix: report isc_pause_frames during stat update.
Oct 1 2019, 11:44 PM
jacob.e.keller_intel.com created D21868: e1000: correctly set isc_pause_frames only when XOFF increases.
Oct 1 2019, 11:44 PM

Sep 9 2019

jacob.e.keller_intel.com added a comment to D21547: ix, ixv: Read msix_bar from device configuration.

I agree with Eric, we should depend on the device to be configured properly, and push to get the images for the device updated if they're wrong.

Sep 9 2019, 6:01 PM

Sep 5 2019

jacob.e.keller_intel.com added a comment to D21540: initialize the STATE_LOCK in iflib_register.

This is specifically a fix for 11-STABLE. It's already fixed in CURRENT and STABLE-12. It looks like it was an accidental miss in MFC for STABLE-11 a few months ago.

Sep 5 2019, 10:33 PM
jacob.e.keller_intel.com added a reviewer for D21540: initialize the STATE_LOCK in iflib_register: erj.
Sep 5 2019, 10:33 PM
jacob.e.keller_intel.com created D21540: initialize the STATE_LOCK in iflib_register.
Sep 5 2019, 10:32 PM

Aug 13 2019

jacob.e.keller_intel.com added a comment to D21240: net: add ETHER_IS_ZERO macro similar to ETHER_IS_BROADCAST.

It’s seems I found another incorrect solution:
#include <stdio.h>
int main()
{

unsigned char a = (1 << 0) ||(1<<1)||(1 <<2)||(1<<3)||(1<<4)||(1<<5);
printf("momentum more : %d\n", a);
return 0;

}

Aug 13 2019, 11:15 PM
jacob.e.keller_intel.com added a comment to D21240: net: add ETHER_IS_ZERO macro similar to ETHER_IS_BROADCAST.

Use bitwise OR instead of bitwise AND to correct implementation

Aug 13 2019, 9:21 PM
jacob.e.keller_intel.com added inline comments to D21240: net: add ETHER_IS_ZERO macro similar to ETHER_IS_BROADCAST.
Aug 13 2019, 9:19 PM

Aug 12 2019

jacob.e.keller_intel.com created D21240: net: add ETHER_IS_ZERO macro similar to ETHER_IS_BROADCAST.
Aug 12 2019, 10:53 PM
jacob.e.keller_intel.com created D21239: net: prefer ETHER_ADDR_LEN over ETH_ADDR_LEN.
Aug 12 2019, 10:53 PM

Jul 31 2019

jacob.e.keller_intel.com added a comment to D21005: iflib: add iflib_deregister to help cleanup on exit.

Move the kobject refcount removal to a separate patch

Jul 31 2019, 7:49 PM
jacob.e.keller_intel.com created D21125: iflib: remove kobject class reference increment.
Jul 31 2019, 7:49 PM

Jul 23 2019

jacob.e.keller_intel.com removed 1 blocking reviewer(s) for D21003: iflib: fix dangling device softc pointer: Intel Networking.
Jul 23 2019, 10:06 PM
jacob.e.keller_intel.com added a comment to D21005: iflib: add iflib_deregister to help cleanup on exit.
In D21005#456595, @erj wrote:

This is built on top of https://reviews.freebsd.org/D21004
It could probably be backported, but isn't as necessary as the previous patch which is why I kept them separate.

Do you mean https://reviews.freebsd.org/D21003?

Jul 23 2019, 8:18 PM

Jul 19 2019

jacob.e.keller_intel.com added a reviewer for D21005: iflib: add iflib_deregister to help cleanup on exit: erj.
Jul 19 2019, 11:53 PM
jacob.e.keller_intel.com added a comment to D21005: iflib: add iflib_deregister to help cleanup on exit.

This is built on top of https://reviews.freebsd.org/D21003

Jul 19 2019, 11:53 PM
jacob.e.keller_intel.com created D21005: iflib: add iflib_deregister to help cleanup on exit.
Jul 19 2019, 11:52 PM
jacob.e.keller_intel.com added a reviewer for D21003: iflib: fix dangling device softc pointer: erj.
Jul 19 2019, 10:46 PM
jacob.e.keller_intel.com updated the test plan for D21003: iflib: fix dangling device softc pointer.
Jul 19 2019, 10:45 PM
jacob.e.keller_intel.com created D21003: iflib: fix dangling device softc pointer.
Jul 19 2019, 10:44 PM

May 10 2019

jacob.e.keller_intel.com added a comment to D20221: iflib: provide probe wrapper for vendor drivers.

We discovered this as part of our rename from ixlv to iavf.

May 10 2019, 12:17 AM
jacob.e.keller_intel.com created D20221: iflib: provide probe wrapper for vendor drivers.
May 10 2019, 12:15 AM

Apr 25 2019

jacob.e.keller_intel.com added a comment to D19880: iflib: use default ntxd and nrxd when user value is not power of 2.

Ok, I updated this revision to just use the default value now instead of rounding down.

Apr 25 2019, 8:52 PM
jacob.e.keller_intel.com retitled D19880: iflib: use default ntxd and nrxd when user value is not power of 2 from iflib: round down ntxd and nrxd when not power of 2 to iflib: use default ntxd and nrxd when user value is not power of 2.
Apr 25 2019, 8:50 PM
jacob.e.keller_intel.com updated the diff for D19880: iflib: use default ntxd and nrxd when user value is not power of 2.

use the default value instead of rounding down

Apr 25 2019, 8:41 PM

Apr 22 2019

jacob.e.keller_intel.com updated the diff for D19880: iflib: use default ntxd and nrxd when user value is not power of 2.

Modify _iflib_assert to verify driver parameters are power of 2

Apr 22 2019, 4:58 PM
jacob.e.keller_intel.com added a comment to D19880: iflib: use default ntxd and nrxd when user value is not power of 2.

I would be fine modifying the iflib code to avoid the power of 2 limitation entirely, but I don't think there is significant gain for that, because we would have to add a configuration knob indicating the increment. Additionally, since some hardware likely does require power-of-2 values, we'd want to have a way for those drivers to express that restriction as well. power-of-2 restriction can't be expressed with just an increment value, so that becomes a lot trickier.

Apr 22 2019, 4:39 PM
jacob.e.keller_intel.com added a comment to D19880: iflib: use default ntxd and nrxd when user value is not power of 2.

Yea, I'll add MPASS to check that the values are power of 2.

Apr 22 2019, 4:37 PM

Apr 11 2019

jacob.e.keller_intel.com added a reviewer for D19880: iflib: use default ntxd and nrxd when user value is not power of 2: erj.
Apr 11 2019, 5:50 PM
jacob.e.keller_intel.com added a comment to D19880: iflib: use default ntxd and nrxd when user value is not power of 2.

I have a couple of thoughts I had while writing this.

Apr 11 2019, 5:50 PM

Apr 10 2019

jacob.e.keller_intel.com created D19880: iflib: use default ntxd and nrxd when user value is not power of 2.
Apr 10 2019, 10:44 PM

Mar 19 2019

jacob.e.keller_intel.com added a reviewer for D19652: iflib: return ENETDOWN when the network device is down: sbruno.
Mar 19 2019, 11:38 PM
jacob.e.keller_intel.com created D19652: iflib: return ENETDOWN when the network device is down.
Mar 19 2019, 11:38 PM

Mar 15 2019

jacob.e.keller_intel.com created D19604: iflib: hold the CTX lock in iflib_pseudo_register.
Mar 15 2019, 11:53 PM
jacob.e.keller_intel.com updated the diff for D19577: iflib: mark isc_driver_version as constant.

Document the new CONST_STRING sysctl macros

Mar 15 2019, 12:38 AM

Mar 14 2019

jacob.e.keller_intel.com added inline comments to D19577: iflib: mark isc_driver_version as constant.
Mar 14 2019, 11:42 PM
jacob.e.keller_intel.com added a comment to D19577: iflib: mark isc_driver_version as constant.

I like the addition of SYSCTL_ADD_CONST_STRING since it also ensures that we enforce that we don't have CTLFLAG_WR.

Mar 14 2019, 11:42 PM
jacob.e.keller_intel.com updated the diff for D19577: iflib: mark isc_driver_version as constant.

Use __DECONST instead of a poor reimplementation

Mar 14 2019, 11:40 PM
jacob.e.keller_intel.com added a comment to D19577: iflib: mark isc_driver_version as constant.
In D19577#419330, @jhb wrote:

I think I'd rather have a SYSCTL_ADD_CONST_STRING or the like, but presumably you'd just get the warning again. The other hack is to cast through uintptr_t and it's what we normally do via the __DECONST() macro. I would just do that unconditionally perhaps:

char *__arg = __DECONST(arg, char *);
Mar 14 2019, 11:19 PM
jacob.e.keller_intel.com added inline comments to D19577: iflib: mark isc_driver_version as constant.
Mar 14 2019, 10:42 PM
jacob.e.keller_intel.com added a comment to D19577: iflib: mark isc_driver_version as constant.

This version actually compilers without the warnings, but it *is* rather ugly to have to do it this way

Mar 14 2019, 10:41 PM
jacob.e.keller_intel.com updated the diff for D19577: iflib: mark isc_driver_version as constant.

Introduce a __drop_const macro to handle the warning

Mar 14 2019, 10:40 PM
Herald added a reviewer for D19577: iflib: mark isc_driver_version as constant: iflib.

Looks like the best 'fix' would be to use _Pragma to drop the warnings in SYSCTL_ADD_STRING. That will take a bit more work to get correct.

Mar 14 2019, 9:02 PM