1. 15 12月, 2009 20 次提交
    • C
      xfs: event tracing support · 0b1b213f
      Christoph Hellwig 提交于
      Convert the old xfs tracing support that could only be used with the
      out of tree kdb and xfsidbg patches to use the generic event tracer.
      
      To use it make sure CONFIG_EVENT_TRACING is enabled and then enable
      all xfs trace channels by:
      
         echo 1 > /sys/kernel/debug/tracing/events/xfs/enable
      
      or alternatively enable single events by just doing the same in one
      event subdirectory, e.g.
      
         echo 1 > /sys/kernel/debug/tracing/events/xfs/xfs_ihold/enable
      
      or set more complex filters, etc. In Documentation/trace/events.txt
      all this is desctribed in more detail.  To reads the events do a
      
         cat /sys/kernel/debug/tracing/trace
      
      Compared to the last posting this patch converts the tracing mostly to
      the one tracepoint per callsite model that other users of the new
      tracing facility also employ.  This allows a very fine-grained control
      of the tracing, a cleaner output of the traces and also enables the
      perf tool to use each tracepoint as a virtual performance counter,
           allowing us to e.g. count how often certain workloads git various
           spots in XFS.  Take a look at
      
          http://lwn.net/Articles/346470/
      
      for some examples.
      
      Also the btree tracing isn't included at all yet, as it will require
      additional core tracing features not in mainline yet, I plan to
      deliver it later.
      
      And the really nice thing about this patch is that it actually removes
      many lines of code while adding this nice functionality:
      
       fs/xfs/Makefile                |    8
       fs/xfs/linux-2.6/xfs_acl.c     |    1
       fs/xfs/linux-2.6/xfs_aops.c    |   52 -
       fs/xfs/linux-2.6/xfs_aops.h    |    2
       fs/xfs/linux-2.6/xfs_buf.c     |  117 +--
       fs/xfs/linux-2.6/xfs_buf.h     |   33
       fs/xfs/linux-2.6/xfs_fs_subr.c |    3
       fs/xfs/linux-2.6/xfs_ioctl.c   |    1
       fs/xfs/linux-2.6/xfs_ioctl32.c |    1
       fs/xfs/linux-2.6/xfs_iops.c    |    1
       fs/xfs/linux-2.6/xfs_linux.h   |    1
       fs/xfs/linux-2.6/xfs_lrw.c     |   87 --
       fs/xfs/linux-2.6/xfs_lrw.h     |   45 -
       fs/xfs/linux-2.6/xfs_super.c   |  104 ---
       fs/xfs/linux-2.6/xfs_super.h   |    7
       fs/xfs/linux-2.6/xfs_sync.c    |    1
       fs/xfs/linux-2.6/xfs_trace.c   |   75 ++
       fs/xfs/linux-2.6/xfs_trace.h   | 1369 +++++++++++++++++++++++++++++++++++++++++
       fs/xfs/linux-2.6/xfs_vnode.h   |    4
       fs/xfs/quota/xfs_dquot.c       |  110 ---
       fs/xfs/quota/xfs_dquot.h       |   21
       fs/xfs/quota/xfs_qm.c          |   40 -
       fs/xfs/quota/xfs_qm_syscalls.c |    4
       fs/xfs/support/ktrace.c        |  323 ---------
       fs/xfs/support/ktrace.h        |   85 --
       fs/xfs/xfs.h                   |   16
       fs/xfs/xfs_ag.h                |   14
       fs/xfs/xfs_alloc.c             |  230 +-----
       fs/xfs/xfs_alloc.h             |   27
       fs/xfs/xfs_alloc_btree.c       |    1
       fs/xfs/xfs_attr.c              |  107 ---
       fs/xfs/xfs_attr.h              |   10
       fs/xfs/xfs_attr_leaf.c         |   14
       fs/xfs/xfs_attr_sf.h           |   40 -
       fs/xfs/xfs_bmap.c              |  507 +++------------
       fs/xfs/xfs_bmap.h              |   49 -
       fs/xfs/xfs_bmap_btree.c        |    6
       fs/xfs/xfs_btree.c             |    5
       fs/xfs/xfs_btree_trace.h       |   17
       fs/xfs/xfs_buf_item.c          |   87 --
       fs/xfs/xfs_buf_item.h          |   20
       fs/xfs/xfs_da_btree.c          |    3
       fs/xfs/xfs_da_btree.h          |    7
       fs/xfs/xfs_dfrag.c             |    2
       fs/xfs/xfs_dir2.c              |    8
       fs/xfs/xfs_dir2_block.c        |   20
       fs/xfs/xfs_dir2_leaf.c         |   21
       fs/xfs/xfs_dir2_node.c         |   27
       fs/xfs/xfs_dir2_sf.c           |   26
       fs/xfs/xfs_dir2_trace.c        |  216 ------
       fs/xfs/xfs_dir2_trace.h        |   72 --
       fs/xfs/xfs_filestream.c        |    8
       fs/xfs/xfs_fsops.c             |    2
       fs/xfs/xfs_iget.c              |  111 ---
       fs/xfs/xfs_inode.c             |   67 --
       fs/xfs/xfs_inode.h             |   76 --
       fs/xfs/xfs_inode_item.c        |    5
       fs/xfs/xfs_iomap.c             |   85 --
       fs/xfs/xfs_iomap.h             |    8
       fs/xfs/xfs_log.c               |  181 +----
       fs/xfs/xfs_log_priv.h          |   20
       fs/xfs/xfs_log_recover.c       |    1
       fs/xfs/xfs_mount.c             |    2
       fs/xfs/xfs_quota.h             |    8
       fs/xfs/xfs_rename.c            |    1
       fs/xfs/xfs_rtalloc.c           |    1
       fs/xfs/xfs_rw.c                |    3
       fs/xfs/xfs_trans.h             |   47 +
       fs/xfs/xfs_trans_buf.c         |   62 -
       fs/xfs/xfs_vnodeops.c          |    8
       70 files changed, 2151 insertions(+), 2592 deletions(-)
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NAlex Elder <aelder@sgi.com>
      0b1b213f
    • C
      xfs: change the xfs_iext_insert / xfs_iext_remove · 6ef35544
      Christoph Hellwig 提交于
      Change the xfs_iext_insert / xfs_iext_remove prototypes to pass more
      information which will allow pushing the trace points from the callers
      into those functions.  This includes folding the whichfork information
      into the state variable to minimize the addition stack footprint.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NAlex Elder <aelder@sgi.com>
      6ef35544
    • C
      xfs: cleanup bmap extent state macros · 7574aa92
      Christoph Hellwig 提交于
      Cleanup the extent state macros in the bmap code to use one common set of
      flags that we can pass to the tracing code later and remove a lot of the
      macro obsfucation.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NAlex Elder <aelder@sgi.com>
      7574aa92
    • L
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-udf-2.6 · 3ea6b3d0
      Linus Torvalds 提交于
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-udf-2.6:
        udf: Avoid IO in udf_clear_inode
        udf: Try harder when looking for VAT inode
        udf: Fix compilation with UDFFS_DEBUG enabled
      3ea6b3d0
    • J
      udf: Avoid IO in udf_clear_inode · 2c948b3f
      Jan Kara 提交于
      It is not very good to do IO in udf_clear_inode. First, VFS does not really
      expect inode to become dirty there and thus we have to write it ourselves,
      second, memory reclaim gets blocked waiting for IO when it does not really
      expect it, third, the IO pattern (e.g. on umount) resulting from writes in
      udf_clear_inode is bad and it slows down writing a lot.
      
      The reason why UDF needed to do IO in udf_clear_inode is that UDF standard
      mandates extent length to exactly match inode size. But when we allocate
      extents to a file or directory, we don't really know what exactly the final
      file size will be and thus temporarily set it to block boundary and later
      truncate it to exact length in udf_clear_inode. Now, this is changed to
      truncate to final file size in udf_release_file for regular files. For
      directories and symlinks, we do the truncation at the moment when learn
      what the final file size will be.
      Signed-off-by: NJan Kara <jack@suse.cz>
      2c948b3f
    • J
      udf: Try harder when looking for VAT inode · e971b0b9
      Jan Kara 提交于
      Some disks do not contain VAT inode in the last recorded block as required
      by the standard but a few blocks earlier (or the number of recorded blocks
      is wrong). So look for the VAT inode a bit before the end of the media.
      Signed-off-by: NJan Kara <jack@suse.cz>
      e971b0b9
    • J
      udf: Fix compilation with UDFFS_DEBUG enabled · 1fefd086
      Jan Kara 提交于
      Signed-off-by: NJan Kara <jack@suse.cz>
      1fefd086
    • L
      Merge branch 'x86-fixes-for-linus' of... · 75b08038
      Linus Torvalds 提交于
      Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        x86, mce: Clean up thermal init by introducing intel_thermal_supported()
        x86, mce: Thermal monitoring depends on APIC being enabled
        x86: Gart: fix breakage due to IOMMU initialization cleanup
        x86: Move swiotlb initialization before dma32_free_bootmem
        x86: Fix build warning in arch/x86/mm/mmio-mod.c
        x86: Remove usedac in feature-removal-schedule.txt
        x86: Fix duplicated UV BAU interrupt vector
        nvram: Fix write beyond end condition; prove to gcc copy is safe
        mm: Adjust do_pages_stat() so gcc can see copy_from_user() is safe
        x86: Limit the number of processor bootup messages
        x86: Remove enabling x2apic message for every CPU
        doc: Add documentation for bootloader_{type,version}
        x86, msr: Add support for non-contiguous cpumasks
        x86: Use find_e820() instead of hard coded trampoline address
        x86, AMD: Fix stale cpuid4_info shared_map data in shared_cpu_map cpumasks
      
      Trivial percpu-naming-introduced conflicts in arch/x86/kernel/cpu/intel_cacheinfo.c
      75b08038
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6 · fb1beb29
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6:
        pcmcia: CodingStyle fixes
        pcmcia: remove unused IRQ_FIRST_SHARED
      fb1beb29
    • L
      Merge branch 'next-spi' of git://git.secretlab.ca/git/linux-2.6 · 478e4e9d
      Linus Torvalds 提交于
      * 'next-spi' of git://git.secretlab.ca/git/linux-2.6: (23 commits)
        spi: fix probe/remove section markings
        Add OMAP spi100k driver
        spi-imx: don't access struct device directly but use dev_get_platdata
        spi-imx: Add mx25 support
        spi-imx: use positive logic to distinguish cpu variants
        spi-imx: correct check for platform_get_irq failing
        ARM: NUC900: Add spi driver support for nuc900
        spi: SuperH MSIOF SPI Master driver V2
        spi: fix spidev compilation failure when VERBOSE is defined
        spi/au1550_spi: fix setupxfer not to override cfg with zeros
        spi/mpc8xxx: don't use __exit_p to wrap plat_mpc8xxx_spi_remove
        spi/i.MX: fix broken error handling for gpio_request
        spi/i.mx: drain MXC SPI transfer buffer when probing device
        MAINTAINERS: add SPI co-maintainer.
        spi/xilinx_spi: fix incorrect casting
        spi/mpc52xx-spi: minor cleanups
        xilinx_spi: add a platform driver using the xilinx_spi common module.
        xilinx_spi: add support for the DS570 IP.
        xilinx_spi: Switch to iomem functions and support little endian.
        xilinx_spi: Split into of driver and generic part.
        ...
      478e4e9d
    • L
      Merge branch 'perf-fixes-for-linus' of... · 2205afa7
      Linus Torvalds 提交于
      Merge branch 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        perf sched: Fix build failure on sparc
        perf bench: Add "all" pseudo subsystem and "all" pseudo suite
        perf tools: Introduce perf_session class
        perf symbols: Ditch dso->find_symbol
        perf symbols: Allow lookups by symbol name too
        perf symbols: Add missing "Variables" entry to map_type__name
        perf symbols: Add support for 'variable' symtabs
        perf symbols: Introduce ELF counterparts to symbol_type__is_a
        perf symbols: Introduce symbol_type__is_a
        perf symbols: Rename kthreads to kmaps, using another abstraction for it
        perf tools: Allow building for ARM
        hw-breakpoints: Handle bad modify_user_hw_breakpoint off-case return value
        perf tools: Allow cross compiling
        tracing, slab: Fix no callsite ifndef CONFIG_KMEMTRACE
        tracing, slab: Define kmem_cache_alloc_notrace ifdef CONFIG_TRACING
      
      Trivial conflict due to different fixes to modify_user_hw_breakpoint()
      in include/linux/hw_breakpoint.h
      2205afa7
    • D
      PCI: Global variable decls must match the defs in section attributes · 491424c0
      David Howells 提交于
      Global variable declarations must match the definitions in section attributes
      as the compiler is at liberty to vary the method it uses to access a variable,
      depending on the section it is in.
      
      When building the FRV arch, I now see:
      
        drivers/built-in.o: In function `pci_apply_final_quirks':
        drivers/pci/quirks.c:2606: relocation truncated to fit: R_FRV_GPREL12 against symbol `pci_dfl_cache_line_size' defined in .devinit.data section in drivers/built-in.o
        drivers/pci/quirks.c:2623: relocation truncated to fit: R_FRV_GPREL12 against symbol `pci_dfl_cache_line_size' defined in .devinit.data section in drivers/built-in.o
        drivers/pci/quirks.c:2630: relocation truncated to fit: R_FRV_GPREL12 against symbol `pci_dfl_cache_line_size' defined in .devinit.data section in drivers/built-in.o
      
      because the declaration of pci_dfl_cache_line_size in linux/pci.h does not
      match the definition in drivers/pci/pci.c.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      491424c0
    • D
      FRV: Fix no-hardware-breakpoint case · 5185fb06
      David Howells 提交于
      If there is no hardware breakpoint support, modify_user_hw_breakpoint()
      tries to return a NULL pointer through as an 'int' return value:
      
        In file included from kernel/exit.c:53:
        include/linux/hw_breakpoint.h: In function 'modify_user_hw_breakpoint':
        include/linux/hw_breakpoint.h:96: warning: return makes integer from pointer without a cast
      
      Return 0 instead.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      5185fb06
    • L
      Merge branch 'for-linus' of git://git.monstr.eu/linux-2.6-microblaze · 464480f7
      Linus Torvalds 提交于
      * 'for-linus' of git://git.monstr.eu/linux-2.6-microblaze: (46 commits)
        microblaze: Remove rt_sigsuspend wrapper
        microblaze: nommu: Don't clobber R11 on syscalls
        microblaze: Remove show_tmem function
        microblaze: Support for WB cache
        microblaze: Add PVR for Microblaze v7.30.a
        microblaze: Remove ancient and fake microblaze version from cpu_ver table
        microblaze: Remove panic_timeout init value
        microblaze: Do not count system calls in default
        microblaze: Enable DTC compilation
        microblaze: Core oprofile configs and hooks
        microblaze: Fix level interrupt ACKing
        microblaze: Enable futimesat syscall
        microblaze: Checking DTS against PVR for write-back cache
        microblaze: Remove duplicity from pgalloc.h
        microblaze: Futex support
        microblaze: Adding dev_arch_data functions
        microblaze: Fix the heartbeat gpio to be more robust
        microblaze: Simple __copy_tofrom_user for noMMU
        microblaze: Export memory_start for modules
        microblaze: Use lowest-common-denominator default CPU settings
        ...
      464480f7
    • L
      Merge branch 'for-linus' of git://neil.brown.name/md · 37222e1c
      Linus Torvalds 提交于
      * 'for-linus' of git://neil.brown.name/md: (27 commits)
        md: add 'recovery_start' per-device sysfs attribute
        md: rcu_read_lock() walk of mddev->disks in md_do_sync()
        md: integrate spares into array at earliest opportunity.
        md: move compat_ioctl handling into md.c
        md: revise Kconfig help for MD_MULTIPATH
        md: add MODULE_DESCRIPTION for all md related modules.
        raid: improve MD/raid10 handling of correctable read errors.
        md/raid10: print more useful messages on device failure.
        md/bitmap: update dirty flag when bitmap bits are explicitly set.
        md: Support write-intent bitmaps with externally managed metadata.
        md/bitmap: move setting of daemon_lastrun out of bitmap_read_sb
        md: support updating bitmap parameters via sysfs.
        md: factor out parsing of fixed-point numbers
        md: support bitmap offset appropriate for external-metadata arrays.
        md: remove needless setting of thread->timeout in raid10_quiesce
        md: change daemon_sleep to be in 'jiffies' rather than 'seconds'.
        md: move offset, daemon_sleep and chunksize out of bitmap structure
        md: collect bitmap-specific fields into one structure.
        md/raid1: add takeover support for raid5->raid1
        md: add honouring of suspend_{lo,hi} to raid1.
        ...
      37222e1c
    • L
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6 · 76b8f82c
      Linus Torvalds 提交于
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: (58 commits)
        mfd: Add twl6030 regulator subdevices
        regulator: Add support for twl6030 regulators
        rtc: Add twl6030 RTC support
        mfd: Add support for twl6030 irq framework
        mfd: Rename twl4030_ routines in twl-regulator.c
        mfd: Rename twl4030_ routines in rtc-twl.c
        mfd: Rename all twl4030_i2c*
        mfd: Rename twl4030* driver files to enable re-use
        mfd: Clarify twl4030 return value for read and write
        mfd: Add all twl4030 regulators to the twl4030 mfd driver
        mfd: Don't set mc13783 ADREFMODE for touch conversions
        mfd: Remove ezx-pcap defines for custom led gpio encoding
        mfd: Near complete mc13783 rewrite
        mfd: Remove build time warning for WM835x register default tables
        mfd: Force I2C to be built in when building WM831x
        mfd: Don't allow wm831x to be built as a module
        mfd: Fix incorrect error check for wm8350-core
        mfd: Fix twl4030 warning
        gpiolib: Implement gpio_to_irq() for wm831x
        mfd: Remove default selection of AB4500
        ...
      76b8f82c
    • L
      Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm · af853e63
      Linus Torvalds 提交于
      * 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm:
        ARM: fix lh7a40x build
        ARM: fix sa1100 build
        ARM: fix clps711x, footbridge, integrator, ixp2000, ixp2300 and s3c build bug
        ARM: VFP: fix vfp thread init bug and document vfp notifier entry conditions
        ARM: pxa: fix now incorrect reference of skt->irq by using skt->socket.pci_irq
        [ARM] pxa/zeus: default configuration for Arcom Zeus SBC.
        [ARM] pxa/zeus: make Viper pcmcia support more generic to support Zeus
        [ARM] pxa/zeus: basic support for Arcom Zeus SBC
        [ARM] pxa/em-x270: fix usb hub power up/reset sequence
        PCMCIA: fix pxa2xx_lubbock modular build error
        ARM: RealView: Fix typo in the RealView/PBX Kconfig entry
        ARM: Do not allow the probing of the local timer
        ARM: Add an earlyprintk debug console
      af853e63
    • L
      Merge git://git.linux-nfs.org/projects/trondmy/nfs-2.6 · 3f86ce72
      Linus Torvalds 提交于
      * git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (75 commits)
        NFS: Fix nfs_migrate_page()
        rpc: remove unneeded function parameter in gss_add_msg()
        nfs41: Invoke RECLAIM_COMPLETE on all new client ids
        SUNRPC: IS_ERR/PTR_ERR confusion
        NFSv41: Fix a potential state leakage when restarting nfs4_close_prepare
        nfs41: Handle NFSv4.1 session errors in the delegation recall code
        nfs41: Retry delegation return if it failed with session error
        nfs41: Handle session errors during delegation return
        nfs41: Mark stateids in need of reclaim if state manager gets stale clientid
        NFS: Fix up the declaration of nfs4_restart_rpc when NFSv4 not configured
        nfs41: Don't clear DRAINING flag on NFS4ERR_STALE_CLIENTID
        nfs41: nfs41_setup_state_renewal
        NFSv41: More cleanups
        NFSv41: Fix up some bugs in the NFS4CLNT_SESSION_DRAINING code
        NFSv41: Clean up slot table management
        NFSv41: Fix nfs4_proc_create_session
        nfs41: Invoke RECLAIM_COMPLETE
        nfs41: RECLAIM_COMPLETE functionality
        nfs41: RECLAIM_COMPLETE XDR functionality
        Cleanup some NFSv4 XDR decode comments
        ...
      3f86ce72
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu · d0316554
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (34 commits)
        m68k: rename global variable vmalloc_end to m68k_vmalloc_end
        percpu: add missing per_cpu_ptr_to_phys() definition for UP
        percpu: Fix kdump failure if booted with percpu_alloc=page
        percpu: make misc percpu symbols unique
        percpu: make percpu symbols in ia64 unique
        percpu: make percpu symbols in powerpc unique
        percpu: make percpu symbols in x86 unique
        percpu: make percpu symbols in xen unique
        percpu: make percpu symbols in cpufreq unique
        percpu: make percpu symbols in oprofile unique
        percpu: make percpu symbols in tracer unique
        percpu: make percpu symbols under kernel/ and mm/ unique
        percpu: remove some sparse warnings
        percpu: make alloc_percpu() handle array types
        vmalloc: fix use of non-existent percpu variable in put_cpu_var()
        this_cpu: Use this_cpu_xx in trace_functions_graph.c
        this_cpu: Use this_cpu_xx for ftrace
        this_cpu: Use this_cpu_xx in nmi handling
        this_cpu: Use this_cpu operations in RCU
        this_cpu: Use this_cpu ops for VM statistics
        ...
      
      Fix up trivial (famous last words) global per-cpu naming conflicts in
      	arch/x86/kvm/svm.c
      	mm/slab.c
      d0316554
    • W
      Documentation: rw_lock lessons learned · fb0bbb92
      William Allen Simpson 提交于
      In recent months, two different network projects erroneously
      strayed down the rw_lock path.  Update the Documentation
      based upon comments by Eric Dumazet and Paul E. McKenney in
      those threads.
      
      Further updates await somebody else with more expertise.
      
      Changes:
        - Merged with extensive content by Stephen Hemminger.
        - Fix one of the comments by Linus Torvalds.
      
      Signed-off-by: William.Allen.Simpson@gmail.com
      Acked-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      fb0bbb92
  2. 14 12月, 2009 20 次提交