1. 20 10月, 2009 2 次提交
    • S
      x86-64: align RODATA kernel section to 2MB with CONFIG_DEBUG_RODATA · 74e08179
      Suresh Siddha 提交于
      CONFIG_DEBUG_RODATA chops the large pages spanning boundaries of kernel
      text/rodata/data to small 4KB pages as they are mapped with different
      attributes (text as RO, RODATA as RO and NX etc).
      
      On x86_64, preserve the large page mappings for kernel text/rodata/data
      boundaries when CONFIG_DEBUG_RODATA is enabled. This is done by allowing the
      RODATA section to be hugepage aligned and having same RWX attributes
      for the 2MB page boundaries
      
      Extra Memory pages padding the sections will be freed during the end of the boot
      and the kernel identity mappings will have different RWX permissions compared to
      the kernel text mappings.
      
      Kernel identity mappings to these physical pages will be mapped with smaller
      pages but large page mappings are still retained for kernel text,rodata,data
      mappings.
      Signed-off-by: NSuresh Siddha <suresh.b.siddha@intel.com>
      LKML-Reference: <20091014220254.190119924@sbs-t61.sc.intel.com>
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      74e08179
    • S
      x86-64: preserve large page mapping for 1st 2MB kernel txt with CONFIG_DEBUG_RODATA · b9af7c0d
      Suresh Siddha 提交于
      In the first 2MB, kernel text is co-located with kernel static
      page tables setup by head_64.S.  CONFIG_DEBUG_RODATA chops this
      2MB large page mapping to small 4KB pages as we mark the kernel text as RO,
      leaving the static page tables as RW.
      
      With CONFIG_DEBUG_RODATA disabled, OLTP run on NHM-EP shows 1% improvement
      with 2% reduction in system time and 1% improvement in iowait idle time.
      
      To recover this, move the kernel static page tables to .data section, so that
      we don't have to break the first 2MB of kernel text to small pages with
      CONFIG_DEBUG_RODATA.
      Signed-off-by: NSuresh Siddha <suresh.b.siddha@intel.com>
      LKML-Reference: <20091014220254.063193621@sbs-t61.sc.intel.com>
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      b9af7c0d
  2. 13 10月, 2009 4 次提交
    • D
      x86: Interleave emulated nodes over physical nodes · adc19389
      David Rientjes 提交于
      Add interleaved NUMA emulation support
      
      This patch interleaves emulated nodes over the system's physical
      nodes. This is required for interleave optimizations since
      mempolicies, for example, operate by iterating over a nodemask and
      act without knowledge of node distances.  It can also be used for
      testing memory latencies and NUMA bugs in the kernel.
      
      There're a couple of ways to do this:
      
       - divide the number of emulated nodes by the number of physical
         nodes and allocate the result on each physical node, or
      
       - allocate each successive emulated node on a different physical
         node until all memory is exhausted.
      
      The disadvantage of the first option is, depending on the asymmetry
      in node capacities of each physical node, emulated nodes may
      substantially differ in size on a particular physical node compared
      to another.
      
      The disadvantage of the second option is, also depending on the
      asymmetry in node capacities of each physical node, there may be
      more emulated nodes allocated on a single physical node as another.
      
      This patch implements the second option; we sacrifice the
      possibility that we may have slightly more emulated nodes on a
      particular physical node compared to another in lieu of node size
      asymmetry.
      
       [ Note that "node capacity" of a physical node is not only a
         function of its addressable range, but also is affected by
         subtracting out the amount of reserved memory over that range.
         NUMA emulation only deals with available, non-reserved memory
         quantities. ]
      
      We ensure there is at least a minimal amount of available memory
      allocated to each node.  We also make sure that at least this
      amount of available memory is available in ZONE_DMA32 for any node
      that includes both ZONE_DMA32 and ZONE_NORMAL.
      
      This patch also cleans the emulation code up by no longer passing
      the statically allocated struct bootnode array among the various
      functions. This init.data array is not allocated on the stack since
      it may be very large and thus it may be accessed at file scope.
      
      The WARN_ON() for nodes_cover_memory() when faking proximity
      domains is removed since it relies on successive nodes always
      having greater start addresses than previous nodes; with
      interleaving this is no longer always true.
      Signed-off-by: NDavid Rientjes <rientjes@google.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Andreas Herrmann <andreas.herrmann3@amd.com>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: Balbir Singh <balbir@linux.vnet.ibm.com>
      Cc: Ankita Garg <ankita@in.ibm.com>
      Cc: Len Brown <len.brown@intel.com>
      LKML-Reference: <alpine.DEB.1.00.0909251519150.14754@chino.kir.corp.google.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      adc19389
    • D
      x86: Export srat physical topology · 8716273c
      David Rientjes 提交于
      This is the counterpart to "x86: export k8 physical topology" for
      SRAT. It is not as invasive because the acpi code already seperates
      node setup into detection and registration steps, with the
      exception of registering e820 active regions in
      acpi_numa_memory_affinity_init().  This is now moved to
      acpi_scan_nodes() if NUMA emulation is disabled or deferred.
      
      acpi_numa_init() now returns a value which specifies whether an
      underlying SRAT was located.  If so, that topology can be used by
      the emulation code to interleave emulated nodes over physical nodes
      or to register the nodes for ACPI.
      
      acpi_get_nodes() may now be used to export the srat physical
      topology of the machine for NUMA emulation.
      Signed-off-by: NDavid Rientjes <rientjes@google.com>
      Cc: Andreas Herrmann <andreas.herrmann3@amd.com>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: Balbir Singh <balbir@linux.vnet.ibm.com>
      Cc: Ankita Garg <ankita@in.ibm.com>
      Cc: Len Brown <len.brown@intel.com>
      LKML-Reference: <alpine.DEB.1.00.0909251518580.14754@chino.kir.corp.google.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      8716273c
    • D
      x86: Export k8 physical topology · 8ee2debc
      David Rientjes 提交于
      To eventually interleave emulated nodes over physical nodes, we
      need to know the physical topology of the machine without actually
      registering it.  This does the k8 node setup in two parts:
      detection and registration.  NUMA emulation can then used the
      physical topology detected to setup the address ranges of emulated
      nodes accordingly.  If emulation isn't used, the k8 nodes are
      registered as normal.
      
      Two formals are added to the x86 NUMA setup functions: `acpi' and
      `k8'. These represent whether ACPI or K8 NUMA has been detected;
      both cannot be true at the same time.  This specifies to the NUMA
      emulation code whether an underlying physical NUMA topology exists
      and which interface to use.
      
      This patch deals solely with separating the k8 setup path into
      Northbridge detection and registration steps and leaves the ACPI
      changes for a subsequent patch.  The `acpi' formal is added here,
      however, to avoid touching all the header files again in the next
      patch.
      
      This approach also ensures emulated nodes will not span physical
      nodes so the true memory latency is not misrepresented.
      
      k8_get_nodes() may now be used to export the k8 physical topology
      of the machine for NUMA emulation.
      Signed-off-by: NDavid Rientjes <rientjes@google.com>
      Cc: Andreas Herrmann <andreas.herrmann3@amd.com>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: Balbir Singh <balbir@linux.vnet.ibm.com>
      Cc: Ankita Garg <ankita@in.ibm.com>
      Cc: Len Brown <len.brown@intel.com>
      LKML-Reference: <alpine.DEB.1.00.0909251518400.14754@chino.kir.corp.google.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      8ee2debc
    • D
      x86: Clean up and add missing log levels for k8 · 1af5ba51
      David Rientjes 提交于
      Convert all printk's in arch/x86/mm/k8topology_64.c to use
      pr_info() or pr_err() appropriately.
      
      Adds log levels for messages currently lacking them.
      Signed-off-by: NDavid Rientjes <rientjes@google.com>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: Balbir Singh <balbir@linux.vnet.ibm.com>
      Cc: Ankita Garg <ankita@in.ibm.com>
      Cc: Len Brown <len.brown@intel.com>
      LKML-Reference: <alpine.DEB.1.00.0909251517440.14754@chino.kir.corp.google.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      1af5ba51
  3. 12 10月, 2009 11 次提交
    • L
      Revert "USB: Work around BIOS bugs by quiescing USB controllers earlier" · d93a8f82
      Linus Torvalds 提交于
      This reverts commit db8be50c, as per
      
      	http://bugzilla.kernel.org/show_bug.cgi?id=14374
      	http://marc.info/?l=linux-kernel&m=125446885705223&w=4
      
      We simply can't do the USB handoff at FIXUP_HEADER time, since it will
      often require us to have valid IO mappings etc.  But that in turn
      requires a whole different approach, not this trivial one-liner.
      
      Maybe we could teach all the USB quirk handoff handlers to only do the
      quirk if the device has all its registers set up (since if it isn't
      initialized, it's unlikely to be active), but regardless that will need
      a whole lot more code than just saying "let's do it really early".
      
      The proper fix is almost certainly to just leave the legacy IOMMU
      mappings active until after all devices have been initialized.
      Reported-by: NNick Piggin <npiggin@suse.de>
      Cc: David Woodhouse <David.Woodhouse@intel.com>
      Cc: Greg Kroah-Hartman <gregkh@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d93a8f82
    • L
      Linux 2.6.32-rc4 · 16129139
      Linus Torvalds 提交于
      16129139
    • Y
      pci: increase alignment to make more space for hidden code · 15b812f1
      Yinghai Lu 提交于
      As reported in
      
      	http://bugzilla.kernel.org/show_bug.cgi?id=13940
      
      on some system when acpi are enabled, acpi clears some BAR for some
      devices without reason, and kernel will need to allocate devices for
      them.  It then apparently hits some undocumented resource conflict,
      resulting in non-working devices.
      
      Try to increase alignment to get more safe range for unassigned devices.
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      15b812f1
    • L
      Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6 · f144c78e
      Linus Torvalds 提交于
      * 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6: (21 commits)
        [S390] dasd: fix race condition in resume code
        [S390] Add EX_TABLE for addressing exception in usercopy functions.
        [S390] 64-bit register support for 31-bit processes
        [S390] hibernate: Use correct place for CPU address in lowcore
        [S390] pm: ignore time spend in suspended state
        [S390] zcrypt: Improve some comments
        [S390] zcrypt: Fix sparse warning.
        [S390] perf_counter: fix vdso detection
        [S390] ftrace: drop nmi protection
        [S390] compat: fix truncate system call wrapper
        [S390] Provide arch specific mdelay implementation.
        [S390] Fix enabled udelay for short delays.
        [S390] cio: allow setting boxed devices offline
        [S390] cio: make not operational handling consistent
        [S390] cio: make disconnected handling consistent
        [S390] Fix memory leak in /proc/cio_ignore
        [S390] cio: channel path memory leak
        [S390] module: fix memory leak in s390 module loader
        [S390] Enable kmemleak on s390.
        [S390] 3270 console build fix
        ...
      f144c78e
    • B
      ROMFS: fix length used with romfs_dev_strnlen() function · ef1f7a7e
      Bernd Schmidt 提交于
      An interestingly corrupted romfs file system exposed a problem with the
      romfs_dev_strnlen function: it's passing the wrong value to its helpers.
      Rather than limit the string to the length passed in by the callers, it
      uses the size of the device as the limit.
      Signed-off-by: NBernd Schmidt <bernds_cb1@t-online.de>
      Signed-off-by: NMike Frysinger <vapier@gentoo.org>
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      ef1f7a7e
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 · c6c59927
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (32 commits)
        USB: serial: no unnecessary GFP_ATOMIC in oti6858
        USB: serial: fix race between unthrottle and completion handler in visor
        USB: serial: fix assumption that throttle/unthrottle cannot sleep
        USB: serial: fix race between unthrottle and completion handler in symbolserial
        USB: serial: fix race between unthrottle and completion handler in opticon
        USB: ehci: Fix isoc scheduling boundary checking.
        USB: storage: When a device returns no sense data, call it a Hardware Error
        USB: small fix in error case of suspend in generic usbserial code
        USB: visor: fix trivial accounting bug in visor driver
        USB: Fix throttling in generic usbserial driver
        USB: cp210x: Add support for the DW700 UART
        USB: ipaq: fix oops when device is plugged in
        USB: isp1362: fix build warnings on 64-bit systems
        USB: gadget: imx_udc: Use resource size
        USB: storage: iRiver P7 UNUSUAL_DEV patch
        USB: musb: make HAVE_CLK support optional
        USB: xhci: Fix dropping endpoints from the xHC schedule.
        USB: xhci: Don't wait for a disable slot cmd when HC dies.
        USB: xhci: Handle canceled URBs when HC dies.
        USB: xhci: Stop debugging polling loop when HC dies.
        ...
      c6c59927
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6 · ff945afb
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6:
        Staging: comedi: fix build on arches that don't want comedi drivers
        Staging: comedi: pcmcia irq fixes
        Staging: comedi: ni_pcimio: Added device id for pxi-6225.
        Staging: comedi: ni_65xx.c: fix output inversion problem.
        Staging: comedi: ni_65xx.c: fix insn_bits shift calculation.
        Staging: comedi: s526: fixes for pulse generator
        Staging: comedi: s526: Take account of arch's byte order.
        Staging: comedi: s526: Get rid of global variable 'cmReg'.
        Staging: comedi: s526: Fix number of channels on DIO subdevice
        Staging: comedi: cb_pcidio: fix "section mismatch" error
        Staging: comedi: jr3_pci: Initialize transf variable fully in jr3_pci_poll_subdevice().
        Staging: comedi: Corrected type of a printk argument in resize_async_buffer().
        Staging: p9auth: a few fixes
        Staging: rtl8192e: Add #include <linux/vmalloc.h>
        Staging: iio: Don't build on s390
        Staging: winbond: implement prepare_multicast and fix API usage
        Staging: w35und: Fix ->beacon_int breakage
        Staging: remove cowloop driver
        Staging: remove agnx driver
        Staging: comedi: serial2002: fix include build issue
      ff945afb
    • L
      Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging · 4c274fff
      Linus Torvalds 提交于
      * 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
        hwmon: (s3c-hwmon) Disable build for S3C64xx
        MAINTAINERS: Fix Riku Voipio's address
        hwmon: (asus_atk0110) Enable the EC
        hwmon: (asus_atk0110) Refactor the code
        hwmon: (sht15) Fix spurious section mismatch warning
      4c274fff
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable · 474a503d
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:
        Btrfs: fix file clone ioctl for bookend extents
        Btrfs: fix uninit compiler warning in cow_file_range_nocow
        Btrfs: constify dentry_operations
        Btrfs: optimize back reference update during btrfs_drop_snapshot
        Btrfs: remove negative dentry when deleting subvolumne
        Btrfs: optimize fsync for the single writer case
        Btrfs: async delalloc flushing under space pressure
        Btrfs: release delalloc reservations on extent item insertion
        Btrfs: delay clearing EXTENT_DELALLOC for compressed extents
        Btrfs: cleanup extent_clear_unlock_delalloc flags
        Btrfs: fix possible softlockup in the allocator
        Btrfs: fix deadlock on async thread startup
      474a503d
    • A
      headers: remove sched.h from interrupt.h · d43c36dc
      Alexey Dobriyan 提交于
      After m68k's task_thread_info() doesn't refer to current,
      it's possible to remove sched.h from interrupt.h and not break m68k!
      Many thanks to Heiko Carstens for allowing this.
      Signed-off-by: NAlexey Dobriyan <adobriyan@gmail.com>
      d43c36dc
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6 · 69585dd6
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6: (34 commits)
        [SCSI] qla2xxx: Fix NULL ptr deref bug in fail path during queue create
        [SCSI] st: fix possible memory use after free after MTSETBLK ioctl
        [SCSI] be2iscsi: Moving to pci_pools v3
        [SCSI] libiscsi: iscsi_session_setup to allow for private space
        [SCSI] be2iscsi: add 10Gbps iSCSI - BladeEngine 2 driver
        [SCSI] zfcp: Fix hang when offlining device with offline chpid
        [SCSI] zfcp: Fix lockdep warning when offlining device with offline chpid
        [SCSI] zfcp: Fix oops during shutdown of offline device
        [SCSI] zfcp: Fix initial device and cfdc for delayed adapter allocation
        [SCSI] zfcp: correctly initialize unchained requests
        [SCSI] mpt2sas: Bump version 02.100.03.00
        [SCSI] mpt2sas: Support dev remove when phy status is MPI2_EVENT_SAS_TOPO_PHYSTATUS_VACANT
        [SCSI] mpt2sas: Timeout occurred within the HANDSHAKE logic while waiting on firmware to ACK.
        [SCSI] mpt2sas: Call init_completion on a per request basis.
        [SCSI] mpt2sas: Target Reset will be issued from Interrupt context.
        [SCSI] mpt2sas: Added SCSIIO, Internal and high priority memory pools to support multiple TM
        [SCSI] mpt2sas: Copyright change to 2009.
        [SCSI] mpt2sas: Added mpi2_history.txt for MPI2 headers.
        [SCSI] mpt2sas: Update driver to MPI2 REV K headers.
        [SCSI] bfa: Brocade BFA FC SCSI driver
        ...
      69585dd6
  4. 10 10月, 2009 23 次提交