Date: Thu, 23 Mar 2017 21:41:29 +0000 From: Steven Hartland <killing@multiplay.co.uk> To: freebsd-fs@freebsd.org Subject: Re: How to compile ZFS only ? Message-ID: <04ca6dc2-575b-dbc2-23aa-cb090049e482@multiplay.co.uk> In-Reply-To: <063443FC-BD04-4CD1-911F-F62918D8B390@gmail.com> References: <40633FF9-242F-48E1-8CE6-ADE4AC3C5C89@gmail.com> <4a7293c4-3a13-f865-bfb7-4d40581cfe3b@multiplay.co.uk> <34FDCEEF-99A8-4925-8BFA-BCB3CE0143D8@gmail.com> <CAGMYy3v6sfqOAwQUuW1%2Bupcc%2BKq_oZnZ92uV7MLKAsnf0JypRg@mail.gmail.com> <CAHEMsqYer4HFkA59RJ5DMY9Sjt1ZG5UmacV2uZJZetdTFkJhVg@mail.gmail.com> <063443FC-BD04-4CD1-911F-F62918D8B390@gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
When building are you building with -jXX where XX is the number of cores in your machine? If not then definitely do that on a dual E5 (24 cores) with our cut down kernel config (excludes devices / modules we never use) a full kernel build takes under 60 seconds. An example: make buildkernel KERNCONF=MULTIPLAY -j24 Regards Steve On 23/03/2017 19:22, Ben RUBSON wrote: > I'm not sure other modules are missing : my server correctly starts, I then only overwrite ZFS module (/boot/kernel/zfs.ko), I think it should then work. > But server hangs during startup, certainly because module compiled directly using make is different from the one built with make buildkernel (which works). > As says Xin below, some options from sys/*/conf/GENERIC may not be taken into account with the quick make method... > > I'll try to give the faulty module a try on a non-zfs root machine. > > The -DNO_CLEAN method is interesting if src tree has not been cleaned before :) > (I always do a make clean to leave the tree cleaned ^^) > > So sounds like there is no solution but trying to speed-up a whole kernel build. > > Thank you ! > > Ben > >> On 23 Mar 2017, at 00:51, Steven Hartland <killing@multiplay.co.uk> wrote: >> >> In addition to the main zfs module there are also dependency modules which are required. >> >> If you're able to test loading the module on a non-zfs root machine by manually loading it, it should detail any issues in /var/log/messages. >> >> That said the method listed by Xin is the quickest and easiest solution. >> >> On Wed, 22 Mar 2017 at 22:43, Xin LI <delphij@gmail.com <mailto:delphij@gmail.com>> wrote: >> Why not just -DNO_CLEAN= with 'make buildkernel'? >> >> But to answer your question, 'make buildkernel' will take e.g. >> 'KERNCONF' aka kernel build configuration into account, while if you >> do make directly, it's not (and sometimes build options in the kernel >> build configuration, like WITNESS, etc., have material impact to data >> structure layouts). >> >> On Wed, Mar 22, 2017 at 2:47 PM, Ben RUBSON <ben.rubson@gmail.com <mailto:ben.rubson@gmail.com>> wrote: >>> Thank you for your answer Steven. >>> Unfortunately it did not help, same behaviour : >>> Module with you method has the same smaller size, 2323000 bytes vs 2500544. >>> (I then did not try to boot with it) >>> >>> Ben >>> >>>> On 22 Mar 2017, at 22:09, Steven Hartland <killing@multiplay.co.uk <mailto:killing@multiplay.co.uk>> wrote: >>>> >>>> cd /usr/src >>>> make buildenv >>>> cd sys/modules/zfs/ >>>> make >>>> make install >>>> >>>> On 22/03/2017 20:57, Ben RUBSON wrote: >>>>> Hi, >>>>> >>>>> I'm trying to rebuild ZFS (with some patches) without having to rebuild whole kernel. >>>>> >>>>> What I then try : >>>>> # cd /usr/src/sys/modules/zfs/ >>>>> # make >>>>> # cp zfs.ko /boot/kernel/ #to replace current zfs module >>>>> >>>>> But then server does not reboot properly (/ is on ZFS). >>>>> >>>>> If I do : >>>>> # cd /usr/src/ >>>>> # make buildkernel KERNCONF=GENERIC >>>>> # cp /usr/obj/usr/src/sys/GENERIC/modules/usr/src/sys/modules/zfs/zfs.ko /boot/kernel/ >>>>> >>>>> Then server correctly reboot. >>>>> >>>>> I clearly see that zfs.ko in method 1 is slightly smaller that in method 2. >>>>> >>>>> Am I missing something ? (of course yes, but what ? :) >>>>> >>>>> Many thanks ! >>>>> >>>>> Best regards, >>>>> >>>>> Ben >>>>> >>>>> _______________________________________________ >>>>> freebsd-fs@freebsd.org <mailto:freebsd-fs@freebsd.org> mailing list >>>>> https://lists.freebsd.org/mailman/listinfo/freebsd-fs <https://lists.freebsd.org/mailman/listinfo/freebsd-fs> >>>>> To unsubscribe, send any mail to "freebsd-fs-unsubscribe@freebsd.org <mailto:freebsd-fs-unsubscribe@freebsd.org>" >>>> _______________________________________________ >>>> freebsd-fs@freebsd.org <mailto:freebsd-fs@freebsd.org> mailing list >>>> https://lists.freebsd.org/mailman/listinfo/freebsd-fs <https://lists.freebsd.org/mailman/listinfo/freebsd-fs> >>>> To unsubscribe, send any mail to "freebsd-fs-unsubscribe@freebsd.org <mailto:freebsd-fs-unsubscribe@freebsd.org>" >>> _______________________________________________ >>> freebsd-fs@freebsd.org <mailto:freebsd-fs@freebsd.org> mailing list >>> https://lists.freebsd.org/mailman/listinfo/freebsd-fs <https://lists.freebsd.org/mailman/listinfo/freebsd-fs> >>> To unsubscribe, send any mail to "freebsd-fs-unsubscribe@freebsd.org <mailto:freebsd-fs-unsubscribe@freebsd.org>" >> _______________________________________________ >> freebsd-fs@freebsd.org <mailto:freebsd-fs@freebsd.org> mailing list >> https://lists.freebsd.org/mailman/listinfo/freebsd-fs <https://lists.freebsd.org/mailman/listinfo/freebsd-fs> >> To unsubscribe, send any mail to "freebsd-fs-unsubscribe@freebsd.org <mailto:freebsd-fs-unsubscribe@freebsd.org>" > _______________________________________________ > freebsd-fs@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-fs > To unsubscribe, send any mail to "freebsd-fs-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?04ca6dc2-575b-dbc2-23aa-cb090049e482>