Dear Peter , I was thinking in a similar manner, but you know :
static void drop_pagecache_sb(struct super_block *sb) static void drop_pagecache(void) I mean these are static function, how to export them ? Just asking, shall I take help of pointer or some wrapper to export these function or is it safe to export these as usual . Thanks & Best Regards, Krishna On Sat, Jul 18, 2009 at 5:05 PM, Peter Teoh <[email protected]> wrote: > On Sat, Jul 18, 2009 at 4:24 PM, Peter Teoh<[email protected]> > wrote: > > sorry i have lots of questions for you too!!!! > > > > On Sat, Jul 18, 2009 at 2:16 PM, er krishna<[email protected]> wrote: > >> Peter, > >> > >> Thats' fine. I have already gone through those articles, and user space > >> techniques are fine with me. But here I have to do it > >> ( flush the cache ) from kernel module, so I have to do all the things > that > >> kernel does when it get argument 3 into /proc/sys/vm/dropcaches. > >> > >> Now again drop_caches_sysctl_handler function accepts lots of argument > and > > just ignore these parameters. > > >> its not defined in .h file, so what I have to do is, I have to pass > those > >> arguments to this function and include it in my module by exporting > this > >> function. This is a bit of cumbersome and I really don't know weather it > >> will work or not !!!!! > > > > > 64 > > 65 int drop_caches_sysctl_handler(ctl_table *table, int write, > > 66 struct file *file, void __user *buffer, size_t *length, > > loff_t *ppos ) > > 67 { > > 68 proc_dointvec_minmax(table, write, file, buffer, length, > ppos); > > 69 if (write) { > > 70 if (sysctl_drop_caches & 1) > > 71 drop_pagecache(); > > 72 if (sysctl_drop_caches & 2) > > 73 drop_slab(); > > 74 } > > After some thought, I think u can SAFELY just use drop_pagecache() and > drop_slab() (since u are echoing "3" into the syctl). So yes, just > export it, recompile the kernel, and use the API in your module. > > as for all the input parameters, just ignore it. > > > -- > Regards, > Peter Teoh >
