1. 01 4月, 2006 1 次提交
  2. 31 3月, 2006 1 次提交
    • J
      [PATCH] Introduce sys_splice() system call · 5274f052
      Jens Axboe 提交于
      This adds support for the sys_splice system call. Using a pipe as a
      transport, it can connect to files or sockets (latter as output only).
      
      From the splice.c comments:
      
         "splice": joining two ropes together by interweaving their strands.
      
         This is the "extended pipe" functionality, where a pipe is used as
         an arbitrary in-memory buffer. Think of a pipe as a small kernel
         buffer that you can use to transfer data from one end to the other.
      
         The traditional unix read/write is extended with a "splice()" operation
         that transfers data buffers to or from a pipe buffer.
      
         Named by Larry McVoy, original implementation from Linus, extended by
         Jens to support splicing to files and fixing the initial implementation
         bugs.
      Signed-off-by: NJens Axboe <axboe@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      5274f052
  3. 29 3月, 2006 1 次提交
  4. 24 3月, 2006 2 次提交
    • P
      [PATCH] cpuset memory spread: slab cache format · fffb60f9
      Paul Jackson 提交于
      Rewrap the overly long source code lines resulting from the previous
      patch's addition of the slab cache flag SLAB_MEM_SPREAD.  This patch
      contains only formatting changes, and no function change.
      Signed-off-by: NPaul Jackson <pj@sgi.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      fffb60f9
    • P
      [PATCH] cpuset memory spread: slab cache filesystems · 4b6a9316
      Paul Jackson 提交于
      Mark file system inode and similar slab caches subject to SLAB_MEM_SPREAD
      memory spreading.
      
      If a slab cache is marked SLAB_MEM_SPREAD, then anytime that a task that's
      in a cpuset with the 'memory_spread_slab' option enabled goes to allocate
      from such a slab cache, the allocations are spread evenly over all the
      memory nodes (task->mems_allowed) allowed to that task, instead of favoring
      allocation on the node local to the current cpu.
      
      The following inode and similar caches are marked SLAB_MEM_SPREAD:
      
          file                               cache
          ====                               =====
          fs/adfs/super.c                    adfs_inode_cache
          fs/affs/super.c                    affs_inode_cache
          fs/befs/linuxvfs.c                 befs_inode_cache
          fs/bfs/inode.c                     bfs_inode_cache
          fs/block_dev.c                     bdev_cache
          fs/cifs/cifsfs.c                   cifs_inode_cache
          fs/coda/inode.c                    coda_inode_cache
          fs/dquot.c                         dquot
          fs/efs/super.c                     efs_inode_cache
          fs/ext2/super.c                    ext2_inode_cache
          fs/ext2/xattr.c (fs/mbcache.c)     ext2_xattr
          fs/ext3/super.c                    ext3_inode_cache
          fs/ext3/xattr.c (fs/mbcache.c)     ext3_xattr
          fs/fat/cache.c                     fat_cache
          fs/fat/inode.c                     fat_inode_cache
          fs/freevxfs/vxfs_super.c           vxfs_inode
          fs/hpfs/super.c                    hpfs_inode_cache
          fs/isofs/inode.c                   isofs_inode_cache
          fs/jffs/inode-v23.c                jffs_fm
          fs/jffs2/super.c                   jffs2_i
          fs/jfs/super.c                     jfs_ip
          fs/minix/inode.c                   minix_inode_cache
          fs/ncpfs/inode.c                   ncp_inode_cache
          fs/nfs/direct.c                    nfs_direct_cache
          fs/nfs/inode.c                     nfs_inode_cache
          fs/ntfs/super.c                    ntfs_big_inode_cache_name
          fs/ntfs/super.c                    ntfs_inode_cache
          fs/ocfs2/dlm/dlmfs.c               dlmfs_inode_cache
          fs/ocfs2/super.c                   ocfs2_inode_cache
          fs/proc/inode.c                    proc_inode_cache
          fs/qnx4/inode.c                    qnx4_inode_cache
          fs/reiserfs/super.c                reiser_inode_cache
          fs/romfs/inode.c                   romfs_inode_cache
          fs/smbfs/inode.c                   smb_inode_cache
          fs/sysv/inode.c                    sysv_inode_cache
          fs/udf/super.c                     udf_inode_cache
          fs/ufs/super.c                     ufs_inode_cache
          net/socket.c                       sock_inode_cache
          net/sunrpc/rpc_pipe.c              rpc_inode_cache
      
      The choice of which slab caches to so mark was quite simple.  I marked
      those already marked SLAB_RECLAIM_ACCOUNT, except for fs/xfs, dentry_cache,
      inode_cache, and buffer_head, which were marked in a previous patch.  Even
      though SLAB_RECLAIM_ACCOUNT is for a different purpose, it marks the same
      potentially large file system i/o related slab caches as we need for memory
      spreading.
      
      Given that the rule now becomes "wherever you would have used a
      SLAB_RECLAIM_ACCOUNT slab cache flag before (usually the inode cache), use
      the SLAB_MEM_SPREAD flag too", this should be easy enough to maintain.
      Future file system writers will just copy one of the existing file system
      slab cache setups and tend to get it right without thinking.
      Signed-off-by: NPaul Jackson <pj@sgi.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      4b6a9316
  5. 22 3月, 2006 1 次提交
  6. 21 3月, 2006 3 次提交
    • A
      [NET] sem2mutex: net/ · 4a3e2f71
      Arjan van de Ven 提交于
      Semaphore to mutex conversion.
      
      The conversion was generated via scripts, and the result was validated
      automatically via a script as well.
      Signed-off-by: NArjan van de Ven <arjan@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4a3e2f71
    • B
      [NET]: use fget_light() in net/socket.c · 6cb153ca
      Benjamin LaHaise 提交于
      Here's an updated copy of the patch to use fget_light in net/socket.c.
      Rerunning the tests show a drop of ~80Mbit/s on average, which looks
      bad until you see the drop in cpu usage from ~89% to ~82%.  That will
      get fixed in another patch...
      
      Before: max 8113.70, min 8026.32, avg 8072.34
       87380  16384  16384    10.01      8045.55   87.11    87.11    1.774   1.774
       87380  16384  16384    10.01      8065.14   90.86    90.86    1.846   1.846
       87380  16384  16384    10.00      8077.76   89.85    89.85    1.822   1.822
       87380  16384  16384    10.00      8026.32   89.80    89.80    1.833   1.833
       87380  16384  16384    10.01      8108.59   89.81    89.81    1.815   1.815
       87380  16384  16384    10.01      8034.53   89.01    89.01    1.815   1.815
       87380  16384  16384    10.00      8113.70   90.45    90.45    1.827   1.827
       87380  16384  16384    10.00      8111.37   89.90    89.90    1.816   1.816
       87380  16384  16384    10.01      8077.75   87.96    87.96    1.784   1.784
       87380  16384  16384    10.00      8062.70   90.25    90.25    1.834   1.834
      
      After: max 8035.81, min 7963.69, avg 7998.14
       87380  16384  16384    10.01      8000.93   82.11    82.11    1.682   1.682
       87380  16384  16384    10.01      8016.17   83.67    83.67    1.710   1.710
       87380  16384  16384    10.01      7963.69   83.47    83.47    1.717   1.717
       87380  16384  16384    10.01      8014.35   81.71    81.71    1.671   1.671
       87380  16384  16384    10.00      7967.68   83.41    83.41    1.715   1.715
       87380  16384  16384    10.00      7995.22   81.00    81.00    1.660   1.660
       87380  16384  16384    10.00      8002.61   83.90    83.90    1.718   1.718
       87380  16384  16384    10.00      8035.81   81.71    81.71    1.666   1.666
       87380  16384  16384    10.01      8005.36   82.56    82.56    1.690   1.690
       87380  16384  16384    10.00      7979.61   82.50    82.50    1.694   1.694
      Signed-off-by: NBenjamin LaHaise <bcrl@linux.intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6cb153ca
    • D
      [NET]: Do not lose accepted socket when -ENFILE/-EMFILE. · 39d8c1b6
      David S. Miller 提交于
      Try to allocate the struct file and an unused file
      descriptor before we try to pull a newly accepted
      socket out of the protocol layer.
      
      Based upon a patch by Prassana Meda.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      39d8c1b6
  7. 06 2月, 2006 1 次提交
  8. 31 1月, 2006 1 次提交
  9. 12 1月, 2006 1 次提交
  10. 04 1月, 2006 4 次提交
  11. 28 9月, 2005 1 次提交
    • F
      [NET]: Fix module reference counts for loadable protocol modules · a79af59e
      Frank Filz 提交于
      I have been experimenting with loadable protocol modules, and ran into
      several issues with module reference counting.
      
      The first issue was that __module_get failed at the BUG_ON check at
      the top of the routine (checking that my module reference count was
      not zero) when I created the first socket. When sk_alloc() is called,
      my module reference count was still 0. When I looked at why sctp
      didn't have this problem, I discovered that sctp creates a control
      socket during module init (when the module ref count is not 0), which
      keeps the reference count non-zero. This section has been updated to
      address the point Stephen raised about checking the return value of
      try_module_get().
      
      The next problem arose when my socket init routine returned an error.
      This resulted in my module reference count being decremented below 0.
      My socket ops->release routine was also being called. The issue here
      is that sock_release() calls the ops->release routine and decrements
      the ref count if sock->ops is not NULL. Since the socket probably
      didn't get correctly initialized, this should not be done, so we will
      set sock->ops to NULL because we will not call try_module_get().
      
      While searching for another bug, I also noticed that sys_accept() has
      a possibility of doing a module_put() when it did not do an
      __module_get so I re-ordered the call to security_socket_accept().
      Signed-off-by: NFrank Filz <ffilzlnx@us.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a79af59e
  12. 27 9月, 2005 1 次提交
  13. 17 9月, 2005 1 次提交
  14. 08 9月, 2005 1 次提交
  15. 07 9月, 2005 1 次提交
  16. 30 8月, 2005 3 次提交
  17. 23 6月, 2005 1 次提交
  18. 02 6月, 2005 1 次提交
  19. 17 5月, 2005 1 次提交
  20. 06 5月, 2005 1 次提交
  21. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4