lkml.org 
[lkml]   [2009]   [Jul]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCH] reduce export symbol CRC table size on 64-bit archs
    Date
    On Mon, 6 Jul 2009 05:12:51 pm Jan Beulich wrote:
    > >Jan Beulich napsal(a):
    > >> Since these CRCs are really only 32-bit quantities, there's no need to
    > >> store them in 64-bit slots. Since, however, gcc doesn't allow
    > >> respective initializations, asm() constructs get used to create the CRC
    > >> tables (and its for that reason that the patch only makes x86-64 and
    > >> ia64 utilize that functionality, as I can't verify this doesn't break
    > >> in some subtle way elsewhere).
    > >
    > >...
    > >
    > >> struct modversion_info
    > >> {
    > >> - unsigned long crc;
    > >> + ksym_crc_t crc;
    > >> char name[MODULE_NAME_LEN];
    > >> };
    > >
    > >This change breaks module-init-tools:
    > >Before:
    > >$ /sbin/modprobe --dump-modversions _build/drivers/usb/core/usbcore.ko
    > >
    > >| head
    > >
    > >0xb49b735a module_layout
    > >0xdb7e6a70 bus_register
    > >...
    > >After:
    > >$ /sbin/modprobe --dump-modversions
    > >_build-crc-int/drivers/usb/core/usbcore.ko | head
    > >0x75646f6d91ea7b5c le_layout
    > >0x5f7375623e215f43 register
    > >...
    > >It also breaks the newly added depmod -E option (check symbol versions),
    > >which also reads the struct modversion_info array (*). Is it possible
    > >name the section differently (__versions2?) on those architectures where
    > >the size changes, so that it is possible to fix m-i-t in a
    > >backwards-compatible manner?
    >
    > First of all I'd view it as a design bug if user mode code assumptions
    > prevent changes to the kernel.

    Yes, but unfortunately it happens. We do it much less than we used to, but
    there are limits.

    > But taking this as an uncorrectable fact, I'd think that renaming the
    > section would certainly be an option (though I'm unsure whether that would
    > have other consequences - Rusty?), however I could also imagine other means
    > to communicate to user land the width of a CRC value (e.g. adding an
    > absolute symbol during the .ko linking stage).

    No, just break it once. And I still like the idea that we should do something
    more radical if we're going to break this anyway, rather than these nasty asm
    hacks.

    Thanks,
    Rusty.



    \
     
     \ /
      Last update: 2009-07-09 13:17    [W:3.141 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site