1. 06 Jul, 2010 3 commits
    • Chris Metcalf's avatar
      arch/tile: Add driver to enable access to the user dynamic network. · 9f9c0382
      Chris Metcalf authored
      This network (the "UDN") connects all the cpus on the chip in a
      wormhole-routed dynamic network.  Subrectangles of the chip can
      be allocated by a "create" ioctl on /dev/hardwall, and then to access the
      UDN in that rectangle, tasks must perform an "activate" ioctl on that
      same file object after affinitizing themselves to a single cpu in
      the region.  Sending a wormhole-routed message that tries to leave
      that subrectangle causes all activated tasks to receive a SIGILL
      (just as they would if they tried to access the UDN without first
      activating themselves to a hardwall rectangle).
      
      The original submission of this code to LKML had the driver
      instantiated under /proc/tile/hardwall.  Now we just use a character
      device for this, conventionally /dev/hardwall.  Some futures planning
      for the TILE-Gx chip suggests that we may want to have other types of
      devices that share the general model of "bind a task to a cpu, then
      'activate' a file descriptor on a pseudo-device that gives access to
      some hardware resource".  As such, we are using a device rather
      than, for example, a syscall, to set up and activate this code.
      
      As part of this change, the compat_ptr() declaration was fixed and used
      to pass the compat_ioctl argument to the normal ioctl.  So far we limit
      compat code to 2GB, so the difference between zero-extend and sign-extend
      (the latter being correct, eventually) had been overlooked.
      Signed-off-by: default avatarChris Metcalf <cmetcalf@tilera.com>
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      9f9c0382
    • Chris Metcalf's avatar
      arch/tile: Enable more sophisticated IRQ model for 32-bit chips. · fb702b94
      Chris Metcalf authored
      This model is based on the on-chip interrupt model used by the
      TILE-Gx next-generation hardware, and interacts much more cleanly
      with the Linux generic IRQ layer.
      
      The change includes modifications to the Tilera hypervisor, which
      are reflected in the hypervisor headers in arch/tile/include/arch/.
      Signed-off-by: default avatarChris Metcalf <cmetcalf@tilera.com>
      Acked-by: default avatarThomas Gleixner <tglx@linutronix.de>
      fb702b94
    • Chris Metcalf's avatar
      Move list types from <linux/list.h> to <linux/types.h>. · de5d9bf6
      Chris Metcalf authored
      This allows a list_head (or hlist_head, etc.) to be used from places
      that used to be impractical, in particular <asm/processor.h>, which
      used to cause include file recursion: <linux/list.h> includes
      <linux/prefetch.h>, which always includes <asm/processor.h> for the
      prefetch macros, as well as <asm/system.h>, which often includes
      <asm/processor.h> directly or indirectly.
      
      This avoids a lot of painful workaround hackery on the tile
      architecture, where we use a list_head in the thread_struct to chain
      together tasks that are activated on a particular hardwall.
      Signed-off-by: default avatarChris Metcalf <cmetcalf@tilera.com>
      Reviewed-by: default avatarMatthew Wilcox <willy@linux.intel.com>
      de5d9bf6
  2. 25 Jun, 2010 2 commits
  3. 12 Jun, 2010 1 commit
  4. 11 Jun, 2010 34 commits