Skip to contentSkip to conversation

Code that does page outs

DISCUSSION Eugene Teo 2 participants 3 messages Oct 6, 2003 Memory management

lore
Share & tools
lore

Eugene Teo

author
#0 lore raw

I am looking for possible areas in the kernel code where page outs occurs. I have looked at shrink_cache(), and swap_out_pmd() which calls try_to_swap_out().

Are there other areas that i missed out?

I am looking at the areas where page outs will occur so that I can keep track of

1) number of page outs occurred at an arbitrary time.
2) what causes the page outs.

Anticipating a reply...

Eugene
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>

#1 lore raw
Quoted 1 line

I am looking for possible areas in the kernel code where ...

May I recommend to you the site:

Cross-Referencing Linux
http://lxr.linux.no

For example, start with an "identifier search" on one of the symbols you identified, try_to_swap_out:

http://lxr.linux.no/ident?i=try_to_swap_out

This page will show where it is defined, and what calls it. Examine the code that defines try_to_swap_out(). Observe the critical between lines 133 and 148 of this file, vmscan.c. This is where it gets a free swap entry, get_swap_page(), and assigns the current page to that entry, add_to_swap_cache().

I would expect that any other piece of code that wants to swap is going to use those same routines, get_swap_page(), and add_to_swap_cache(). Though examining these two routines in detail and what they call in turn would help to verify that expectation.

Then continue using lxr.linux.no to see what else, if anything, calls this pair of routines: get_swap_page(), and add_to_swap_cache().

This will lead you to any other paths, if any, to swapping a page.

Signature · 8 lines
                          I won't rest till it's the best ...
                          Programmer, Linux Scalability
                          Paul Jackson <[email protected]> 1.650.933.1373
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to [email protected].  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
author
#2 lore raw

Thanks Paul. Actually, I have identified, and read the code starting from try_to_swap_out, then swap_out_pmd, then swap_out_pgd, then swap_out_vma, then swap_out_mm, then swap_out, which returns the number of pages swapped out. I have also read shrink_cache and also took note of the number of pages swapped out. I am just wondering if I have missed out any portion of the mm that can lead to page being swap out. Anyhow, thank you for your tip for I have been using this website too, along with my other materials.

<quote sender="Paul Jackson">

Quoted 38 lines
Quoted 1 line

I am looking for possible areas in the kernel code where ...

May I recommend to you the site:

   Cross-Referencing Linux
   http://lxr.linux.no

For example, start with an "identifier search" on one of the symbols you identified, try_to_swap_out:

   http://lxr.linux.no/ident?i=try_to_swap_out

This page will show where it is defined, and what calls it. Examine the code that defines try_to_swap_out(). Observe the critical between lines 133 and 148 of this file, vmscan.c. This is where it gets a free swap entry, get_swap_page(), and assigns the current page to that entry, add_to_swap_cache().

I would expect that any other piece of code that wants to swap is going to use those same routines, get_swap_page(), and add_to_swap_cache(). Though examining these two routines in detail and what they call in turn would help to verify that expectation.

Then continue using lxr.linux.no to see what else, if anything, calls this pair of routines: get_swap_page(), and add_to_swap_cache().

This will lead you to any other paths, if any, to swapping a page.

Signature · 8 lines
                          I won't rest till it's the best ...
                          Programmer, Linux Scalability
                          Paul Jackson <[email protected]> 1.650.933.1373
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to [email protected].  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
Signature · 9 lines
Eugene TEO   <[email protected]>   <http://www.anomalistic.org/>
1024D/14A0DDE5 print D851 4574 E357 469C D308  A01E 7321 A38A 14A0 DDE5
main(i) { putchar(182623909 >> (i-1) * 5&31|!!(i<7)<<6) && main(++i); }

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to [email protected].  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>