lkml.org 
[lkml]   [2000]   [Dec]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: Signal 11


I'll try.

Jeff


On Fri, Dec 08, 2000 at 10:24:55PM +0000, David Woodhouse wrote:
> On Fri, 8 Dec 2000, Jeff V. Merkey wrote:
>
> > I have not seen it on UP systems either. I only see it on SMP systems.
> > After trying very hard last night, I was able to get my 4 x PPro system to
> > do it with 2.4.0-12. It seems related to loading in some way. If you
> > have more than two processors, the loading is less since there's more
> > processors, and for whatever reason, it makes it harder to produce
> > whatever race condition is causing it. I can get it to happen
> > pretty easily on a 2 x PII system.
>
> Can you reproduce it with bcrl's patch below:
>
> Index: mm/memory.c
> ===================================================================
> RCS file: /net/passion/inst/cvs/linux/mm/memory.c,v
> retrieving revision 1.2.2.40
> diff -u -r1.2.2.40 memory.c
> --- mm/memory.c 2000/12/05 13:33:39 1.2.2.40
> +++ mm/memory.c 2000/12/08 22:24:09
> @@ -860,6 +860,7 @@
> /*
> * Ok, we need to copy. Oh, well..
> */
> + set_pte(page_table, pte);
> spin_unlock(&mm->page_table_lock);
> new_page = page_cache_alloc();
> if (!new_page)
> @@ -870,6 +871,12 @@
> * Re-check the pte - we dropped the lock
> */
> if (pte_same(*page_table, pte)) {
> + /* We are changing the pte, so get rid of the old
> + * one to avoid races with the hardware, this really
> + * only affects the accessed bit here.
> + */
> + pte = ptep_get_and_clear(page_table);
> +
> if (PageReserved(old_page))
> ++mm->rss;
> break_cow(vma, old_page, new_page, address, page_table);
> @@ -1216,12 +1223,14 @@
> return do_swap_page(mm, vma, address, pte,
> pte_to_swp_entry(entry), write_access);
> }
>
> + entry = ptep_get_and_clear(pte);
> if (write_access) {
> if (!pte_write(entry))
> return do_wp_page(mm, vma, address, pte, entry);
>
> entry = pte_mkdirty(entry);
> }
> +
> entry = pte_mkyoung(entry);
> establish_pte(vma, address, pte, entry);
> spin_unlock(&mm->page_table_lock);
>
>
> --
> dwmw2
>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 12:52    [W:0.482 / U:0.440 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site