“ed7e74abf2f3a41238e5813d1e8fde998e924ef8”上不存在“paddle/fluid/operators/pool_op.cc”
  1. 12 5月, 2008 1 次提交
    • P
      [POWERPC] ppc: More compile fixes · 0d4b6b90
      Paul Mackerras 提交于
      This fixes a few more miscellaneous compile problems with ARCH=ppc.
      
      1. Don't compile devres.c on ARCH=ppc, it doesn't have ioremap_flags.
      2. Include <asm/irq.h> in setup.c for the __DO_IRQ_CANON definition.
      3. Include <linux/proc_fs.h> in residual.c for the
         definition of create_proc_read_entry.
      4. Fix xchg_ptr to be a static inline to eliminate a compiler warning.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      0d4b6b90
  2. 29 4月, 2008 1 次提交
  3. 28 4月, 2008 1 次提交
    • N
      mm: introduce pte_special pte bit · 7e675137
      Nick Piggin 提交于
      s390 for one, cannot implement VM_MIXEDMAP with pfn_valid, due to their memory
      model (which is more dynamic than most).  Instead, they had proposed to
      implement it with an additional path through vm_normal_page(), using a bit in
      the pte to determine whether or not the page should be refcounted:
      
      vm_normal_page()
      {
      	...
              if (unlikely(vma->vm_flags & (VM_PFNMAP|VM_MIXEDMAP))) {
                      if (vma->vm_flags & VM_MIXEDMAP) {
      #ifdef s390
      			if (!mixedmap_refcount_pte(pte))
      				return NULL;
      #else
                              if (!pfn_valid(pfn))
                                      return NULL;
      #endif
                              goto out;
                      }
      	...
      }
      
      This is fine, however if we are allowed to use a bit in the pte to determine
      refcountedness, we can use that to _completely_ replace all the vma based
      schemes.  So instead of adding more cases to the already complex vma-based
      scheme, we can have a clearly seperate and simple pte-based scheme (and get
      slightly better code generation in the process):
      
      vm_normal_page()
      {
      #ifdef s390
      	if (!mixedmap_refcount_pte(pte))
      		return NULL;
      	return pte_page(pte);
      #else
      	...
      #endif
      }
      
      And finally, we may rather make this concept usable by any architecture rather
      than making it s390 only, so implement a new type of pte state for this.
      Unfortunately the old vma based code must stay, because some architectures may
      not be able to spare pte bits.  This makes vm_normal_page a little bit more
      ugly than we would like, but the 2 cases are clearly seperate.
      
      So introduce a pte_special pte state, and use it in mm/memory.c.  It is
      currently a noop for all architectures, so this doesn't actually result in any
      compiled code changes to mm/memory.o.
      
      BTW:
      I haven't put vm_normal_page() into arch code as-per an earlier suggestion.
      The reason is that, regardless of where vm_normal_page is actually
      implemented, the *abstraction* is still exactly the same. Also, while it
      depends on whether the architecture has pte_special or not, that is the
      only two possible cases, and it really isn't an arch specific function --
      the role of the arch code should be to provide primitive functions and
      accessors with which to build the core code; pte_special does that. We do
      not want architectures to know or care about vm_normal_page itself, and
      we definitely don't want them being able to invent something new there
      out of sight of mm/ code. If we made vm_normal_page an arch function, then
      we have to make vm_insert_mixed (next patch) an arch function too. So I
      don't think moving it to arch code fundamentally improves any abstractions,
      while it does practically make the code more difficult to follow, for both
      mm and arch developers, and easier to misuse.
      
      [akpm@linux-foundation.org: build fix]
      Signed-off-by: NNick Piggin <npiggin@suse.de>
      Acked-by: NCarsten Otte <cotte@de.ibm.com>
      Cc: Jared Hulbert <jaredeh@gmail.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      7e675137
  4. 24 4月, 2008 1 次提交
  5. 21 4月, 2008 2 次提交
  6. 19 4月, 2008 1 次提交
  7. 08 3月, 2008 1 次提交
  8. 14 2月, 2008 1 次提交
  9. 09 2月, 2008 1 次提交
    • M
      CONFIG_HIGHPTE vs. sub-page page tables. · 2f569afd
      Martin Schwidefsky 提交于
      Background: I've implemented 1K/2K page tables for s390.  These sub-page
      page tables are required to properly support the s390 virtualization
      instruction with KVM.  The SIE instruction requires that the page tables
      have 256 page table entries (pte) followed by 256 page status table entries
      (pgste).  The pgstes are only required if the process is using the SIE
      instruction.  The pgstes are updated by the hardware and by the hypervisor
      for a number of reasons, one of them is dirty and reference bit tracking.
      To avoid wasting memory the standard pte table allocation should return
      1K/2K (31/64 bit) and 2K/4K if the process is using SIE.
      
      Problem: Page size on s390 is 4K, page table size is 1K or 2K.  That means
      the s390 version for pte_alloc_one cannot return a pointer to a struct
      page.  Trouble is that with the CONFIG_HIGHPTE feature on x86 pte_alloc_one
      cannot return a pointer to a pte either, since that would require more than
      32 bit for the return value of pte_alloc_one (and the pte * would not be
      accessible since its not kmapped).
      
      Solution: The only solution I found to this dilemma is a new typedef: a
      pgtable_t.  For s390 pgtable_t will be a (pte *) - to be introduced with a
      later patch.  For everybody else it will be a (struct page *).  The
      additional problem with the initialization of the ptl lock and the
      NR_PAGETABLE accounting is solved with a constructor pgtable_page_ctor and
      a destructor pgtable_page_dtor.  The page table allocation and free
      functions need to call these two whenever a page table page is allocated or
      freed.  pmd_populate will get a pgtable_t instead of a struct page pointer.
       To get the pgtable_t back from a pmd entry that has been installed with
      pmd_populate a new function pmd_pgtable is added.  It replaces the pmd_page
      call in free_pte_range and apply_to_pte_range.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: <linux-arch@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      2f569afd
  10. 08 2月, 2008 1 次提交
  11. 06 2月, 2008 1 次提交
  12. 28 1月, 2008 4 次提交
  13. 22 1月, 2008 1 次提交
  14. 24 12月, 2007 2 次提交
    • S
      [POWERPC] 4xx: Fix TLB 0 problem with CONFIG_SERIAL_TEXT_DEBUG · f4151b9b
      Stefan Roese 提交于
      Right now TLB entry 0 ist used as UART0 mapping for the early debug
      output (via CONFIG_SERIAL_TEXT_DEBUG). This causes problems when many
      TLB's get used upon Linux bootup (e.g. while PCIe scanning behind
      bridges and/or switches on 440SPe platforms). This will overwrite the
      TLB 0 entry and further debug output's may crash/hang the system.
      
      This patch moves the early debug UART0 TLB entry from 0 to 62 as done
      in arch/powerpc. This way it is in the "pinned" area and will not get
      overwritten. Also the arch/ppc/mm/44x_mmu.c code is now synced with the
      newer code from arch/powerpc.
      Signed-off-by: NStefan Roese <sr@denx.de>
      Signed-off-by: NJosh Boyer <jwboyer@linux.vnet.ibm.com>
      f4151b9b
    • B
      [POWERPC] Reworking machine check handling and Fix 440/440A · 47c0bd1a
      Benjamin Herrenschmidt 提交于
      This adds a cputable function pointer for the CPU-side machine
      check handling. The semantic is still the same as the old one,
      the one in ppc_md. overrides the one in cputable, though
      ultimately we'll want to change that so the CPU gets first.
      
      This removes CONFIG_440A which was a problem for multiplatform
      kernels and instead fixes up the IVOR at runtime from a setup_cpu
      function. The "A" version of the machine check also tweaks the
      regs->trap value to differenciate the 2 versions at the C level.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NJosh Boyer <jwboyer@linux.vnet.ibm.com>
      47c0bd1a
  15. 20 12月, 2007 1 次提交
  16. 23 10月, 2007 1 次提交
    • G
      ppc: fix AT_VECTOR_SIZE on arch/ppc · 3650b0a3
      Grant Likely 提交于
      Commit 4f9a58d7 ("increase
      AT_VECTOR_SIZE to terminate saved_auxv properly") changes the size of
      AT_VECTOR_SIZE from hard coded '44' to a calculation based on the value
      of AT_VECTOR_SIZE_ARCH and AT_VECTOR_SIZE_BASE.
      
      The change works for arch/powerpc, but it breaks arch/ppc because the
      needed AT_VECTOR_SIZE_ARCH is not present in include/asm-ppc/system.h
      and a default value of 0 is used instead.  This results in
      AT_VECTOR_SIZE being too small and it causes a kernel crash on loading
      init.
      Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3650b0a3
  17. 20 10月, 2007 1 次提交
  18. 19 10月, 2007 1 次提交
  19. 17 10月, 2007 4 次提交
  20. 22 9月, 2007 1 次提交
  21. 17 9月, 2007 1 次提交
  22. 14 9月, 2007 1 次提交
  23. 23 8月, 2007 1 次提交
  24. 17 8月, 2007 1 次提交
  25. 25 7月, 2007 2 次提交
  26. 22 7月, 2007 1 次提交
  27. 20 7月, 2007 1 次提交
  28. 18 7月, 2007 1 次提交
  29. 17 7月, 2007 1 次提交
  30. 12 7月, 2007 2 次提交