1. 20 4月, 2009 6 次提交
  2. 16 4月, 2009 6 次提交
  3. 10 4月, 2009 1 次提交
  4. 08 4月, 2009 1 次提交
  5. 07 4月, 2009 1 次提交
  6. 04 4月, 2009 1 次提交
    • M
      sh: Fix up DSP context save/restore. · 01ab1039
      Michael Trimarchi 提交于
      There were a number of issues with the DSP context save/restore code,
      mostly left-over relics from when it was introduced on SH3-DSP with
      little follow-up testing, resulting in things like task_pt_dspregs()
      referencing incorrect state on the stack.
      
      This follows the MIPS convention of tracking the DSP state in the
      thread_struct and handling the state save/restore in switch_to() and
      finish_arch_switch() respectively. The regset interface is also updated,
      which allows us to finally be rid of task_pt_dspregs() and the special
      cased task_pt_regs().
      Signed-off-by: NMichael Trimarchi <michael@evidence.eu.com>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      01ab1039
  7. 03 4月, 2009 1 次提交
  8. 02 4月, 2009 1 次提交
  9. 31 3月, 2009 1 次提交
  10. 30 3月, 2009 1 次提交
  11. 20 3月, 2009 1 次提交
  12. 17 3月, 2009 2 次提交
    • P
      sh: Flush only the needed range when unmapping a VMA. · c2035184
      Paul Mundt 提交于
      This follows the ARM change from Aaro Koskinen:
      
      	When unmapping N pages (e.g. shared memory) the amount of TLB
      	flushes done can be (N*PAGE_SIZE/ZAP_BLOCK_SIZE)*N although it
      	should be N at maximum. With PREEMPT kernel ZAP_BLOCK_SIZE is 8
      	pages, so there is a noticeable performance penalty when
      	unmapping a large VMA and the system is spending its time in
      	flush_tlb_range().
      
      	The problem is that tlb_end_vma() is always flushing the full VMA
      	range. The subrange that needs to be flushed can be calculated by
      	tlb_remove_tlb_entry(). This approach was suggested by Hugh
      	Dickins, and is also used by other arches.
      
      	The speed increase is roughly 3x for 8M mappings and for larger
      	mappings even more.
      
      Bits and peices are taken from the ARM patch as well as the existing
      arch/um implementation that is quite similar.
      
      The end result is a significant reduction in both partial and full TLB
      flushes initiated through flush_tlb_range().
      
      At the same time, the nommu implementation was broken, had a superfluous
      cache flush, and subsequently would have triggered a BUG_ON() if a
      code-path had triggered it. Tidy this up for correctness and provide a
      nopped-out implementation there.
      
      More background on the initial discussion can be found at:
      
      	http://marc.info/?t=123609820900002&r=1&w=2
      	http://marc.info/?t=123660375800003&r=1&w=2Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      c2035184
    • P
      sh: Support for extended ASIDs on PTEAEX-capable SH-X3 cores. · 8263a67e
      Paul Mundt 提交于
      This adds support for extended ASIDs (up to 16-bits) on newer SH-X3 cores
      that implement the PTAEX register and respective functionality. Presently
      only the 65nm SH7786 (90nm only supports legacy 8-bit ASIDs).
      
      The main change is in how the PTE is written out when loading the entry
      in to the TLB, as well as in how the TLB entry is selectively flushed.
      
      While SH-X2 extended mode splits out the memory-mapped U and I-TLB data
      arrays for extra bits, extended ASID mode splits out the address arrays.
      While we don't use the memory-mapped data array access, the address
      array accesses are necessary for selective TLB flushes, so these are
      implemented newly and replace the generic SH-4 implementation.
      
      With this, TLB flushes in switch_mm() are almost non-existent on newer
      parts.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      8263a67e
  13. 16 3月, 2009 2 次提交
  14. 11 3月, 2009 1 次提交
  15. 10 3月, 2009 3 次提交
  16. 03 3月, 2009 1 次提交
  17. 27 2月, 2009 3 次提交
  18. 16 2月, 2009 1 次提交
    • P
      net: new user space API for time stamping of incoming and outgoing packets · cb9eff09
      Patrick Ohly 提交于
      User space can request hardware and/or software time stamping.
      Reporting of the result(s) via a new control message is enabled
      separately for each field in the message because some of the
      fields may require additional computation and thus cause overhead.
      User space can tell the different kinds of time stamps apart
      and choose what suits its needs.
      
      When a TX timestamp operation is requested, the TX skb will be cloned
      and the clone will be time stamped (in hardware or software) and added
      to the socket error queue of the skb, if the skb has a socket
      associated with it.
      
      The actual TX timestamp will reach userspace as a RX timestamp on the
      cloned packet. If timestamping is requested and no timestamping is
      done in the device driver (potentially this may use hardware
      timestamping), it will be done in software after the device's
      start_hard_xmit routine.
      Signed-off-by: NPatrick Ohly <patrick.ohly@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      cb9eff09
  19. 29 1月, 2009 6 次提交