lkml.org 
[lkml]   [2007]   [Sep]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: X-freeze after clflush changes [Was: 2.6.23-rc6-mm1]
    On Wed, 19 Sep 2007 16:59:04 +0200 Jiri Slaby <jirislaby@gmail.com> wrote:

    > ---------8<---------8<---------8<---------8<---------8<---------8<----
    > That means
    > void agp_generic_destroy_page(void *addr)
    > {
    > struct page *page;
    >
    > if (addr == NULL)
    > return;
    >
    > page = virt_to_page(addr);
    > (1) unmap_page_from_agp(page);
    > put_page(page);
    > (2) free_page((unsigned long)addr);
    > atomic_dec(&agp_bridge->current_memory_agp);
    > }
    >
    > (1) unmap_page_from_agp -> change_page_attr -> change_page_attr_addr ->
    > __change_page_attr -> save_page -> list_add(&fpage->lru, &deferred_pages);
    > (2) free_page -> free_pages -> __free_pages -> free_hot_page ->
    > free_hot_cold_page -> list_add(&page->lru, &pcp->list);

    that'll hurt.

    > any ideas how to fix this?

    We should hold a single reference on the page for its membership in
    deferred_pages.
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-09-19 21:13    [W:0.023 / U:59.312 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site