I have already done the above things, not only one time but many time, & all
the function except fs/dropcache.c are exported in usual manner, but the
function from fs/dropcache.c file are never get exported; please check its
entry in system.map file.

I have exported myfunction, myfunction2 and myfunction3 ; myfunction2 and
myfunction3 has three entires coz these are exported but myfunction,
drop_pagecache and drop_slab are never get exported in right manner and it
has only one entry with T option.

On Tue, Jul 21, 2009 at 5:39 AM, Peter Teoh <[email protected]> wrote:

> sorry...let me debug my statement, one more thing to do:
>
> d.   and from the function user side (whoever use the function)
> "extern drop_pagecache()" have to be declared.
>
> On Tue, Jul 21, 2009 at 8:03 AM, Peter Teoh<[email protected]>
> wrote:
> > since drop_cache is part of kernel, u have to do 3 things:
> >
> > a.   declare EXPORT_SYMBOL() at the end of the fs/drop_caches.c file.
> > b.   remove the "static" in front of drop_pagecache() declaration.
> > c.   recompile the kernel + modules etc, and reboot into the new kernel.
> >
> > On Tue, Jul 21, 2009 at 12:35 AM, er krishna<[email protected]> wrote:
> >>
> >>
> >> On Mon, Jul 20, 2009 at 9:54 PM, SandeepKsinha <[email protected]
> >
> >> wrote:
> >>>
> >>> Hi Krishna,
> >>>
> >>>
> >>>
> >>> On Mon, Jul 20, 2009 at 8:10 PM, er krishna <[email protected]>
> wrote:
> >>>>
> >>>>
> >>>>
> >>>> Dear All,
> >>>>
> >>>>
> >>>>
> >>>>  I have one  simple problem in exporting the function. Everything is
> >>>> fine, but its not working as per the expectation.  Actually I have to
> export
> >>>> some function from fs/dropcache.c, but it is not working as per the
> >>>> expectataion, [ I am able to export any function from other files like
> >>>> fs/buffer.c and block/genhd.c but dropcache.c creates a problem] .I am
> >>>> attaching the file. Just once check & please tell if something is
> missing,
> >>>> what I have done is as follows:
> >>>>
> >>>>
> >>>>
> >>>> I have exported three functions from fs/dropcaches.c by making their
> >>>> function declaration in linux/mm.h, compiled the  corresponding 2.6.26
> >>>> kernel & got their entries in System.map file as follows:
> >>>>
> >>>>
> >>>> c0174d98 T drop_slab
> >>>> c0174db2 T drop_pagecache
> >>>> c0174ea7 T drop_caches_sysctl_handler
> >>>>
> >>>> These entries are quite different from the actual exported functions
> from
> >>>> other files, it has only T option. Can antbody elaborate what is the
> meaning
> >>>> of these options  like T, t, r , u and so on?
> >>>>
> >>>> I have booted with same 2.6.26 kernel.  I included linux/mm.h  and all
> >>>> the above three function in my module done make & found following
> warnings
> >>>> in compilation & following error message in insmod due to some linking
> >>>> error:
> >>>>
> >>>>
> >>>> [r...@centos2 kernel]# make
> >>>> make -C /lib/modules/2.6.26/build M=/root/kernel modules
> >>>> make[1]: Entering directory `/root/Desktop/linux-2.6.26'
> >>>>   Building modules, stage 2.
> >>>>   MODPOST 2 modules
> >>>> WARNING: "drop_slab" [/root/kernel/dropcache.ko] undefined!
> >>>> WARNING: "drop_pagecache" [/root/kernel/dropcache.ko] undefined!
> >>>> WARNING: "drop_caches_sysctl_handler" [/root/kernel/dropcache.ko]
> >>>> undefined!
> >>>> make[1]: Leaving directory `/root/Desktop/linux-2.6.26'
> >>>> [r...@centos2 kernel]#
> >>>> [r...@centos2 kernel]#
> >>>> [r...@centos2 kernel]# insmod dropcache.ko
> >>>> insmod: error inserting 'dropcache.ko': -1 Unknown symbol in module
> >>>
> >>> Do a dmesg and provide the results?
> >>>
> >>> You will see that which symbol still remains unresolved. May be you
> need
> >>> to export some more of them.
> >>
> >> dropcache: module license 'unspecified' taints kernel.
> >> dropcache: Unknown symbol drop_slab
> >> dropcache: Unknown symbol drop_pagecache
> >> dropcache: Unknown symbol drop_caches_sysctl_handler
> >>
> >>
> >> Actually what happend I have made some own functiion and put those
> function
> >> in different files, all of the function from other files are exported
> easily
> >> but the function from this particular file is not exported due to
> linking
> >> error. I suspect the entries which it created in System.map file is also
> not
> >> good. Anybody knows various options of system.map file the please tell
> me. I
> >> am attaching system.map file .
> >>
> >>
> >>>
> >>>
> >>>>
> >>>> [r...@centos2 kernel]#
> >>>> [r...@centos2 kernel]#
> >>>>
> >>>>
> >>>> Any idea how to trace it & what is missing, as I got all the exported
> >>>> entries in System.map file & I have included the function declaration
> file
> >>>> linux/mm.h on the same compiled kernel, it should do the things in
> right
> >>>> manner.
> >>>>
> >>>> Please suggest, If I am missing something or you want any more
> >>>> information. I am attaching my kernel module and these are some more
> snippet
> >>>> :
> >>>> [r...@centos2 kernel]# uname -a
> >>>> Linux CENTOS2 2.6.26 #1 SMP Sun Jul 19 10:54:05 IST 2009 i686 i686
> i386
> >>>> GNU/Linux
> >>>> [r...@centos2 kernel]#
> >>>> [r...@centos2 kernel]# tail -1
> >>>> /root/Desktop/linux-2.6.26/fs/drop_caches.c
> >>>> EXPORT_SYMBOL(drop_caches_sysctl_handler);
> >>>> [r...@centos2 kernel]#
> >>>> [r...@centos2 kernel]#
> >>>>
> >>>>
> >>>>
> >>>
> >>> Regards,
> >>> Sandeep.
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> “To learn is to change. Education is a process that changes the
> learner.”
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> Thanks and Best Regards,
> >>>> ------------------------
> >>>> Krishna Kumar
> >>>>
> >>>>
> >>>
> >>
> >>
> >
> >
> >
> > --
> > Regards,
> > Peter Teoh
> >
>
>
>
> --
> Regards,
> Peter Teoh
>

Reply via email to