[developer] Re: [openzfs/openzfs] 8115 parallel zfs mount (#451)
superseded by https://github.com/openzfs/openzfs/pull/536 -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/451#issuecomment-363602620 -- openzfs-developer Archives: https://openzfs.topicbox.com/groups/developer/discussions/T9677b1531a1e671d-M31beed56a716ea62e6ceb30c Powered by Topicbox: https://topicbox.com
[developer] Re: [openzfs/openzfs] 8115 parallel zfs mount (#451)
I plan to pick this up again next week. This needs to be rebased onto the latest master code, and the libzpool/taskq changes that landed recently. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/451#issuecomment-362011235 -- openzfs-developer Archives: https://openzfs.topicbox.com/groups/developer/discussions/T9677b1531a1e671d-Mce249c059dd3e486578de69d Powered by Topicbox: https://topicbox.com
[developer] Re: [openzfs/openzfs] 8115 parallel zfs mount (#451)
what is it status of this update? -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/451#issuecomment-362007731 -- openzfs-developer Archives: https://openzfs.topicbox.com/groups/developer/discussions/T9677b1531a1e671d-M078468b211776c0f5eb5e8f9 Powered by Topicbox: https://topicbox.com
[developer] Re: [openzfs/openzfs] 8115 parallel zfs mount (#451)
I spent the weekend reworking libzpool to use libfakekernel. Here's a summary of the changes: - libzpool is now built in fake-kernel context and uses the taskq API in libfakekernel. Most of the defines in zfs_context.h have been dropped in favour of included system header files. - libfakekernel now provides implementations of many of the functions that were previously being compiled into libzpool (see kernel.c). - mutex_enter/mutex_exit were renamed to kmutex_enter/kmutex_exit to avoid references binding again the versions in libc, which is early testing broke the boot. - libzfs is now built in fake-kernel context and uses the taskq API in libfakekernel. It was also changed to use the kernel mutex/condition API to match libzpool. - zdb, zinject, zhack, ztest all builds in fake-kernel context as well, since they are using zfs_context.h from libzpool and compiling in chunks of zfs kernel code. - various system headers were modified to expose more types/prototypes when _FAKE_KERNEL is defined, along with some missing includes being added to them. I want to stress that this is work in progress. I did make some pthread related changes which I think were a mistake, I'm going to clean that up before submitting this for a formal review. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/451#issuecomment-342123719 -- openzfs-developer Archives: https://openzfs.topicbox.com/groups/developer/discussions/T156a07b986390bdb-M56afaad0c2e4cdda370eaae6 Powered by Topicbox: https://topicbox.com
[developer] Re: [openzfs/openzfs] 8115 parallel zfs mount (#451)
@andy-js Thank you. I was hoping to get some time to focus on this, but I'm not sure I'll be able to in the short term. If you have time to open a PR that only makes libzfs and libzpool consumers of libfakekernel, and remove the current taskq implementation from libzpool, that'd be great. I appreciate the help moving this along. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/451#issuecomment-341204775 -- openzfs-developer Archives: https://openzfs.topicbox.com/groups/developer/discussions/T156a07b986390bdb-M3b5bc94a7d9b74cb26d616e1 Powered by Topicbox: https://topicbox.com
[developer] Re: [openzfs/openzfs] 8115 parallel zfs mount (#451)
Sounds good to me. I'll look at updating libzpool to use libfakekernel. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/451#issuecomment-341067822 -- openzfs-developer Archives: https://openzfs.topicbox.com/groups/developer/discussions/T156a07b986390bdb-M889839857dbd1ea2f42c7f72 Powered by Topicbox: https://topicbox.com
[developer] Re: [openzfs/openzfs] 8115 parallel zfs mount (#451)
I like where this is going. IMO, I think we should split the taskq changes out from this change (as suggested), do what's needed to get libzfs (and maybe libzpool also) using libfakekernel, and then apply what's left of this change on top of the taskq changes. This way, there's a clear separation between the taskq changes that shouldn't have any "external" impact to the CLI tools and/or library consumers (right?), and a separate patch to implement the actual "feature" of this change using the libfakekernel taskq implementation. @andy-js, you've pretty much done this already, so I presume you're on board with this; @gwr does this sound good to you too? -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/451#issuecomment-339746983 -- openzfs-developer Archives: https://openzfs.topicbox.com/groups/developer/discussions/T156a07b986390bdb-Medb47e02eb46800319c5dd85 Powered by Topicbox: https://topicbox.com
[developer] Re: [openzfs/openzfs] 8115 parallel zfs mount (#451)
Well that depends on whether or not they're pulling in both libzfs and libzpool. From what I can see most things (like the zfs and zpool commands) only pull in libzfs, so they should be okay. I have no problem with changing libzpool to use libfakekernel. I chose not to go down that route simply because I wanted to keep the diff small, but I think it's probably the right thing to do. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/451#issuecomment-339452066 -- openzfs-developer Archives: https://openzfs.topicbox.com/groups/developer/discussions/T156a07b986390bdb-M86515da545feb84ce7796e39 Powered by Topicbox: https://topicbox.com
[developer] Re: [openzfs/openzfs] 8115 parallel zfs mount (#451)
Andy, if you have this use libfakekernel, don't we end up with two taskq implementations in consumers of libzfs? (the second being the one in libzpool). -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/451#issuecomment-339431010 -- openzfs-developer Archives: https://openzfs.topicbox.com/groups/developer/discussions/T156a07b986390bdb-M1a827f89347c27c882638061 Powered by Topicbox: https://topicbox.com
[developer] Re: [openzfs/openzfs] 8115 parallel zfs mount (#451)
I took at stab at updating the changeset to use libfakekernel instead: http://cr.illumos.org/~webrev/andy_js/8115/ Apart from some weirdness with sys/cmn_err.h conflicting with stdio.h it was straightforward. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/451#issuecomment-339273640 -- openzfs-developer Archives: https://openzfs.topicbox.com/groups/developer/discussions/T156a07b986390bdb-Ma85b96a9e409e6f3ee2ff7b9 Powered by Topicbox: https://topicbox.com
[developer] Re: [openzfs/openzfs] 8115 parallel zfs mount (#451)
@prakashsurya Do you think it would make sense to split the changes to the VFS code out into a separate issue? -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/451#issuecomment-338986535 -- openzfs-developer Archives: https://openzfs.topicbox.com/groups/developer/discussions/T156a07b986390bdb-M0598a4b5aec45c7f7434672f Powered by Topicbox: https://topicbox.com
[developer] Re: [openzfs/openzfs] 8115 parallel zfs mount (#451)
You forgot to add a mapping for taskqid_t to sys/zfs_context.h. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/451#issuecomment-68160 -- openzfs-developer Archives: https://openzfs.topicbox.com/groups/developer/discussions/T156a07b986390bdb-M52cea0cc7edafe259a23d038 Powered by Topicbox: https://topicbox.com
[developer] Re: [openzfs/openzfs] 8115 parallel zfs mount (#451)
Looks like the build failed because of a network issue. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/451#issuecomment-333242633 -- openzfs-developer Archives: https://openzfs.topicbox.com/groups/developer/discussions/T156a07b986390bdb-Mcd0d67a4e49fbeaa0351f904 Powered by Topicbox: https://topicbox.com
[developer] Re: [openzfs/openzfs] 8115 parallel zfs mount (#451)
The automated testing wasn't picking up the prior PR for this change in #359, so I've re-opened that PR here so it can undergo the usual testing. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/451#issuecomment-325780951 -- openzfs-developer Archives: https://openzfs.topicbox.com/groups/developer/discussions/T156a07b986390bdb-M0b7017312403f55260e4be7d Powered by Topicbox: https://topicbox.com