Date: Thu, 23 Mar 2017 22:48:48 +0100 From: Ben RUBSON <ben.rubson@gmail.com> To: Freebsd fs <freebsd-fs@freebsd.org> Subject: Re: How to compile ZFS only ? Message-ID: <9C904469-E0AA-4110-99E5-6BB9049BAD94@gmail.com> In-Reply-To: <04ca6dc2-575b-dbc2-23aa-cb090049e482@multiplay.co.uk> 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> <04ca6dc2-575b-dbc2-23aa-cb090049e482@multiplay.co.uk>
next in thread | previous in thread | raw e-mail | index | archive | help
Yes I also build with -j24 on these servers, dual E5 too :) Goal was to keep default kernel (which is OK for my needs), and only = modify/recompile zfs module. I felt I was doing something "huge" / "enormous" recompiling whole = kernel whereas I just need to modify one module. Ben > On 23 Mar 2017, at 22:41, Steven Hartland <killing@multiplay.co.uk> = wrote: >=20 > When building are you building with -jXX where XX is the number of = cores in your machine? >=20 > 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. >=20 > An example: > make buildkernel KERNCONF=3DMULTIPLAY -j24 >=20 > Regards > Steve >=20 > 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... >>=20 >> I'll try to give the faulty module a try on a non-zfs root machine. >>=20 >> 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 ^^) >>=20 >> So sounds like there is no solution but trying to speed-up a whole = kernel build. >>=20 >> Thank you ! >>=20 >> Ben >>=20 >>> On 23 Mar 2017, at 00:51, Steven Hartland <killing@multiplay.co.uk> = wrote: >>>=20 >>> In addition to the main zfs module there are also dependency modules = which are required. >>>=20 >>> 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. >>>=20 >>> That said the method listed by Xin is the quickest and easiest = solution. >>>=20 >>> On Wed, 22 Mar 2017 at 22:43, Xin LI <delphij@gmail.com = <mailto:delphij@gmail.com>> wrote: >>> Why not just -DNO_CLEAN=3D with 'make buildkernel'? >>>=20 >>> 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). >>>=20 >>> 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) >>>>=20 >>>> Ben >>>>=20 >>>>> On 22 Mar 2017, at 22:09, Steven Hartland <killing@multiplay.co.uk = <mailto:killing@multiplay.co.uk>> wrote: >>>>>=20 >>>>> cd /usr/src >>>>> make buildenv >>>>> cd sys/modules/zfs/ >>>>> make >>>>> make install >>>>>=20 >>>>> On 22/03/2017 20:57, Ben RUBSON wrote: >>>>>> Hi, >>>>>>=20 >>>>>> I'm trying to rebuild ZFS (with some patches) without having to = rebuild whole kernel. >>>>>>=20 >>>>>> What I then try : >>>>>> # cd /usr/src/sys/modules/zfs/ >>>>>> # make >>>>>> # cp zfs.ko /boot/kernel/ #to replace current zfs module >>>>>>=20 >>>>>> But then server does not reboot properly (/ is on ZFS). >>>>>>=20 >>>>>> If I do : >>>>>> # cd /usr/src/ >>>>>> # make buildkernel KERNCONF=3DGENERIC >>>>>> # cp = /usr/obj/usr/src/sys/GENERIC/modules/usr/src/sys/modules/zfs/zfs.ko = /boot/kernel/ >>>>>>=20 >>>>>> Then server correctly reboot. >>>>>>=20 >>>>>> I clearly see that zfs.ko in method 1 is slightly smaller that in = method 2. >>>>>>=20 >>>>>> Am I missing something ? (of course yes, but what ? :) >>>>>>=20 >>>>>> Many thanks ! >>>>>>=20 >>>>>> Best regards, >>>>>>=20 >>>>>> Ben >>>>>>=20 >>>>>> _______________________________________________ >>>>>> 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" >=20 > _______________________________________________ > 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?9C904469-E0AA-4110-99E5-6BB9049BAD94>