[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Regarding Oops.s after Setting up Kernels Pg tables
Hello Everybody !
Being a newbie I could not make too much
sense of the below mail , but I could see
many interesting things in it .
I would request an elaborate discussion on the
contents of this mail if all are interested .
TIA
With Regards
--- Karthick Ram <a_r_karthic@rediffmail.com> wrote:
> Hi,
> This is regarding an Oops message that I get in my
> segment
> tracker LKM, even after setting up the Kernels Page
> tables.
> On trying to read segment information by ioctl
> calls to a
> device,by feeding structured information from
> user_space, for a
> "process by name" lookup, I find that my Code is
> Oopsing,while
> trying to copy the information from the Process
> Virtual address
> space,after setting up the Kernels Page tables.
> I have a vmalloced segment in kernel space where I
> copy the
> Process segment information ,before moving that into
> user_space
> with a copy_to_user. I copy all the segments by
> looping through
> the vm_area_struct fields (vm_next), and copying
> them up into
> user_space. Before copying,I do the page table hooks
> in the kernel
> space, to make it point to the Processes PTE entry
> for its
> segments virtual address.
> The code is Oopsing at the point where I try to Copy
> the processes
> segment into the vmalloc buffer.
> Infact it works,if I try to copy a single Segment
> {code,stack,data} worth 2 pages into the user_space
> structure.
> Whats the reason for the Oops,inspite of the Page
> table hooks?
> (Note:In my quest,I dont corrupt the Kernels Page
> table
> Entry,because I save and restore the old entry after
> the copy
> operation.)
> BTW, if anybody has gone inside A.Rubinis "sbull"
> code for Linux
> Device Drivers,he will find a "spinlock" on a
> "vmalloc" call.
> I have a hunch that its buggy,as "get_vm_area" in
> "mm/vmalloc.c"
> miiiight sleep on a call to "kmalloc" with a
> GFP_KERNEL.
> I have rewritten the "sbull" partition{less} devices
> with a
> "semaphore" on a vmalloc and a spinlock before a
> io_transfer, for
> a 2.2.x.
> Any suggestions,in favour or against A.Rubinis
> "spinlock" approach
> would be appreciated.
> I am betting on a "A.Rubini" __sleep__ before a
> "spinlock" on a
> "vmalloc" call.
> Regards,
> -Karthick
> (http://kernelnewbies.org/wiki/moin.cgi/Karthick
> Doesnt Work !!. Try a google.com lookup on
> "a.r.karthick" and
> take on the Googles Cache for the URL-Should find
> 2.4 Linux Kernel
> Internals,Incomplete for a Review.)
>
>
_________________________________________________________
> Click below to visit monsterindia.com and review
> jobs in India or
> Abroad
> http://monsterindia.rediff.com/jobs
>
>
> "Using Message Passing as the fundamental operation
> of a Kernel is
> an exercise in Computer Science Masturbation.It
> feels good,but you
> dont get anything done -Linus"
> --
> Kernelnewbies: Help each other learn about the Linux
> kernel.
> Archive:
> http://mail.nl.linux.org/kernelnewbies/
> FAQ: http://kernelnewbies.org/faq/
>
________________________________________________________________________
Everything you always wanted to know about cars and bikes,now
at: http://in.autos.yahoo.com
--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive: http://mail.nl.linux.org/kernelnewbies/
FAQ: http://kernelnewbies.org/faq/