The function that is invoking the segmentation fault is pte_offset_map(my_pmd, page). It is strange because this works for kernel 2.6.1 but it does not work for 2.6.9. Could anyone help me? Mauricio Lin. --- Mauricio Lin <mauriciolin2000@xxxxxxxxxxxx> escreveu: > I figured out where is the problem. > > It is a function I implemented for kernel 2.6.1, but > does not work for 2.6.9. The function below throws > the > segmentation fault. > > Here is the function: > > void resident_mem_size(struct mm_struct *mm, > unsigned > long start_address, unsigned long end_address, > unsigned long *size) { > pgd_t *my_pgd; > pmd_t *my_pmd; > pte_t *my_pte; > unsigned long page; > > for (page = start_address; page < end_address; page > += PAGE_SIZE) { > my_pgd = pgd_offset(mm, page); > if (pgd_none(*my_pgd) || pgd_bad(*my_pgd)) > continue; > my_pmd = pmd_offset(my_pgd, page); > if (pmd_none(*my_pmd) || pmd_bad(*my_pmd)) > continue; > my_pte = pte_offset_map(my_pmd, page); > if (pte_present(*my_pte)) { > *size += PAGE_SIZE; > } > } > } > > Does anyone know what is going on? > > Mauricio Lin. > > --- Mauricio Lin <mauriciolin2000@xxxxxxxxxxxx> > escreveu: > > Hi All, > > > > I have implemented a new entry in proc directory > in > > kernel 2.6.1. It is something similar to > > /proc/pid/maps. The new entry is /proc/pid/smaps > > where > > pid is the process id. It is working well on > kernel > > 2.6.1. > > > > I decided to upgrade it to kernel 2.6.9, but > > something > > is going wrong when I type de cat command. > > > > $ cat /proc/3477/smaps > > > > b68ed000-b68ee000 rw-p > /usr/lib/kde3/kded_kinetd.so > > VmRss: 4 kB > > VmData: 0 KB > > VmStk: 0 kB > > VmExe: 0 kB > > VmLib: 0 kB > > Shared: 0 kB > > Private: 4 kB > > Shareable: 0 kB > > b68ee000-b68ff000 r--p > > > /usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf > > VmRss: 68 kB > > VmData: 0 KB > > VmStk: 0 kB > > VmExe: 0 kB > > VmLib: 0 kB > > Shared: 0 kB > > Private: 68 kB > > Shareable: 0 kB > > > > .... > > > > b7fea000-b8000000 r-xp /lib/ld-2.3.2.so > > VmRss: 80 kB > > VmData: 0 KB > > VmStk: 0 kB > > VmExe: Segmentation fault > > > > As you can see, the segmentation fault is > displayed > > at > > the end of the output. This problem does not have > > for > > kernel 2.6.1. > > > > The files I changed are fs/proc/base.c and > > fs/proc/task_mmu.c on kernel 2.6.1. AFAIK this > files > > were not changed since 2.6.1. So what is going on > > with > > kernel 2.6.9? > > > > BR, > > > > Mauricio Lin. > > > > ===== > > ************************************************ > > Conhecimento vem do seu instrutor; > > Sabedoria vem do seu interior. > > (Bruce Lee) > > ************************************************ > > > > > > > > > > > > > _______________________________________________________ > > > > Yahoo! Acesso Grátis - Internet rápida e grátis. > > Instale o discador agora! > > http://br.acesso.yahoo.com/ > > > > -- > > Kernelnewbies: Help each other learn about the > Linux > > kernel. > > Archive: > > http://mail.nl.linux.org/kernelnewbies/ > > FAQ: http://kernelnewbies.org/faq/ > > > > > > ===== > ************************************************ > Conhecimento vem do seu instrutor; > Sabedoria vem do seu interior. > (Bruce Lee) > ************************************************ > > > > > > _______________________________________________________ > > Yahoo! Acesso Grátis - Internet rápida e grátis. > Instale o discador agora! > http://br.acesso.yahoo.com/ > > -- > Kernelnewbies: Help each other learn about the Linux > kernel. > Archive: > http://mail.nl.linux.org/kernelnewbies/ > FAQ: http://kernelnewbies.org/faq/ > > ===== ************************************************ Conhecimento vem do seu instrutor; Sabedoria vem do seu interior. (Bruce Lee) ************************************************ _______________________________________________________ Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador agora! http://br.acesso.yahoo.com/ -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/