00:01:27 I'm not looking to change the logic as much as just use the busra functions to store and manipulate all the resource data during all the various enumeration loops instead of pci_bus_res 00:04:35 since they seem to be doing the same thing, but the busra stuff uses dips, which means fewer places where things need to care about what segment they're in 00:11:05 I see, that clarifies the scope a bit. I've not looked at those APIs in great detail. Sounds like they could help. I think my big questions would ultimately remain around debugging and testing at the end of the day. 00:18:46 jbk: so I was looking at one place where packets can linger; the tcp reassembly queue -- and annoyingly it has no statistics for how many mblks and bytes are enqueued. 00:20:21 but it does look suspiciously like the reassembly queue is where packets are getting stuck. 00:20:53 might be worth adding the stats.. 00:24:22 jclulow: so was part of the cubic issue related to recovery from loss events? 00:31:02 okay, yeah, it's the congestion control mucking things up. 00:32:32 CWND gets bigger than the window size, a packet gets dropped somewhere, and a full window ends up on hte transmit queue and in the reassembly queue on the receiver before the sender can ship a replacement for the missing segment 00:35:05 with sunreno, CWND stays below the window size. 00:38:08 linux mitigates this somewhat with the "tcp small queues" - there's a limit to how many packets can be in the tx queue. they kick off additional in-window transmits as packets are freed from the driver transmit queue. 00:40:22 jclulow: I'll open a bug on the CUBIC behavior - would appreciate it if you could add what you observed. 00:42:15 jbk: I was able to extract a reasonable proxy with dtrace (sequence-space span of the packets in the reassembly queue) 00:42:16 sommerfeld: Yeah there were definitely drops on the switch between speeds 01:07:20 illumos.org/issues/17907 escaped a little early -- I'm going to be filling out more detail in the description shortly. 01:39:02 okay, I'm done updating https://www.illumos.org/issues/17907 01:39:03 → BUG 17907: tcp CUBIC overruns LAN receiver (New) 03:25:50 sommerfeld: https://github.com/freebsd/freebsd-src/commit/038699a8f18a0a651ee06b85fa1dbbee1eab56f1 is potentially interesting (though there's been other updates, IIRC, this was all ported from freebsd to begin with, so the code shouldn't be too different (hopefully) 03:36:31 it also looks like a new rfc on cubic has been published since our implementation 03:36:34 (9438) 03:48:09 jbk: that seems likely to be relevant 03:49:23 i'd need to look at our implementation more closely, but this bit of rfc9438 seems potentially relevant: 03:49:51 Some implementations of CUBIC currently use _cwnd_ instead of _flight_size_ when calculating a new _ssthresh_. Implementations that use _cwnd_ MUST use other measures to prevent _cwnd_ from growing when the volume of bytes in flight is smaller than _cwnd_. This also effectively prevents _cwnd_ from growing beyond the receive window. Such measures are important for preventing a 03:49:57 CUBIC sender from using an arbitrarily high cwnd _value_ when calculating new values for _ssthresh_ and _cwnd_ when congestion is detected. 17:05:11 do we remap the address of the ACPI tables, or should the address from AcpiGetTable() (assuming success) from early boot, still be valid once the OS is up and running? 17:06:17 I don't know, sorry. 17:06:33 I would expect because of where it shows up in the memory map it doesn't get relocated. 17:07:13 that's what I suspect as well, just couldn't tell for sure.. though I suppose there's one way to find out :) 17:07:47 You can just look at the VA mapping later nad see if it maps to the same PA. 18:20:02 [illumos-gate] 17905 mdb: iob_doprnt() should know %j and %z -- Toomas Soome 19:12:36 [illumos-gate] 17870 page coloring interfaces should be in page.h -- Richard Lowe 19:12:36 [illumos-gate] 17871 setx86isalist shouldn't be globally visible -- Richard Lowe 19:12:36 [illumos-gate] 17872 many i86 parameters don't parameterize anything -- Richard Lowe 19:38:09 The Solaris team at Oracle have published the PF firewall sources for Solaris 11: https://mastodon.illumos.cafe/@alanc⊙hi/116172554140885692 20:10:07 But not the kernel bits. :( 20:11:14 Oh I stand corrected. 20:11:22 https://hachyderm.io/@alanc/116172554100242523 20:12:17 yeah.. 20:15:35 a long time ago I had wanted to play around with implementing this: https://www.usenix.org/conference/nsdi-08/swift-fast-dynamic-packet-filter on illumos.. though for filtering is maybe not as useful (since I suspect that aside from the initial connection, most of the 'filtering' would be more looking up a connection in some fashion to tell if the packet should proceed) 20:16:56 though maybe interesting as an alternative to pfmod (not to be confused with the above pf firewall) 20:17:03 pfmod(4M) 20:19:41 Guys, a question: I am running Tailscale (a mesh net) in a sparse zone on my OmniOS NAS. It uses tun to create a endpoint. I handle this endpoint s a untrusted network connection, firewalled on the outer perimeter of the zone (enforced firewall rules from GZ). Still, the tailscale daemon runs as root, which makes me anxious. Is there anything else I can do to reduce the bast radius? 20:23:58 You could forced priv the tailscale daemon, if you knew the privs it really needs 20:24:13 danmcd: is nahum around, this sounds like something he'd enjoy? 20:24:32 richlowe: : thx, will look into it. 20:30:31 or, you could figure out what privs it needs in normal operation iteratively using ppriv -D 20:31:12 start it with a limited set, wait for it to trip on something, add it to the set, restart, and repeat until you've exercised all the functionality you expect to need. 20:32:20 yeah, that's the way for forced priv. I figured nahum might do it "properly" natively (nahum's the person who does the illumos tailscare and wireguard ports) 20:32:50 so better placed to drop for eg file_dac_read 21:51:50 danmcd: the kernel bits covered by third party open source licenses, like the pf code from OpenBSD, are included, just not the more interesting kernel bits 21:52:02 Makes sense. 21:57:30 it's still a big head start for someone who wanted to do the work, it's just not foolproof 21:57:36 as much as our build systems are ever foolproof 21:59:40 and there is more than you'd expect under directories like osnet/usr/src/uts/common/vm/ that still have ancient BSD heritage 22:00:03 but under osnet/usr/src/uts/common/fs/ you'll find ufs, not zfs 22:33:29 alanc: I'd want to be further understanding ours before even thinking of understanding yours 23:40:01 but our VM has such fun terms of art such as bread line, credits, wallets, and the fed reserve 23:40:35 though that's in the files we didn't release, since they didn't come from a BSD 23:41:35 so no source code for fed_redistribute_reserve() or fed_breadline_soupline_demand() 23:41:52 * alanc swears he is not an AI hallucination