Rami,

Thanks for the link. It's an interesting read. (Though my intended
solution goes even lower; sys_XXX calls the flip_XXX and ->read/write
methods.)
I total agree with the writer; If you need FS access for configuration
files, you shouldn't be using the FS in a kernel modules in the first
place.

Gibloa

On Fri, 2005-07-29 at 04:05 -0300, rami rosen wrote:
> Hello,
>   There is an articel in LinuxJournal from this April issue by Greg KH which 
> explains
> how to read and how to write a file from kernel module.
> He reads the file using set_fs(KERNEL_DS) and write to the file using 
> fget(fd)
> and vfs_write().
> 
> It is clearly not recommended to do such a thing , as he admitted in this 
> article.
> Moreover, the article itself is titled "Driving Me Nuts - Things You Never 
> Should Do in the Kernel".
> see:
> http://www.linuxjournal.com/article/8110
> 
> Regards,
> Rami Rosen
> 
> 
> 
> 
> 
> >From: Gilboa Davara <[EMAIL PROTECTED]>
> >To: IL List <linux-il@linux.org.il>
> >Subject: Re: File I/O within kernel threads?
> >Date: Thu, 28 Jul 2005 17:24:41 +0300
> >
> >Gilad,
> >
> >First, thanks for the answer.
> >
> >On Thu, 2005-07-28 at 16:44 +0300, Gilad Ben-Yossef wrote:
> >
> > > A kernel thread is indeed proccess context, but since you brought it
> >up
> > > already and assuming we're talking 2.6, the "correct" way to do is
> >use
> > > work queues (and hence schedule_work) instead of schedule_task. This
> > > will give you the option to start your own work queue (and hence your
> > > own kernel thread) thus not having to worry about starving other
> >tasks.
> > >
> > > And while we're on the subject, you might want to take a look into
> >using
> > > a work queue instead of a kernel thread all together - it's a very
> >nice
> > > interface to do these sort of things.
> > >
> > > To learn more about Work queues see here (page 23):
> > >
> > > http://lwn.net/images/pdf/LDD3/ch07.pdf
> >
> >Funny... I forgot all about work queues.
> >Thanks! It'll save me the need to create way-too-many-kernel-threads.
> >
> > >
> > >
> > > On another different and related note, if you're consider doing IO
> >from
> > > kernel sapce (which is a terribly bad as you've pointed out already
> >  but
> > > I wonder if you know just *how* difficult to debug and racy it is)
> >
> >The rest of the kernel code is already there.
> >Let me put this way. The reset button is my new best friend :-/
> >I assume that I must guard all the file->ops->read/write file operation
> >myself to prevent ugly race conditions, right?
> >
> > > for
> > > fear of perfomance, a saner approach that may or may not fit your
> >bill
> > > is using RelayFS:
> > >
> > > http://sourcefrog.net/weblog/software/linux-kernel/relayfs.html
> >
> >Interesting... I remember reading about this in KernelTrap.
> >I doubt that i'll help me. I need concurrent R/W from within the kernel
> >space.
> >
> > >
> > >
> > > Hope this helps,
> > > Gilad
> >
> >
> >
> >=================================================================
> >To unsubscribe, send mail to [EMAIL PROTECTED] with
> >the word "unsubscribe" in the message body, e.g., run the command
> >echo unsubscribe | mail [EMAIL PROTECTED]
> >
> 
> _________________________________________________________________
> Don't just search. Find. Check out the new MSN Search! 
> http://search.msn.com/
> 
> 
> =================================================================
> To unsubscribe, send mail to [EMAIL PROTECTED] with
> the word "unsubscribe" in the message body, e.g., run the command
> echo unsubscribe | mail [EMAIL PROTECTED]



=================================================================
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]

Reply via email to