1. 23 8月, 2008 1 次提交
  2. 22 8月, 2008 2 次提交
  3. 21 8月, 2008 3 次提交
  4. 15 8月, 2008 3 次提交
    • N
      x86, pat: avoid highmem cache attribute aliasing · 5843d9a4
      Nick Piggin 提交于
      Highmem code can leave ptes and tlb entries around for a given page even after
      kunmap, and after it has been freed.
      
      >From what I can gather, the PAT code may change the cache attributes of
      arbitrary physical addresses (ie. including highmem pages), which would result
      in aliases in the case that it operates on one of these lazy tlb highmem
      pages.
      
      Flushing kmaps should solve the problem.
      
      I've also just added code for conditional flushing if we haven't got
      any dangling highmem aliases -- this should help performance if we
      change page attributes frequently or systems that aren't using much
      highmem pages (eg. if < 4G RAM). Should be turned into 2 patches, but
      just for RFC...
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      5843d9a4
    • S
      introduce two APIs for page attribute · 1ac2f7d5
      Shaohua Li 提交于
      Introduce two APIs for page attribute. flushing tlb/cache in every page
      attribute is expensive. AGP gart usually will do a lot of operations to
      change a page to uc, new APIs can reduce flush.
      Signed-off-by: NShaohua Li <shaohua.li@intel.com>
      Cc: airlied@linux.ie
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Arjan van de Ven <arjan@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      1ac2f7d5
    • H
      x86: fix /proc/meminfo DirectMap · a06de630
      Hugh Dickins 提交于
      Do we actually want these DirectMap lines in the x86 /proc/meminfo?
      I can see they're interesting to CPA developers and TLB optimizers,
      but they don't fit its usual "where has all my memory gone?" usage.
      If they are to stay, here are some fixes.
      
      1. On x86_32 without PAE, they're not 2M but 4M pages: no need to
         mess with the internal enum, but show the right name to users.
      
      2. Many machines can never show anything but 0 for DirectMap1G,
         so suppress that line unless direct_gbpages are really enabled.
      
      3. The unit in /proc/meminfo is kB not number of pages: HugePages
         messed that up, but they're an example to regret not to follow.
      
      4. Once we use kB, it's easy to see that 1GB has gone missing (which
         explains why CONFIG_CPA_DEBUG=y soon wraps DirectMap2M negative):
         because head_64.S's level2_ident_pgt entries were not counted.
         My fix is not ideal, but works for more and for less than 1G,
         and avoids interfering with early bootup pagetable contortions.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      a06de630
  5. 14 8月, 2008 1 次提交
  6. 13 7月, 2008 1 次提交
  7. 11 7月, 2008 1 次提交
  8. 08 7月, 2008 2 次提交
    • T
      x86: janitor CPA statistics patch · 65280e61
      Thomas Gleixner 提交于
      1) Remove __meminit from update_pages_count. It is used inside
      split_pages()
      
      2) Make the code depend on PROC_FS. Doing statistics for nothing is
      useless and not adding useless code is nice to the Linux tiny folks.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      65280e61
    • A
      x86, generic: CPA add statistics about state of direct mapping v4 · ce0c0e50
      Andi Kleen 提交于
      Add information about the mapping state of the direct mapping to
      /proc/meminfo. I chose /proc/meminfo because that is where all the other
      memory statistics are too and it is a generally useful metric even
      outside debugging situations. A lot of split kernel pages means the
      kernel will run slower.
      
      This way we can see how many large pages are really used for it and how
      many are split.
      
      Useful for general insight into the kernel.
      
      v2: Add hotplug locking to 64bit to plug a very obscure theoretical race.
          32bit doesn't need it because it doesn't support hotadd for lowmem.
          Fix some typos
      v3: Rename dpages_cnt
          Add CONFIG ifdef for count update as requested by tglx
          Expand description
      v4: Fix stupid bugs added in v3
          Move update_page_count to pageattr.c
      Signed-off-by: NAndi Kleen <andi@firstfloor.org>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      ce0c0e50
  9. 26 6月, 2008 1 次提交
  10. 12 6月, 2008 1 次提交
  11. 24 5月, 2008 1 次提交
  12. 01 5月, 2008 1 次提交
    • S
      x86 PAT: fix performance drop for glx, use UC minus for ioremap(),... · de33c442
      Suresh Siddha 提交于
      x86 PAT: fix performance drop for glx, use UC minus for ioremap(), ioremap_nocache() and pci_mmap_page_range()
      
      Use UC_MINUS for ioremap(), ioremap_nocache() instead of strong UC.
      Once all the X drivers move to ioremap_wc(), we can go back to strong
      UC semantics for ioremap() and ioremap_nocache().
      
      To avoid attribute aliasing issues, pci_mmap_page_range() will also
      use UC_MINUS for default non write-combining mapping request.
      
      Next steps:
      	a) change all the video drivers using ioremap() or ioremap_nocache()
      	   and adding WC MTTR using mttr_add() to ioremap_wc()
      
      	b) for strict usage, we can go back to strong uc semantics
      	   for ioremap() and ioremap_nocache() after some grace period for
      	   completing step-a.
      
      	c) user level X server needs to use the appropriate method for setting
      	   up WC mapping (like using resourceX_wc sysfs file instead of
      	   adding MTRR for WC and using /dev/mem or resourceX under /sys)
      Signed-off-by: NSuresh Siddha <suresh.b.siddha@intel.com>
      Signed-off-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      de33c442
  13. 25 4月, 2008 3 次提交
  14. 19 4月, 2008 1 次提交
  15. 17 4月, 2008 5 次提交
  16. 27 3月, 2008 1 次提交
  17. 03 3月, 2008 1 次提交
  18. 01 3月, 2008 1 次提交
    • T
      x86: CPA: avoid split of alias mappings · 8be8f54b
      Thomas Gleixner 提交于
      avoid over-eager large page splitup.
      
      When the target area needs to be split or is split already (ioremap)
      then the current code enforces the split of large mappings in the alias
      regions even if we could avoid it.
      
      Use a separate variable processed in the cpa_data structure to carry
      the number of pages which have been processed instead of reusing the
      numpages variable. This keeps numpages intact and gives the alias code
      a chance to keep large mappings intact.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      8be8f54b
  19. 26 2月, 2008 1 次提交
  20. 21 2月, 2008 1 次提交
  21. 19 2月, 2008 4 次提交
  22. 15 2月, 2008 2 次提交
  23. 13 2月, 2008 1 次提交
  24. 10 2月, 2008 1 次提交