03:33:31 If I want to use `mdb -k` to walk through all the doors on a system... am I gonna have to write a walker for doors? 03:34:25 Not that I want to, necessarily, just trying to make sure I understand how mdb works. Like, each resource that can be walked has a separate walker function defined? 03:38:25 Or maybe there is a better way for me to achieve this: I thought it might be interesting to see, for a given door, what all processes have an open descriptor for it (since that descriptor could have been passed through other means that an open(2) call) 03:38:58 for no other purpose than I am trying to learn mdb and that seemed like something mdb would be good at 04:56:59 robertdfrench: The way I generally think about and try to answer that question is based on what the underlying implementation is and how it's structured. 04:57:20 So a lot of this comes down to how is this structured in the kernel and how do doors exist and are managed. 04:58:11 Let me try to put together a few other examples in terms of how I think about it. For example, every datalink has a mac_impl_t that corresponds to it. Those are allocated from a kmem cache so there's an automatic walker for them. 04:58:51 If I want to find all of say the nvme driver instances and their state, I know that it uses a ddi_soft_state_t called nvme_state. So I can do a '*nvme_state::walk softstate'. 05:00:56 Now, when it comes to doors things here are a little different because there's no canonical global state for them because they're implemented through the doorfs file system. So while you use a system call to create it, the actual door data is stored in a given vnode's v_data. 05:03:13 So I think really the first answer to question of how would you do it in mdb is to first ask how would you answer that question with the existing kernel's data structures. 05:04:09 But to talk examples of this, the ::dcmds and ::walkers commands print all the walkers and dcmds that exist (95%+ are all just plugins). 05:05:28 But as a simple starting point take a look at '::walk proc | ::pfiles'. And then '::walk proc | ::pfiles ! grep -i door' 11:03:07 ok so one issue with using native strip is that it breaks rust .rlib which are just archives, presumably other folks are just excluding those? 18:37:20 jperkin: I assume because it chucks out the metadata stuff they stick in there? 18:38:07 It would probably be good to file a ticket if we're doing something wrong there 20:01:00 tsoome: I'm putting illumos#15105 up for RTI, let me know if you don't want to be listed as a reviewer; the delta from when you last looked is, I think, https://code.illumos.org/c/illumos-gate/+/2566/3..9 20:01:01 → CODE REVIEW 2566: 15105 ilstr should be usable outside boot banner code (NEW) | https://www.illumos.org/issues/15105 20:27:10 [illumos-gate] 15874 libshare: clean up warning suppressors -- Toomas Soome 20:27:57 jclulow it is in my queue:) just cleaning up some first 20:28:10 tah 22:03:44 jperkin: it would be good to file a bug about what's happening there, ideally so we can learn what we're removing that is important. 22:03:57 jperkin: whether strip -x breaks, as well as strip, too 22:41:37 [illumos-gate] 15105 ilstr should be usable outside boot banner code -- Joshua M. Clulow