Re: Regarding Oops.s after Setting up Kernels Pg tables

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux