Re: Highmemory Problem with RHEL3 .... 2.4.21-5.ELsmp

From: Fawad Lateef (fawadlateef_at_gmail.com)
Date: 08/08/05

  • Next message: Tony Lindgren: "Re: [PATCH] i386 No-Idle-Hz aka Dynamic-Ticks 5"
    Date:	Mon, 8 Aug 2005 12:32:12 +0500
    To: Zachary Amsden <zach@vmware.com>
    
    

    On 8/8/05, Zachary Amsden <zach@vmware.com> wrote:
    >
    > IIRC 2.4.21 has some highmem bugs that have since been fixed. But, it
    > sounds like you might be doing something quite unusual. Code would
    > definitely give people a better idea of what might be wrong.

    I think you overlooked what i mentioned in P.S. ; which is

    My memory reservation and later using that memory through kmap_atomic
    works well on the kernels other than RHEL3 2.4.21-e.ELsmp
    .............. the page reservation was done in the
    arch/i386/mm/init.c file in function one_highpage_init ...... I have
    Machine with 16GB RAM and 2 - Xeon 2.4GHz Processors .....

    The code which I added for memory reservation in kernel is :

    void __init one_highpage_init(struct page *page, int pfn, int bad_ppro)
    {
            if (!page_is_ram(pfn)) {
                    SetPageReserved(page);
                    return;
            }
            
            if (bad_ppro && page_kills_ppro(pfn)) {
                    SetPageReserved(page);
                    return;
            }

    // Here's the code which i added for memory reservation ..... i m
    setting 0xC4 in page->count just because i will know later that these
    pages have been reserved by me ... not by kernel .....

            if ((unsigned long)(page - mem_map) > 0x80000) {
                    SetPageReserved(page);
                    set_bit(PG_highmem, &page->flags);
                    atomic_set(&page->count, 0xC4);
                    totalhigh_pages++;
                    return;
            }

    // My code Ends here
            
            ClearPageReserved(page);
            set_bit(PG_highmem, &page->flags);
            atomic_set(&page->count, 1);
            __free_page(page);
            totalhigh_pages++;
    }

    After this in my module, i simply use kmap_atomic to map the page
    reserved by me and tried to use that ........ its working perfect in
    both 2.4.x series and also working in 2.6.x .....

    > You should definitely consider moving to 2.6 to get a better response.
    >

    i already moved to 2.6.x already !!! but the current requiment is to
    use RHEL3 Kernel which is 2.4.21-27.ELsmp

    I think its now more clear !!!! waiting for your resposes !!!

    -- 
    Fawad Lateef
    -
    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/
    

  • Next message: Tony Lindgren: "Re: [PATCH] i386 No-Idle-Hz aka Dynamic-Ticks 5"