diff for duplicates of <20051027204104.GA14365@sgi.com> diff --git a/a/1.txt b/N1/1.txt index 7bc9f85..81fa2b5 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -13,7 +13,8 @@ value from the mm argument introduced with this patch. Index: linux-ia64-test/include/asm-ia64/machvec.h -=================================--- linux-ia64-test.orig/include/asm-ia64/machvec.h +=================================================================== +--- linux-ia64-test.orig/include/asm-ia64/machvec.h +++ linux-ia64-test/include/asm-ia64/machvec.h @@ -26,7 +26,7 @@ typedef void ia64_mv_irq_init_t (void); @@ -25,7 +26,8 @@ Index: linux-ia64-test/include/asm-ia64/machvec.h typedef unsigned int ia64_mv_local_vector_to_irq (u8); typedef char *ia64_mv_pci_get_legacy_mem_t (struct pci_bus *); Index: linux-ia64-test/arch/ia64/mm/tlb.c -=================================--- linux-ia64-test.orig/arch/ia64/mm/tlb.c +=================================================================== +--- linux-ia64-test.orig/arch/ia64/mm/tlb.c +++ linux-ia64-test/arch/ia64/mm/tlb.c @@ -86,10 +86,15 @@ } @@ -61,7 +63,7 @@ Index: linux-ia64-test/arch/ia64/mm/tlb.c +#endif nbits = ia64_fls(size + 0xfff); - while (unlikely (((1UL << nbits) & purge.mask) = 0) && (nbits < purge.max_bits)) + while (unlikely (((1UL << nbits) & purge.mask) == 0) && (nbits < purge.max_bits)) @@ -153,7 +155,7 @@ start &= ~((1UL << nbits) - 1); @@ -72,7 +74,8 @@ Index: linux-ia64-test/arch/ia64/mm/tlb.c do { ia64_ptcl(start, (nbits<<2)); Index: linux-ia64-test/arch/ia64/sn/kernel/sn2/sn2_smp.c -=================================--- linux-ia64-test.orig/arch/ia64/sn/kernel/sn2/sn2_smp.c +=================================================================== +--- linux-ia64-test.orig/arch/ia64/sn/kernel/sn2/sn2_smp.c +++ linux-ia64-test/arch/ia64/sn/kernel/sn2/sn2_smp.c @@ -177,6 +177,7 @@ @@ -104,7 +107,7 @@ Index: linux-ia64-test/arch/ia64/sn/kernel/sn2/sn2_smp.c + unsigned long end, unsigned long nbits) { int i, opt, shub1, cnode, mynasid, cpu, lcpu = 0, nasid, flushed = 0; -+ int mymm = (mm = current->active_mm); ++ int mymm = (mm == current->active_mm); volatile unsigned long *ptc0, *ptc1; - unsigned long itc, itc2, flags, data0 = 0, data1 = 0; - struct mm_struct *mm = current->active_mm; @@ -116,13 +119,13 @@ Index: linux-ia64-test/arch/ia64/sn/kernel/sn2/sn2_smp.c i++; } -+ if (i = 0) ++ if (i == 0) + return; + preempt_disable(); -- if (likely(i = 1 && lcpu = smp_processor_id())) { -+ if (likely(i = 1 && lcpu = smp_processor_id() && mymm)) { +- if (likely(i == 1 && lcpu == smp_processor_id())) { ++ if (likely(i == 1 && lcpu == smp_processor_id() && mymm)) { do { ia64_ptcl(start, nbits << 2); start += (1UL << nbits); @@ -130,8 +133,8 @@ Index: linux-ia64-test/arch/ia64/sn/kernel/sn2/sn2_smp.c return; } -- if (atomic_read(&mm->mm_users) = 1) { -+ if (atomic_read(&mm->mm_users) = 1 && mymm) { +- if (atomic_read(&mm->mm_users) == 1) { ++ if (atomic_read(&mm->mm_users) == 1 && mymm) { flush_tlb_mm(mm); __get_cpu_var(ptcstats).change_rid++; preempt_enable(); @@ -163,8 +166,14 @@ Index: linux-ia64-test/arch/ia64/sn/kernel/sn2/sn2_smp.c data0 = (data0 & ~SH2_PTC_ADDR_MASK) | (start & SH2_PTC_ADDR_MASK); for (i = 0; i < nix; i++) { nasid = nasids[i]; -- if ((!(sn2_ptctest & 3)) && unlikely(nasid = mynasid)) { -+ if ((!(sn2_ptctest & 3)) && unlikely(nasid = mynasid && mymm)) { +- if ((!(sn2_ptctest & 3)) && unlikely(nasid == mynasid)) { ++ if ((!(sn2_ptctest & 3)) && unlikely(nasid == mynasid && mymm)) { ia64_ptcga(start, nbits << 2); ia64_srlz_i(); } else { + +-- +To unsubscribe, send a message with 'unsubscribe linux-mm' in +the body to majordomo@kvack.org. For more info on Linux MM, +see: http://www.linux-mm.org/ . +Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> diff --git a/a/content_digest b/N1/content_digest index 6bd60fa..ca8db49 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,6 +1,6 @@ "From\0Dean Roe <roe@sgi.com>\0" "Subject\0[PATCH] - Avoid slow TLB purges on SGI Altix systems\0" - "Date\0Thu, 27 Oct 2005 20:41:04 +0000\0" + "Date\0Thu, 27 Oct 2005 15:41:04 -0500\0" "To\0tony.luck@intel.com\0" "Cc\0linux-ia64@vger.kernel.org" " linux-mm@kvack.org\0" @@ -21,7 +21,8 @@ "\n" "\n" "Index: linux-ia64-test/include/asm-ia64/machvec.h\n" - "=================================--- linux-ia64-test.orig/include/asm-ia64/machvec.h\n" + "===================================================================\n" + "--- linux-ia64-test.orig/include/asm-ia64/machvec.h\n" "+++ linux-ia64-test/include/asm-ia64/machvec.h\n" "@@ -26,7 +26,7 @@\n" " typedef void ia64_mv_irq_init_t (void);\n" @@ -33,7 +34,8 @@ " typedef unsigned int ia64_mv_local_vector_to_irq (u8);\n" " typedef char *ia64_mv_pci_get_legacy_mem_t (struct pci_bus *);\n" "Index: linux-ia64-test/arch/ia64/mm/tlb.c\n" - "=================================--- linux-ia64-test.orig/arch/ia64/mm/tlb.c\n" + "===================================================================\n" + "--- linux-ia64-test.orig/arch/ia64/mm/tlb.c\n" "+++ linux-ia64-test/arch/ia64/mm/tlb.c\n" "@@ -86,10 +86,15 @@\n" " }\n" @@ -69,7 +71,7 @@ "+#endif\n" " \n" " \tnbits = ia64_fls(size + 0xfff);\n" - " \twhile (unlikely (((1UL << nbits) & purge.mask) = 0) && (nbits < purge.max_bits))\n" + " \twhile (unlikely (((1UL << nbits) & purge.mask) == 0) && (nbits < purge.max_bits))\n" "@@ -153,7 +155,7 @@\n" " \tstart &= ~((1UL << nbits) - 1);\n" " \n" @@ -80,7 +82,8 @@ " \tdo {\n" " \t\tia64_ptcl(start, (nbits<<2));\n" "Index: linux-ia64-test/arch/ia64/sn/kernel/sn2/sn2_smp.c\n" - "=================================--- linux-ia64-test.orig/arch/ia64/sn/kernel/sn2/sn2_smp.c\n" + "===================================================================\n" + "--- linux-ia64-test.orig/arch/ia64/sn/kernel/sn2/sn2_smp.c\n" "+++ linux-ia64-test/arch/ia64/sn/kernel/sn2/sn2_smp.c\n" "@@ -177,6 +177,7 @@\n" " \n" @@ -112,7 +115,7 @@ "+\t\t unsigned long end, unsigned long nbits)\n" " {\n" " \tint i, opt, shub1, cnode, mynasid, cpu, lcpu = 0, nasid, flushed = 0;\n" - "+\tint mymm = (mm = current->active_mm);\n" + "+\tint mymm = (mm == current->active_mm);\n" " \tvolatile unsigned long *ptc0, *ptc1;\n" "-\tunsigned long itc, itc2, flags, data0 = 0, data1 = 0;\n" "-\tstruct mm_struct *mm = current->active_mm;\n" @@ -124,13 +127,13 @@ " \t\ti++;\n" " \t}\n" " \n" - "+\tif (i = 0)\n" + "+\tif (i == 0)\n" "+\t\treturn;\n" "+\n" " \tpreempt_disable();\n" " \n" - "-\tif (likely(i = 1 && lcpu = smp_processor_id())) {\n" - "+\tif (likely(i = 1 && lcpu = smp_processor_id() && mymm)) {\n" + "-\tif (likely(i == 1 && lcpu == smp_processor_id())) {\n" + "+\tif (likely(i == 1 && lcpu == smp_processor_id() && mymm)) {\n" " \t\tdo {\n" " \t\t\tia64_ptcl(start, nbits << 2);\n" " \t\t\tstart += (1UL << nbits);\n" @@ -138,8 +141,8 @@ " \t\treturn;\n" " \t}\n" " \n" - "-\tif (atomic_read(&mm->mm_users) = 1) {\n" - "+\tif (atomic_read(&mm->mm_users) = 1 && mymm) {\n" + "-\tif (atomic_read(&mm->mm_users) == 1) {\n" + "+\tif (atomic_read(&mm->mm_users) == 1 && mymm) {\n" " \t\tflush_tlb_mm(mm);\n" " \t\t__get_cpu_var(ptcstats).change_rid++;\n" " \t\tpreempt_enable();\n" @@ -171,10 +174,16 @@ " \t\t\tdata0 = (data0 & ~SH2_PTC_ADDR_MASK) | (start & SH2_PTC_ADDR_MASK);\n" " \t\tfor (i = 0; i < nix; i++) {\n" " \t\t\tnasid = nasids[i];\n" - "-\t\t\tif ((!(sn2_ptctest & 3)) && unlikely(nasid = mynasid)) {\n" - "+\t\t\tif ((!(sn2_ptctest & 3)) && unlikely(nasid = mynasid && mymm)) {\n" + "-\t\t\tif ((!(sn2_ptctest & 3)) && unlikely(nasid == mynasid)) {\n" + "+\t\t\tif ((!(sn2_ptctest & 3)) && unlikely(nasid == mynasid && mymm)) {\n" " \t\t\t\tia64_ptcga(start, nbits << 2);\n" " \t\t\t\tia64_srlz_i();\n" - " \t\t\t} else {" + " \t\t\t} else {\n" + "\n" + "--\n" + "To unsubscribe, send a message with 'unsubscribe linux-mm' in\n" + "the body to majordomo@kvack.org. For more info on Linux MM,\n" + "see: http://www.linux-mm.org/ .\n" + "Don't email: <a href=mailto:\"dont@kvack.org\"> email@kvack.org </a>" -cf33846dcfa63d2e9ee3c329d475dc55c9c247c75f1a1e6f892653b12d99a4ff +a7faebfab515b5104e34b728b3eca25d7ea3d5deca6f37c0aebf71331dbe1e72
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.