the magic in do_page_fault() ???

From: liyu@WAN
Date: Mon Jul 04 2005 - 00:22:05 EST


Hi LKML:

I am reading code of memory management. this process is so challengable.

I have one quetion too.

in do_page_fault() (kernel 2.6.11.11) include one piece of code as
follow:


if (!down_read_trylock(&mm->mmap_sem)) {
if ((error_code & 4) == 0 &&
!search_exception_tables(regs->eip))
goto bad_area_nosemaphore;
down_read(&mm->mmap_sem);
}


I think I can understand these operations on mm->mmap_sem and
"error_code&4".
but how "search_exception_tables(regs->eip)" work here?

In "Understanding Linux kernel 2ed" book, the author say , kernel
must difference two case:

1. kernel memory access problem.
2. Arguments of system call include address of memeory unit is
unmapped.

Well, That is OK. but I want to know what 's mechanism in it ?

3ks. (in Chinese , number 3 read as 'th' :)


liyu
Mon Jul
4 13:23:24 CST 2005






-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/