1. 11 11月, 2015 1 次提交
    • A
      MIPS: Initial implementation of a VDSO · ebb5e78c
      Alex Smith 提交于
      Add an initial implementation of a proper (i.e. an ELF shared library)
      VDSO. With this commit it does not export any symbols, it only replaces
      the current signal return trampoline page. A later commit will add user
      implementations of gettimeofday()/clock_gettime().
      
      To support both new toolchains and old ones which don't generate ABI
      flags section, we define its content manually and then use a tool
      (genvdso) to patch up the section to have the correct name and type.
      genvdso also extracts symbol offsets ({,rt_}sigreturn) needed by the
      kernel, and generates a C file containing a "struct mips_vdso_image"
      containing both the VDSO data and these offsets. This C file is
      compiled into the kernel.
      
      On 64-bit kernels we require a different VDSO for each supported ABI,
      so we may build up to 3 different VDSOs. The VDSO to use is selected by
      the mips_abi structure.
      
      A kernel/user shared data page is created and mapped below the VDSO
      image. This is currently empty, but will be used by the user time
      function implementations which are added later.
      
      [markos.chandras@imgtec.com:
      - Add more comments
      - Move abi detection in genvdso.h since it's the get_symbol function
      that needs it.
      - Add an R6 specific way to calculate the base address of VDSO in order
      to avoid the branch instruction which affects performance.
      - Do not patch .gnu.attributes since it's not needed for dynamic linking.
      - Simplify Makefile a little bit.
      - checkpatch fixes
      - Restrict VDSO support for binutils < 2.25 for pre-R6
      - Include atomic64.h for O32 variant on MIPS64]
      Signed-off-by: NAlex Smith <alex.smith@imgtec.com>
      Signed-off-by: NMarkos Chandras <markos.chandras@imgtec.com>
      Cc: Matthew Fortune <matthew.fortune@imgtec.com>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/11337/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      ebb5e78c
  2. 30 5月, 2014 1 次提交
    • M
      MIPS: net: Add BPF JIT · c6610de3
      Markos Chandras 提交于
      This adds initial support for BPF-JIT on MIPS
      
      Tested on mips32 LE/BE and mips64 BE/n64 using
      dhcp, ping and various tcpdump filters.
      
      Benchmarking:
      
      Assuming the remote MIPS target uses 192.168.154.181
      as its IP address, and the local host uses 192.168.154.136,
      the following results can be obtained using the following
      tcpdump filter (catches no frames) and a simple
      'time ping -f -c 1000000' command.
      
      [root@(none) ~]# tcpdump -p -n -s 0 -i eth0 net 10.0.0.0/24 -d
      (000) ldh      [12]
      (001) jeq      #0x800           jt 2	jf 8
      (002) ld       [26]
      (003) and      #0xffffff00
      (004) jeq      #0xa000000       jt 16	jf 5
      (005) ld       [30]
      (006) and      #0xffffff00
      (007) jeq      #0xa000000       jt 16	jf 17
      (008) jeq      #0x806           jt 10	jf 9
      (009) jeq      #0x8035          jt 10	jf 17
      (010) ld       [28]
      (011) and      #0xffffff00
      (012) jeq      #0xa000000       jt 16	jf 13
      (013) ld       [38]
      (014) and      #0xffffff00
      (015) jeq      #0xa000000       jt 16	jf 17
      (016) ret      #65535
      
      - BPF-JIT Disabled
      
      real    1m38.005s
      user    0m1.510s
      sys     0m6.710s
      
      - BPF-JIT Enabled
      
      real    1m35.215s
      user    0m1.200s
      sys     0m4.140s
      
      [ralf@linux-mips.org: Resolved conflict.]
      Signed-off-by: NMarkos Chandras <markos.chandras@imgtec.com>
      c6610de3
  3. 23 5月, 2014 1 次提交
    • R
      MIPS: math-emu: Move various objects into an ar library. · 593d33fe
      Ralf Baechle 提交于
      ieee754d.o contains only debug code and dp_sqrt.o and sp_sqrt.o contain
      code which for MIPS I/II/III systems we don't want to link.  Again the
      savings can be considerable for some systems:
      
      $ mips-linux-size --totals ieee754d.o dp_sqrt.o sp_sqrt.o
         text	   data	    bss	    dec	    hex	filename
         1624	      0	      0	   1624	    658	ieee754d.o
         2016	      0	      0	   2016	    7e0	dp_sqrt.o
          736	      0	      0	    736	    2e0	sp_sqrt.o
         4376	      0	      0	   4376	   1118	(TOTALS)
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      593d33fe
  4. 08 5月, 2013 1 次提交
  5. 20 10月, 2010 1 次提交
  6. 05 8月, 2010 3 次提交