Regarding Oops.s after Setting up Kernels Pg tables

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

 



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/


[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