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/