* Fast LKM symbol resolution with SysV ELH hash table @ 2009-10-18 8:09 Carmelo Amoroso 2009-10-18 12:44 ` Alan Jenkins 0 siblings, 1 reply; 13+ messages in thread From: Carmelo Amoroso @ 2009-10-18 8:09 UTC (permalink / raw) To: Linux Kernel Mailing List Hi, I'm just sending this message to report about a work I've recently done to speed-up symbol resolution for modules by using a SysV ELF hash table (without relying upon binutils support). This work has been presented few days ago at the Embedded Linux Conference Europe. Patches are already publicly available for 2.6.23 kernel @STLinux git (http://git.stlinux.com/?p=stm/linux-sh4-2.6.23.y.git;a=summary) For 2.6.30 already ported but not yet available. Benchmarks have shown an average reduction of 96% in time spent for symbol resolution (that is 25x faster). All details can be found at http://tree.celinuxforum.org/CelfPubWiki/ELCEurope2009Presentations?action=AttachFile&do=view&target=C_AMOROSO_Fast_lkm_loader_ELC-E_2009.pdf I'm working to update them to mainline and post for review and discussion. We are also working right now to update this work too to use GNU hash instead of SysV ELF hash Carmelo ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Fast LKM symbol resolution with SysV ELH hash table 2009-10-18 8:09 Fast LKM symbol resolution with SysV ELH hash table Carmelo Amoroso @ 2009-10-18 12:44 ` Alan Jenkins 2009-10-18 16:43 ` Alan Jenkins 2009-10-18 21:47 ` Greg KH 0 siblings, 2 replies; 13+ messages in thread From: Alan Jenkins @ 2009-10-18 12:44 UTC (permalink / raw) To: carmelo73; +Cc: Linux Kernel Mailing List, Rusty Russell, linux-kbuild On 10/18/09, Carmelo Amoroso <carmelo73@gmail.com> wrote: > Hi, > I'm just sending this message to report about a work I've recently done > to speed-up symbol resolution for modules by using a SysV ELF hash table > (without relying upon binutils support). > This work has been presented few days ago at the Embedded Linux Conference > Europe. > > Patches are already publicly available for 2.6.23 kernel @STLinux git > (http://git.stlinux.com/?p=stm/linux-sh4-2.6.23.y.git;a=summary) > > For 2.6.30 already ported but not yet available. > > Benchmarks have shown an average reduction of 96% in time spent for symbol > resolution > (that is 25x faster). > > All details can be found at > http://tree.celinuxforum.org/CelfPubWiki/ELCEurope2009Presentations?action=AttachFile&do=view&target=C_AMOROSO_Fast_lkm_loader_ELC-E_2009.pdf > > I'm working to update them to mainline and post for review and discussion. > We are also working right now to update this work too to use GNU hash > instead of SysV ELF hash Hi! I found this very interesting. I recently posted a prototype to use binary search to optimize symbol lookup[1]. I guess it's unlikely for more than one such optimization to be merged into mainline :). The nice thing about binary search is that it doesn't require increased memory structures. You just have to sort the existing tables (although it's easier said than done). Anyway, this means I didn't have to worry about making it optional, or being accused of bloat. I also managed to patch into the existing modpost run, instead of adding another intermediate build step. --- We should certainly expect hash tables to be faster. Strictly speaking our numbers are incomparable, because your test machine is a bit different to my x86 netbook :). I didn't even report the same numbers. That said, I have some saved "perf report" output, and it _looks_ like using bsearch cut down find_symbol()+strcmp() by 96% <grin>. If look at the total savings hash tables made in your slides, I actually get 98%. I guess either the analysis was conservative or there were more modules which were omitted for brevity. --- Hypothetically: imagine we both finish our work and testing on the same machine shows hash tables saving 100% and bsearch saving 90%. In absolute terms, hash tables might have an advantage of 0.03s on my system (where bsearch saved 0.3s), and a total advantage of 0.015s for the modules you tested (where hash tables saved ~0.15s). Would you accept bsearch in this case? Or would you feel that the performance of hash tables outweighed the extra memory requirements? (This leaves the question of why you need to load 0.015s worth of always-needed in-tree kernel code as modules. For those who haven't read the slides, the reasoning is that built-in code would take _longer_ to load. The boot-loader is often slower at IO, and it doesn't allow other initialization to occur in parallel). Warm regards Alan --- [1] My bsearch prototype has several undisclosed problems which I'm working on. If you're curious you can find the patches by searching "from:alan-jenkins@tuffmail.co.uk to:Rusty". At the moment the series is blocked on ARM. I want to kill EXPORT_SYMBOL_ALIAS in armksyms.c, because it breaks some simplifying assumptions I was relying on. The protoype also limits the optimization to built-in symbols to avoid extra modpost overhead. However, this is an orthogonal decision - it should not be hard to change if desired. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Fast LKM symbol resolution with SysV ELH hash table 2009-10-18 12:44 ` Alan Jenkins @ 2009-10-18 16:43 ` Alan Jenkins 2009-10-18 21:47 ` Greg KH 1 sibling, 0 replies; 13+ messages in thread From: Alan Jenkins @ 2009-10-18 16:43 UTC (permalink / raw) To: carmelo73; +Cc: Linux Kernel Mailing List, Rusty Russell, linux-kbuild On 10/18/09, Alan Jenkins <sourcejedi.lkml@googlemail.com> wrote: > On 10/18/09, Carmelo Amoroso <carmelo73@gmail.com> wrote: >> Hi, >> I'm just sending this message to report about a work I've recently done >> to speed-up symbol resolution for modules by using a SysV ELF hash table >> (without relying upon binutils support). >> This work has been presented few days ago at the Embedded Linux >> Conference >> Europe. >> >> Patches are already publicly available for 2.6.23 kernel @STLinux git >> (http://git.stlinux.com/?p=stm/linux-sh4-2.6.23.y.git;a=summary) >> >> For 2.6.30 already ported but not yet available. >> >> Benchmarks have shown an average reduction of 96% in time spent for >> symbol >> resolution >> (that is 25x faster). >> >> All details can be found at >> http://tree.celinuxforum.org/CelfPubWiki/ELCEurope2009Presentations?action=AttachFile&do=view&target=C_AMOROSO_Fast_lkm_loader_ELC-E_2009.pdf >> >> I'm working to update them to mainline and post for review and >> discussion. >> We are also working right now to update this work too to use GNU hash >> instead of SysV ELF hash > > Hi! > > I found this very interesting. I recently posted a prototype to use > binary search to optimize symbol lookup[1]. I guess it's unlikely for > more than one such optimization to be merged into mainline :). > > The nice thing about binary search is that it doesn't require > increased memory structures. You just have to sort the existing > tables (although it's easier said than done). Anyway, this means I > didn't have to worry about making it optional, or being accused of > bloat. I also managed to patch into the existing modpost run, instead > of adding another intermediate build step. > > --- > We should certainly expect hash tables to be faster. Strictly > speaking our numbers are incomparable, because your test machine is a > bit different to my x86 netbook :). I didn't even report the same > numbers. That said, I have some saved "perf report" output, and it > _looks_ like using bsearch cut down find_symbol()+strcmp() by 96% > <grin>. > > If look at the total savings hash tables made in your slides, I > actually get 98%. I guess either the analysis was conservative or > there were more modules which were omitted for brevity. > --- > > Hypothetically: imagine we both finish our work and testing on the > same machine shows hash tables saving 100% and bsearch saving 90%. In > absolute terms, hash tables might have an advantage of 0.03s on my > system (where bsearch saved 0.3s), and a total advantage of 0.015s for > the modules you tested (where hash tables saved ~0.15s). > > Would you accept bsearch in this case? Or would you feel that the > performance of hash tables outweighed the extra memory requirements? > > (This leaves the question of why you need to load 0.015s worth of > always-needed in-tree kernel code as modules. For those who haven't > read the slides, the reasoning is that built-in code would take > _longer_ to load. The boot-loader is often slower at IO, and it > doesn't allow other initialization to occur in parallel). > > Warm regards > Alan > > --- > [1] My bsearch prototype has several undisclosed problems which I'm > working on. So here's a dump of my current state. It fixes the known issues (some ugliness is still marked as TODO). Boot-tested for i386 only; it should also build for ARM. <http://github.com/sourcejedi/linux-2.6/commits/module-V2-alpha1> It's definitely supposed to be cross-platform, so if you do try it and fail then I'd be very interested to hear that. Even if all you say is "idiot, it doesn't work, why haven't you tested it in qemu yet" :-). > At the moment the series > is blocked on ARM. I want to kill EXPORT_SYMBOL_ALIAS in armksyms.c, > because it breaks some simplifying assumptions I was relying on. > > The protoype also limits the optimization to built-in symbols to avoid > extra modpost overhead. However, this is an orthogonal decision - it > should not be hard to change if desired. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Fast LKM symbol resolution with SysV ELH hash table 2009-10-18 12:44 ` Alan Jenkins 2009-10-18 16:43 ` Alan Jenkins @ 2009-10-18 21:47 ` Greg KH 2009-10-19 0:01 ` Alan Jenkins 2009-10-19 11:45 ` Carmelo Amoroso 1 sibling, 2 replies; 13+ messages in thread From: Greg KH @ 2009-10-18 21:47 UTC (permalink / raw) To: Alan Jenkins Cc: carmelo73, Linux Kernel Mailing List, Rusty Russell, linux-kbuild On Sun, Oct 18, 2009 at 01:44:04PM +0100, Alan Jenkins wrote: > Hypothetically: imagine we both finish our work and testing on the > same machine shows hash tables saving 100% and bsearch saving 90%. In > absolute terms, hash tables might have an advantage of 0.03s on my > system (where bsearch saved 0.3s), and a total advantage of 0.015s for > the modules you tested (where hash tables saved ~0.15s). > > Would you accept bsearch in this case? Or would you feel that the > performance of hash tables outweighed the extra memory requirements? The performance difference in "raw" time speed might be much different on embedded platforms with slower processors, so it might be worth the tiny complexity to get that much noticed speed. > (This leaves the question of why you need to load 0.015s worth of > always-needed in-tree kernel code as modules. For those who haven't > read the slides, the reasoning is that built-in code would take > _longer_ to load. The boot-loader is often slower at IO, and it > doesn't allow other initialization to occur in parallel). Distros are forced to build almost everything as modules. I've played with building some modules into the kernel directly (see the openSUSE moblin kernels for examples of that), but when you have to suport a much larger range of hardware types and features that some users use and others don't, and the ability to override specific drivers by others due to manufacturer requests for specific updates, the need to keep things as modules is the only way to solve the problem. So I'm glad to see this speedup happen, very nice work everyone. thanks, greg k-h ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Fast LKM symbol resolution with SysV ELH hash table 2009-10-18 21:47 ` Greg KH @ 2009-10-19 0:01 ` Alan Jenkins 2009-10-19 11:45 ` Carmelo Amoroso 1 sibling, 0 replies; 13+ messages in thread From: Alan Jenkins @ 2009-10-19 0:01 UTC (permalink / raw) To: Greg KH; +Cc: carmelo73, Linux Kernel Mailing List, Rusty Russell, linux-kbuild On 10/18/09, Greg KH <greg@kroah.com> wrote: > On Sun, Oct 18, 2009 at 01:44:04PM +0100, Alan Jenkins wrote: >> Hypothetically: imagine we both finish our work and testing on the >> same machine shows hash tables saving 100% and bsearch saving 90%. In >> absolute terms, hash tables might have an advantage of 0.03s on my >> system (where bsearch saved 0.3s), and a total advantage of 0.015s for >> the modules you tested (where hash tables saved ~0.15s). >> >> Would you accept bsearch in this case? Or would you feel that the >> performance of hash tables outweighed the extra memory requirements? > > The performance difference in "raw" time speed might be much different > on embedded platforms with slower processors, so it might be worth the > tiny complexity to get that much noticed speed. > >> (This leaves the question of why you need to load 0.015s worth of >> always-needed in-tree kernel code as modules. For those who haven't >> read the slides, the reasoning is that built-in code would take >> _longer_ to load. The boot-loader is often slower at IO, and it >> doesn't allow other initialization to occur in parallel). > > Distros are forced to build almost everything as modules. I've played > with building some modules into the kernel directly (see the openSUSE > moblin kernels for examples of that), but when you have to suport a much > larger range of hardware types and features that some users use and > others don't, and the ability to override specific drivers by others due > to manufacturer requests for specific updates, the need to keep things > as modules is the only way to solve the problem. Those are all good reasons. They're just not the reasons for loading usbcore as a module on a 266Mhz processor as shown in the slides. That module accounted for 84ms out of the 145ms total (without the optimisation). So I feel obliged to stipulate this specific reasoning before quoting the numbers on the slide. > So I'm glad to see this speedup happen, very nice work everyone. > > thanks, > > greg k-h > I neglected to say that in the first place, but let me second it. It's great to see this work from STLinux being proposed for inclusion in mainline. If all my work does is serve as a baseline for some even better numbers - I can survive that :). My netbook will still boot 0.3s faster :). Alan ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Fast LKM symbol resolution with SysV ELH hash table 2009-10-18 21:47 ` Greg KH 2009-10-19 0:01 ` Alan Jenkins @ 2009-10-19 11:45 ` Carmelo Amoroso 2009-10-19 13:22 ` Greg KH 1 sibling, 1 reply; 13+ messages in thread From: Carmelo Amoroso @ 2009-10-19 11:45 UTC (permalink / raw) To: Greg KH Cc: Alan Jenkins, Linux Kernel Mailing List, Rusty Russell, linux-kbuild 2009/10/18 Greg KH <greg@kroah.com>: > On Sun, Oct 18, 2009 at 01:44:04PM +0100, Alan Jenkins wrote: >> Hypothetically: imagine we both finish our work and testing on the >> same machine shows hash tables saving 100% and bsearch saving 90%. In >> absolute terms, hash tables might have an advantage of 0.03s on my >> system (where bsearch saved 0.3s), and a total advantage of 0.015s for >> the modules you tested (where hash tables saved ~0.15s). >> >> Would you accept bsearch in this case? Or would you feel that the >> performance of hash tables outweighed the extra memory requirements? > > The performance difference in "raw" time speed might be much different > on embedded platforms with slower processors, so it might be worth the > tiny complexity to get that much noticed speed. > yes, right. Further the figures I reported on the slides were taken from a development system with the rootfs mounted via NFS (no HDD or flash), with a debug kernel and so on. >> (This leaves the question of why you need to load 0.015s worth of >> always-needed in-tree kernel code as modules. For those who haven't >> read the slides, the reasoning is that built-in code would take >> _longer_ to load. The boot-loader is often slower at IO, and it >> doesn't allow other initialization to occur in parallel). > > Distros are forced to build almost everything as modules. I've played > with building some modules into the kernel directly (see the openSUSE > moblin kernels for examples of that), but when you have to suport a much > larger range of hardware types and features that some users use and > others don't, and the ability to override specific drivers by others due > to manufacturer requests for specific updates, the need to keep things > as modules is the only way to solve the problem. > > So I'm glad to see this speedup happen, very nice work everyone. > Just a few other notes. The current implementation I did based on SysV has a drawback that is not backward compatible, so you cannot use old modules with a kernel with the option enabled due to changes on struct kernel_symbol. Anyway I've just figured out how to change it to remove this limitation. I need some time to review these patches. Further, the newer implementation based on GNU hash which we are working on right now, will not require the extra .undef.hash ELF sections because hash values are already embedded into the GNU hash table, with a reduction in terms of footprint. > thanks, > > greg k-h > Thanks to you too, Carmelo ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Fast LKM symbol resolution with SysV ELH hash table 2009-10-19 11:45 ` Carmelo Amoroso @ 2009-10-19 13:22 ` Greg KH 2009-10-19 15:02 ` Carmelo Amoroso 0 siblings, 1 reply; 13+ messages in thread From: Greg KH @ 2009-10-19 13:22 UTC (permalink / raw) To: Carmelo Amoroso Cc: Alan Jenkins, Linux Kernel Mailing List, Rusty Russell, linux-kbuild On Mon, Oct 19, 2009 at 01:45:20PM +0200, Carmelo Amoroso wrote: > Just a few other notes. The current implementation I did based on SysV > has a drawback that is not backward compatible, so you cannot use old > modules with a kernel with the option enabled due to changes on struct > kernel_symbol. Why would this be a problem? Whenever making a kernel config change, you should be able to rebuild everything, as lots of other configuration options are that way. > Anyway I've just figured out how to change it to remove this limitation. > I need some time to review these patches. Further, the newer > implementation based on GNU hash which we are working on right now, > will not require the extra .undef.hash ELF sections because hash > values are already embedded into the GNU hash table, with a reduction > in terms of footprint. Footprint in the memory for the loaded module, or just in the footprint for the module on the disk? I'd be interested in seeing your patches when you have something that works for the current Linus kernel tree. thanks, greg k-h ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Fast LKM symbol resolution with SysV ELH hash table 2009-10-19 13:22 ` Greg KH @ 2009-10-19 15:02 ` Carmelo Amoroso 2009-10-19 19:10 ` Greg KH ` (2 more replies) 0 siblings, 3 replies; 13+ messages in thread From: Carmelo Amoroso @ 2009-10-19 15:02 UTC (permalink / raw) To: Greg KH Cc: Alan Jenkins, Linux Kernel Mailing List, Rusty Russell, linux-kbuild 2009/10/19 Greg KH <greg@kroah.com>: > On Mon, Oct 19, 2009 at 01:45:20PM +0200, Carmelo Amoroso wrote: >> Just a few other notes. The current implementation I did based on SysV >> has a drawback that is not backward compatible, so you cannot use old >> modules with a kernel with the option enabled due to changes on struct >> kernel_symbol. > > Why would this be a problem? Whenever making a kernel config change, > you should be able to rebuild everything, as lots of other configuration > options are that way. > This is not always true... there could be cases in which you cannot recompile old modules (e.g vendors that provide non GPL modules) >> Anyway I've just figured out how to change it to remove this limitation. >> I need some time to review these patches. Further, the newer >> implementation based on GNU hash which we are working on right now, >> will not require the extra .undef.hash ELF sections because hash >> values are already embedded into the GNU hash table, with a reduction >> in terms of footprint. > > Footprint in the memory for the loaded module, or just in the footprint > for the module on the disk? > both > I'd be interested in seeing your patches when you have something that > works for the current Linus kernel tree. > sure. I tested weeks ago it on a 2.6.30 tree on x86 at it worked without problems. I had to hack the x86 linker scripts to remove a check on file size that sounded strange to me. carmelo > thanks, > > greg k-h > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Fast LKM symbol resolution with SysV ELH hash table 2009-10-19 15:02 ` Carmelo Amoroso @ 2009-10-19 19:10 ` Greg KH 2009-10-19 20:46 ` Alan Jenkins 2009-10-20 0:56 ` Rusty Russell 2009-10-21 5:43 ` Robert Hancock 2 siblings, 1 reply; 13+ messages in thread From: Greg KH @ 2009-10-19 19:10 UTC (permalink / raw) To: Carmelo Amoroso Cc: Alan Jenkins, Linux Kernel Mailing List, Rusty Russell, linux-kbuild On Mon, Oct 19, 2009 at 05:02:51PM +0200, Carmelo Amoroso wrote: > 2009/10/19 Greg KH <greg@kroah.com>: > > On Mon, Oct 19, 2009 at 01:45:20PM +0200, Carmelo Amoroso wrote: > >> Just a few other notes. The current implementation I did based on SysV > >> has a drawback that is not backward compatible, so you cannot use old > >> modules with a kernel with the option enabled due to changes on struct > >> kernel_symbol. > > > > Why would this be a problem? ?Whenever making a kernel config change, > > you should be able to rebuild everything, as lots of other configuration > > options are that way. > > > > This is not always true... there could be cases in which you cannot > recompile old modules (e.g vendors that provide non GPL modules) But we do not care at all about that kind of thing, sorry. > >> Anyway I've just figured out how to change it to remove this limitation. > >> I need some time to review these patches. ?Further, the newer > >> implementation based on GNU hash which we are working on right now, > >> will not require the extra .undef.hash ELF sections because hash > >> values are already embedded into the GNU hash table, with a reduction > >> in terms of footprint. > > > > Footprint in the memory for the loaded module, or just in the footprint > > for the module on the disk? > > > > both Why would the already-loaded module size increase? I guess I'll just wait to see the code before worrying about this :) thanks, greg k-h ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Fast LKM symbol resolution with SysV ELH hash table 2009-10-19 19:10 ` Greg KH @ 2009-10-19 20:46 ` Alan Jenkins 0 siblings, 0 replies; 13+ messages in thread From: Alan Jenkins @ 2009-10-19 20:46 UTC (permalink / raw) To: Greg KH Cc: Carmelo Amoroso, Linux Kernel Mailing List, Rusty Russell, linux-kbuild On 10/19/09, Greg KH <greg@kroah.com> wrote: > On Mon, Oct 19, 2009 at 05:02:51PM +0200, Carmelo Amoroso wrote: >> 2009/10/19 Greg KH <greg@kroah.com>: >> > On Mon, Oct 19, 2009 at 01:45:20PM +0200, Carmelo Amoroso wrote: >> >> Just a few other notes. The current implementation I did based on SysV >> >> has a drawback that is not backward compatible, so you cannot use old >> >> modules with a kernel with the option enabled due to changes on struct >> >> kernel_symbol. >> > >> > Why would this be a problem? ?Whenever making a kernel config change, >> > you should be able to rebuild everything, as lots of other configuration >> > options are that way. >> > >> >> This is not always true... there could be cases in which you cannot >> recompile old modules (e.g vendors that provide non GPL modules) > > But we do not care at all about that kind of thing, sorry. > >> >> Anyway I've just figured out how to change it to remove this >> >> limitation. >> >> I need some time to review these patches. ?Further, the newer >> >> implementation based on GNU hash which we are working on right now, >> >> will not require the extra .undef.hash ELF sections because hash >> >> values are already embedded into the GNU hash table, with a reduction >> >> in terms of footprint. >> > >> > Footprint in the memory for the loaded module, or just in the footprint >> > for the module on the disk? >> > >> >> both > > Why would the already-loaded module size increase? > > I guess I'll just wait to see the code before worrying about this :) Modules export symbols, as well as importing them :). ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Fast LKM symbol resolution with SysV ELH hash table 2009-10-19 15:02 ` Carmelo Amoroso 2009-10-19 19:10 ` Greg KH @ 2009-10-20 0:56 ` Rusty Russell 2009-10-21 5:43 ` Robert Hancock 2 siblings, 0 replies; 13+ messages in thread From: Rusty Russell @ 2009-10-20 0:56 UTC (permalink / raw) To: Carmelo Amoroso Cc: Greg KH, Alan Jenkins, Linux Kernel Mailing List, linux-kbuild On Tue, 20 Oct 2009 01:32:51 am Carmelo Amoroso wrote: > 2009/10/19 Greg KH <greg@kroah.com>: > > On Mon, Oct 19, 2009 at 01:45:20PM +0200, Carmelo Amoroso wrote: > >> Just a few other notes. The current implementation I did based on SysV > >> has a drawback that is not backward compatible, so you cannot use old > >> modules with a kernel with the option enabled due to changes on struct > >> kernel_symbol. > > > > Why would this be a problem? Whenever making a kernel config change, > > you should be able to rebuild everything, as lots of other configuration > > options are that way. > > This is not always true... there could be cases in which you cannot > recompile old modules > (e.g vendors that provide non GPL modules) And breaking them is a feature. I do not go out of my way to avoid breaking out-of-tree modules; it's certainly more important to have simple maintainable code. You guys figure out what the best speed/size tradeoff is, and send me the patch for review. Thanks! Rusty. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Fast LKM symbol resolution with SysV ELH hash table 2009-10-19 15:02 ` Carmelo Amoroso 2009-10-19 19:10 ` Greg KH 2009-10-20 0:56 ` Rusty Russell @ 2009-10-21 5:43 ` Robert Hancock 2009-10-21 13:48 ` Greg KH 2 siblings, 1 reply; 13+ messages in thread From: Robert Hancock @ 2009-10-21 5:43 UTC (permalink / raw) To: Carmelo Amoroso Cc: Greg KH, Alan Jenkins, Linux Kernel Mailing List, Rusty Russell, linux-kbuild On 10/19/2009 09:02 AM, Carmelo Amoroso wrote: > 2009/10/19 Greg KH<greg@kroah.com>: >> On Mon, Oct 19, 2009 at 01:45:20PM +0200, Carmelo Amoroso wrote: >>> Just a few other notes. The current implementation I did based on SysV >>> has a drawback that is not backward compatible, so you cannot use old >>> modules with a kernel with the option enabled due to changes on struct >>> kernel_symbol. >> >> Why would this be a problem? Whenever making a kernel config change, >> you should be able to rebuild everything, as lots of other configuration >> options are that way. >> > > This is not always true... there could be cases in which you cannot > recompile old modules > (e.g vendors that provide non GPL modules) Even non-GPL modules can normally be rebuilt as far as the module format is concerned, there's usually an object file blob that gets compiled into a module on install or something, like the Nvidia graphics driver. If anyone's providing binary-only fully built modules (which would be inherently tied to one exact kernel version and one configuration) they really need to have their head examined.. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Fast LKM symbol resolution with SysV ELH hash table 2009-10-21 5:43 ` Robert Hancock @ 2009-10-21 13:48 ` Greg KH 0 siblings, 0 replies; 13+ messages in thread From: Greg KH @ 2009-10-21 13:48 UTC (permalink / raw) To: Robert Hancock Cc: Carmelo Amoroso, Alan Jenkins, Linux Kernel Mailing List, Rusty Russell, linux-kbuild On Tue, Oct 20, 2009 at 11:43:44PM -0600, Robert Hancock wrote: > On 10/19/2009 09:02 AM, Carmelo Amoroso wrote: >> 2009/10/19 Greg KH<greg@kroah.com>: >>> On Mon, Oct 19, 2009 at 01:45:20PM +0200, Carmelo Amoroso wrote: >>>> Just a few other notes. The current implementation I did based on SysV >>>> has a drawback that is not backward compatible, so you cannot use old >>>> modules with a kernel with the option enabled due to changes on struct >>>> kernel_symbol. >>> >>> Why would this be a problem? Whenever making a kernel config change, >>> you should be able to rebuild everything, as lots of other configuration >>> options are that way. >>> >> >> This is not always true... there could be cases in which you cannot >> recompile old modules >> (e.g vendors that provide non GPL modules) > > Even non-GPL modules can normally be rebuilt as far as the module format is > concerned, there's usually an object file blob that gets compiled into a > module on install or something, like the Nvidia graphics driver. If > anyone's providing binary-only fully built modules (which would be > inherently tied to one exact kernel version and one configuration) they > really need to have their head examined.. Welcome to embedded Linux :) ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2009-10-21 14:03 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-10-18 8:09 Fast LKM symbol resolution with SysV ELH hash table Carmelo Amoroso 2009-10-18 12:44 ` Alan Jenkins 2009-10-18 16:43 ` Alan Jenkins 2009-10-18 21:47 ` Greg KH 2009-10-19 0:01 ` Alan Jenkins 2009-10-19 11:45 ` Carmelo Amoroso 2009-10-19 13:22 ` Greg KH 2009-10-19 15:02 ` Carmelo Amoroso 2009-10-19 19:10 ` Greg KH 2009-10-19 20:46 ` Alan Jenkins 2009-10-20 0:56 ` Rusty Russell 2009-10-21 5:43 ` Robert Hancock 2009-10-21 13:48 ` Greg KH
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox