06:32:55 [illumos-gate] 15599 smb_opipe_transceive uses a lot of stack -- Gordon Ross 17:28:28 alanc: do you still have anything approaching a desktop on x86? 17:28:39 I can't remember what's disappeared 17:28:43 yes 17:28:59 do you know which vuid modules are useless now? 17:29:04 it feels like vuidm* 17:29:06 I'm typing this on a GNOME 41 desktop running on a Solaris x86 box 17:29:09 are probably all serias 17:29:14 serials 17:29:28 but I have a deep and abiding suspicion of shit that may lurk in laptops and whatever. 17:29:46 so maybe they have users, but also maybe vuidps2 is useless too 17:30:53 yeah, we still ship vuid2ps2, vuid3ps2, vuidm3p, vuidm4p, & vuidm5p, but I suspect that's because no one has put in the time to figure out which are still relevant in an x64-only world 17:31:04 ah, not just me then :) 17:31:56 at one point, laptops used PS/2 for the builtin keyboard & trackpad/pointer device, even if they had no external PS/2 ports, but that may have gone away with legacy BIOS support? 17:33:00 the serial bus mice modules seem even more likely to be irrelevant in this millenium, but hard to tell without doing a "drop them and see who screams" test 19:31:55 [illumos-gate] 15714 stmf: the comparison will always evaluate as 'true' -- Toomas Soome 19:32:44 alanc: I think I removed most of the support for our serial mice already, but not all of it 19:32:55 unfortunately, vuidmice(4D) is from the past 19:33:07 it strongly implies they're all useless, but also uses the wrong device names in general to do it. 20:12:29 what IS_P2ALIGNED() (that is described as checking address alignment) checks exactly when used on non-addresses? e.g. ASSERT(IS_P2ALIGNED(len, pgsz)), where len is size_t 20:15:17 #define IS_P2ALIGNED(v, a) ((((uintptr_t)(v)) & ((uintptr_t)(a) - 1)) == 0) 20:15:29 the same thing that it does to the numeric value of a pointer 20:16:19 IS_P2ALIGNED(sizeof(foo), 1024) -> is sizeof(foo) a multiple of 1024 20:16:29 only works if the 2nd arg is a power of two. 20:16:48 got it, thanks (making sure i understood it correctly) 20:19:54 (2^N) - 1 represented in binary is N-1 consecutive 1 bits, so, assuming a is a power of 2, (v & (a-1)) will be zero only if the (n-1) low order bits of v are all zero. 20:20:52 yep, thanks, i somehow misunderstood what P2 means exactly here and was confused by comment above 20:21:06 now it is all obvious :) 20:21:22 yes, this is all about avoiding integer division. 20:47:59 asking as i saw this: Assertion failed: IS_P2ALIGNED(udpEntrySize, sizeof (mib2_udpEntry_t *)), file netstat.c, line 2257, function mib_get_constants 20:48:10 when netstat is built without -DNDEBUG 20:52:54 and it seems to be a regression, does not do this on somewhat older codebase (now to find what exactly broke it) 21:04:16 hard to believe we're about to hit 18 years of blaming stevel for all the bugs in code like this that still bears his name: https://github.com/illumos/illumos-gate/blob/master/usr/src/stand/lib/sa/malloc.c 21:08:25 It is neat how malloc() tracks the size of allocations by overallocating to store the size right before the allocation. I recall catching a free() last year that returned a pointer offset into the allocation to free(). I can see now that was a real bug, rather than just a hypothetical one. 21:08:58 That is unless there is some other malloc() in the codebase that does things differently. 21:09:15 yuripv, sommerfeld: we have had issues with typo promotion in those macros 21:09:19 uh, type promotion 21:09:20 what a day 21:09:32 ryao: there's like a million different mallocs that do things 21:09:36 as alanc can tell you :) 21:10:10 yuripv: so if you're debugging it seeming to give surprising results, consider the widths of your types. 21:10:26 hayashi fixed it with typeof() magic I think looks good, but was hoping rmustacc or someone standards smart would confirm for me. 21:10:39 I fixed the one that was most problematic with a cast and a sweary comment. 21:10:51 While we are reminiscing, I saw an old Sun promotional video last night that referred to Sun's data centers as ranches. Did that terminology persist until the Oracle acquisition? 21:12:56 we had a "compute ranch" well after the acquistion - there's still some remnants of it in "CR" abbreviations in various things 21:14:09 richlowe: now i'm just trying to find why it worked previously and doesn't now 21:14:43 (have that netstat code reused and it suddenly started hitting that assertion on new illumos codebase) 21:14:46 * nomad used to work on 'the farm' at IBM research. 21:14:57 It's what became the SP2. 21:15:33 a bunch of RS-6000s being managed by shell scripts and rsync, complete with batch system. 21:15:55 yuripv: look at types and signedness, I don't think the macro change relevantly 21:15:59 That would have been 1991-92ish. 21:16:11 but also I'm very paranoid about that, because debugging it was hellish 21:16:17 It is a shame that Oracle outbid IBM for Sun. Things would have been better under IBM ownership. 21:16:33 until I realized the wrong value was precisely the bitwise-opposite of the correct one, and it had gone negative 21:16:36 One more thing about the past, why did Sun Grid fail while AWS succeeded? 21:16:43 i was one told (by an ex-IBMer) the difference between a desktop, server, and SP2 node was the orientation of the case :) 21:16:51 another instance of Sun doing almost the right thing a decade too soon, and then neglecting it 21:16:57 see also thin clients, and various other stuff. 21:17:28 thin clients a decade too late _and_ a decade too soon 21:17:42 you can argue about when "then network is the computer" became both true, and also a good thing. 21:18:02 jbk, sounds about right. 21:18:12 oh, also blade systems 21:18:18 but I don't know if Sun did that early, or just neglectfully 21:18:23 also, SP2 nodes are in coffins, to differentiate them from servers and workstations. 21:18:35 yes i remember those 21:19:07 sprint had (at the time) a fairly large SP2 cluster for their CDR archive.. which was two doors down from my cubicle 21:19:24 had to power that up after a contractor mistook the covered EPO switch for the light switch 21:19:29 well a group of us 21:19:35 I feel like phone companies and those interacting with them have kept a lot of weird shit alive, over the years. 21:19:42 for better or worse 21:20:02 the same contractor was then caught standing on top of one of the disk cabinets for it 21:20:16 jbk: I once heard about some guys in a datacenter throwing empty boxes in a space right next to where they had the big red button. One day, a box hit the button. 21:20:17 (also those put out enough heat to warp the floor tiles in front of it) 21:20:38 jbk, we had that happen at IBM Research's server room. 21:20:47 The mainframes took hours/days to come back online. 21:20:58 We waltez in, hit the power buttons on the RS-6000s and waltzed back out. 21:20:58 we got pretty good at swapping out disks on that though 21:21:03 They ... were not happy with us. 21:21:05 because they were from a bad batch 21:21:17 so we had 2-3 fail per day, every day, for like 18 months 21:21:21 I remember Solaris 10 being somewhat slow to boot. I guess that was fast compared to a main frame. 21:21:41 you mean IPL :) 21:21:50 yay, someone else who knows about IPL! 21:22:01 solaris 10 was very fast to boot if you have no hardware 21:22:06 the zones people did a lot of work there 21:22:07 * nomad still talks about DASD :) 21:22:09 and the SMF people 21:22:19 if you _do_ have hardware, you're at its mercy 21:22:32 heh.. the guy that ran the datacenters always called the storage DASD :) 21:22:57 we also had an S/390 that you would get _very_ harshly chastized by directors and VPs if you called it a mainframe 21:23:04 This might explain why Sun Grid failed... these restrictions basically meant you needed Sun hardware locally to use it: https://en.wikipedia.org/wiki/Sun_Cloud#Suitable_applications 21:23:28 jbk: Why is it not a main frame? 21:23:42 because the 'not a mainframe' was running unix system services 21:23:45 I was comparing SGE to condor for $job[0] when they changed the rules for SGE so we couldn't use it. 21:24:01 S/390 is a mainframe, don't care what OS it's running. 21:24:06 Most of AWS' customers never had Sun hardware. In fact, many of them likely have Wintel machines... 21:24:18 Sheehs, that's the whole point of the VM layer they invented in the 70s. 21:24:26 yes, but teh CIO at the time had declared they woudl only use 'open systems' (i.e. no mainframes).... probably because of the cost 21:24:35 so no one was allowed to call it that :) 21:24:40 ah, got it. 21:24:46 No making mainframes into open systems? 21:24:50 so we just called it the 'not a mainframe' 21:25:15 the code for the s/390 opensolaris is still around 21:25:19 though obviously as out of date as that implies 21:25:42 I had no idea OpenSolaris ran on the s/390. 21:25:49 that's news to me as well. 21:26:02 the 'not a mainframe' ran the code that was basically a giant, single RPC hub between every single IT system 21:26:09 I thought it was a SPARC/x86 exclusive. Is the m68k code still around too? 21:26:22 Closest I ever got to a "mainframe running Solaris" was the E10K (am I remembering that right) that I managed to dodge responsibility for. 21:26:30 S/390 never integrated to the mainstream codebase, was always a seperate porting project 21:27:05 eventually it was migrated to an HP superdome (I.e. their 'oh shit' clone of an E10k :P) 21:27:09 I think there's a few m68k #ifdef's that never got fully deleted, but the bulk of that code, like the 32-bit SPARC code, was never released 21:27:13 Sine Nomine Associates ported it to S/390 21:27:43 That is an odd name. :P 21:28:04 Illumos runs on ARM, RISC-V and Alpha too now 21:28:26 Although I'm not sure everything has been integrated yet 21:28:42 https://en.wikipedia.org/wiki/OpenSolaris_for_System_z 21:28:48 Awesome. I did not realize it had gained support for other architectures... wait, how did porting to Alpha work considering that the barriers in the code were never designed for Alpha's memory model. 21:29:22 I didn't think anything but x64 was in the illumos gate today (well, and the SPARC remnants in the process of being deleted) 21:29:32 be cool to see something on RISC-V. I've been wanting to play with that. 21:29:41 Is SPARC support being removed? 21:29:53 nothing except x86 today 21:30:00 When did that happen? 21:30:02 arm is making pretty ok progress 21:30:19 riscv needs someone to do what we've been doing for arm, but for riscv 21:30:34 It's been a few months to years i think, ryao 21:30:44 RISC-V hardware is less than ideal and QEMU's RISC-V emulation is buggy. :/ 21:31:11 https://github.com/illumos/ipd/blob/master/ipd/0019/README.md - "Sunset SPARC" 21:31:11 → IPD 19: Sunset SPARC (published) 21:31:13 I can hope. I just don't think my skin tone being blue would be attractive. 21:31:17 You can, if you want, fork the project and port back to SPARC. I know I would like to - and never will 21:31:41 /nick notadev 21:31:49 Some information on the qemu bug: https://github.com/seL4/seL4/commit/d11179e3f095f80243653fdff99a8e8ac6b7f002 21:32:03 easier to just use the out-of-tree SPARC support being maintained by Tribblix & OI than to re-do the port yourself 21:32:04 jbk: unix mainframe hours xd 21:32:17 wait what 21:32:38 Tribblix runs on SPARC, just from the last commit that built out of the box. 21:33:13 I ought to add a few more recent commits, but there's little current work that's at all relevant for SPARC. 21:33:20 Klaus and Peter are both (together?) (separately?) working on SPARC-ing 21:33:35 Hopefully they pick up the cross stuff we did for arm, etc. 21:33:55 fenix: IPD40 21:33:56 IPD 40: Cross compilation for illumos (draft) 21:33:56 ↳ https://github.com/illumos/ipd/tree/master/ipd/0040/README.md 21:34:04 so someone still has a fire alight for it, it's just not on mainline anymore 21:34:06 neat 21:34:18 I'm treating it as frozen for the moment; Klaus is more interested in keeping current. 21:34:28 yeah, nobody is against it coming back even, if it comes back in a way that's maintainable 21:34:33 that's why the cross-build stuff etc is important. 21:37:31 IPD 19 mentions that removing SPARC support would enable the use of Rust. That is a bit odd to me, since illumos SPARC support is listed here: https://doc.rust-lang.org/rustc/platform-support.html 21:38:17 Why was the compiler stuck at GCC 4.4.4 for SPARC? 21:39:24 https://www.illumos.org/issues/2757 21:39:25 → BUG 2757: 32bit sparc direct system calls should not rely on compiler mannerisms (In Progress) 21:39:54 Is the SPARC support for newer machines current? 21:40:35 I think only OpenBSD has support for the newer machines apart from Solaris 11 21:40:52 there is no sparc for newer machines 21:41:09 I think someone or other booted it as naked sun4v, but anything beyond that isn't there 21:41:26 nobody has them, the people who do have them haven't had time. 21:41:47 We don't have support for hardware released after the gate was closed. So T4 works (and works well) but nothing newer. 21:42:14 the naming of the gate as the gate is oddly poetic in this case 21:42:25 the naming of the gate as the gate is deeply historic 21:42:37 i am well aware 21:42:44 if the old TeamWare white paper is still around, it describes what the ON group stopped doing anymore because it sucked 21:42:55 I am not aware. 21:42:56 it the mid 90s 21:44:19 I was intrigued to find that we shipped the ddi_dma_set_sbus64.9f manual on x86 21:44:34 I mean, SBus? On x86? 21:44:57 And it's not just the man page, the function is even implemented. 21:46:03 was there maybe some prototype x86 system w/ sbus that made it to market? 21:46:29 And the emlxs driver uses it, which is probably something that can be cleaned up. 21:46:56 https://www.dcs.ed.ac.uk/home/SUNWspro/3.0/teamware/solutions_guide/casestudy.doc.html#399 21:47:35 I presume emlxs just didn't bother to hide that code behind #ifdef sparc 21:53:46 I don't know when the per-group gates went away and everyone just started integrating to the central gate for the release - before my time (except for specific project gates for large team projects) 21:54:27 alanc: that's the change over bonwick is referring to in the Quality Death Spiral document 21:54:30 re: "no more gate merges" 21:54:41 ah, right 22:01:01 best EPO accident I remember witnessing was at MIT in the mid-80's. electrician reportedly dropped a ladder on the EPO button. and then they discovered that something had been miswired in the EPO system and they couldn't turn power back on right away-- they spent a good long time with the front cover of the breaker panel off before the machine room had power again... 22:02:14 at least the electrician was quick to respond to the service call. 22:02:48 I slightly mis-remembered the one at research. He wasn't looking for the light switch but the 'push here to unlock the door' button. 22:02:56 the one that was *very clearly* labeled. 22:03:49 No, they had to call in better electricians to fix it. 22:03:58 "Isn 22:04:05 "Isn't it ironic, don't you think?" 22:58:32 and yes, the usr/src/stand/lib/sa/malloc.c I pointed to earlier is a very simplified malloc for standalone code (i.e. not userspace or full kernel), so does things differently than the 8 other malloc implementations in the gate (well, in our gate, I've not counted in illumos') 22:59:58 and it has at least one bug the others don't 23:02:37 two if you count the claim to follow malloc(3c) since passing a size of 0 to realloc() doesn't just free the existing buffer, but that's not something sane code should be doing 23:10:44 Who is working on the RISC-V port? 23:11:41 I want to suggest trying to get it running on a FPGA RISC-V softcore like this guy did with Linux: https://github.com/litex-hub/linux-on-litex-vexriscv 23:14:29 I have my fingers crossed that open source hardware will let us get fully open source computers in the future. This just needs display hardware and then it could be fabricated for free through Google to produce a fully open source machine: https://github.com/enjoy-digital/litex https://developers.google.com/silicon 23:14:55 I guess there is a bit more that would be needed, like PCB designs and some other components, but it is just a thought that has been on my mind as of late. 23:16:19 If this piques anyone's interest, there are some higher end open source RISC-V core designs here that could probably be added to LiteX to get something more performant than the current selection of cores: https://github.com/T-head-Semi 23:17:01 And an open source display port implementation: https://github.com/hamsternz/DisplayPort_Verilog