lkml.org 
[lkml]   [2012]   [Aug]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [RFC PATCH 2/2] mm: Batch page_check_references in shrink_page_list sharing the same i_mmap_mutex
    From
    Date
    On Tue, 2012-08-21 at 09:21 -0400, Matthew Wilcox wrote:

    >
    > The only clunky bit would seem to be this bit:
    >
    > > if (page_mapped(page) && mapping) {
    > > - switch (try_to_unmap(page, TTU_UNMAP)) {
    > > + switch (try_to_unmap(page, TTU_UNMAP,
    > > + mmap_mutex_locked)) {
    >
    > Which I think has to look like this:
    >
    > if (page_mapped(page) && mapping) {
    > - switch (try_to_unmap(page, TTU_UNMAP)) {
    > + int result;
    > + if (i_mmap_mutex)
    > + result = __try_to_unmap(page, TTU_UNMAP);
    > + else
    > + result = try_to_unmap(page, TTU_UNMAP);
    > + switch (result) {
    >

    I think

    - switch (try_to_unmap(page, TTU_UNMAP)) {
    + switch (__try_to_unmap(page, TTU_UNMAP)) {

    should be enough when your changes are adopted. Because if the page
    mmap mutex needs to be locked, we will have locked it here before
    __try_to_unmap gets used.

    + if (needs_page_mmap_mutex(page) &&
    + i_mmap_mutex != &page->mapping->i_mmap_mutex) {
    + if (i_mmap_mutex)
    + mutex_unlock(i_mmap_mutex);
    + i_mmap_mutex = &page->mapping->i_mmap_mutex;
    + mutex_lock(i_mmap_mutex);
    + }


    Tim



    \
     
     \ /
      Last update: 2012-08-22 01:21    [W:0.027 / U:95.016 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site