1. 12 12月, 2012 3 次提交
    • L
      mm, memory-hotplug: dynamic configure movable memory and portion memory · 511c2aba
      Lai Jiangshan 提交于
      Add online_movable and online_kernel for logic memory hotplug.  This is
      the dynamic version of "movablecore" & "kernelcore".
      
      We have the same reason to introduce it as to introduce "movablecore" &
      "kernelcore".  It has the same motive as "movablecore" & "kernelcore", but
      it is dynamic/running-time:
      
      o We can configure memory as kernelcore or movablecore after boot.
      
        Userspace workload is increased, we need more hugepage, we can't use
        "online_movable" to add memory and allow the system use more
        THP(transparent-huge-page), vice-verse when kernel workload is increase.
      
        Also help for virtualization to dynamic configure host/guest's memory,
        to save/(reduce waste) memory.
      
        Memory capacity on Demand
      
      o When a new node is physically online after boot, we need to use
        "online_movable" or "online_kernel" to configure/portion it as we
        expected when we logic-online it.
      
        This configuration also helps for physically-memory-migrate.
      
      o all benefit as the same as existed "movablecore" & "kernelcore".
      
      o Preparing for movable-node, which is very important for power-saving,
        hardware partitioning and high-available-system(hardware fault
        management).
      
      (Note, we don't introduce movable-node here.)
      
      Action behavior:
      When a memoryblock/memorysection is onlined by "online_movable", the kernel
      will not have directly reference to the page of the memoryblock,
      thus we can remove that memory any time when needed.
      
      When it is online by "online_kernel", the kernel can use it.
      When it is online by "online", the zone type doesn't changed.
      
      Current constraints:
      Only the memoryblock which is adjacent to the ZONE_MOVABLE
      can be online from ZONE_NORMAL to ZONE_MOVABLE.
      
      [akpm@linux-foundation.org: use min_t, cleanups]
      Signed-off-by: NLai Jiangshan <laijs@cn.fujitsu.com>
      Signed-off-by: NWen Congyang <wency@cn.fujitsu.com>
      Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
      Cc: Lai Jiangshan <laijs@cn.fujitsu.com>
      Cc: Jiang Liu <jiang.liu@huawei.com>
      Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Minchan Kim <minchan.kim@gmail.com>
      Cc: Mel Gorman <mgorman@suse.de>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Greg KH <greg@kroah.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      511c2aba
    • J
      Documentation/cgroups/memory.txt: s/mem_cgroup_charge/mem_cgroup_change_common/ · 348b4655
      Jeff Liu 提交于
      mem_cgroup_charge_common() is invoked as the entry point for cgroup limits
      charge rather than mem_cgroup_charge(), as the later has been removed for
      years.  Update the cgroup/memory.txt to reflect this change.
      Signed-off-by: NJie Liu <jeff.liu@oracle.com>
      Cc: Ying Han <yinghan@google.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      348b4655
    • L
      memory_hotplug: fix possible incorrect node_states[N_NORMAL_MEMORY] · d9713679
      Lai Jiangshan 提交于
      Currently memory_hotplug only manages the node_states[N_HIGH_MEMORY], it
      forgets to manage node_states[N_NORMAL_MEMORY].  This may cause
      node_states[N_NORMAL_MEMORY] to become incorrect.
      
      Example, if a node is empty before online, and we online a memory which is
      in ZONE_NORMAL.  And after online, node_states[N_HIGH_MEMORY] is correct,
      but node_states[N_NORMAL_MEMORY] is incorrect, the online code doesn't set
      the new online node to node_states[N_NORMAL_MEMORY].
      
      The same thing will happen when offlining (the offline code doesn't clear
      the node from node_states[N_NORMAL_MEMORY] when needed).  Some memory
      managment code depends node_states[N_NORMAL_MEMORY], so we have to fix up
      the node_states[N_NORMAL_MEMORY].
      
      We add node_states_check_changes_online() and
      node_states_check_changes_offline() to detect whether
      node_states[N_HIGH_MEMORY] and node_states[N_NORMAL_MEMORY] are changed
      while hotpluging.
      
      Also add @status_change_nid_normal to struct memory_notify, thus the
      memory hotplug callbacks know whether the node_states[N_NORMAL_MEMORY] are
      changed.  (We can add a @flags and reuse @status_change_nid instead of
      introducing @status_change_nid_normal, but it will add much more
      complexity in memory hotplug callback in every subsystem.  So introducing
      @status_change_nid_normal is better and it doesn't change the sematics of
      @status_change_nid)
      Signed-off-by: NLai Jiangshan <laijs@cn.fujitsu.com>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Minchan Kim <minchan.kim@gmail.com>
      Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
      Cc: Rob Landley <rob@landley.net>
      Cc: Jiang Liu <jiang.liu@huawei.com>
      Cc: Kay Sievers <kay.sievers@vrfy.org>
      Cc: Greg Kroah-Hartman <gregkh@suse.de>
      Cc: Mel Gorman <mgorman@suse.de>
      Cc: Wen Congyang <wency@cn.fujitsu.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d9713679
  2. 11 12月, 2012 2 次提交
  3. 08 12月, 2012 1 次提交
  4. 07 12月, 2012 7 次提交
  5. 06 12月, 2012 7 次提交
  6. 02 12月, 2012 1 次提交
  7. 01 12月, 2012 1 次提交
    • S
      kbuild: centralize .dts->.dtb rule · 90b335fb
      Stephen Warren 提交于
      All architectures that use cmd_dtc do so in almost the same way. Create
      a central build rule to avoid duplication. The one difference is that
      most current uses of dtc build $(obj)/%.dtb from $(src)/dts/%.dts rather
      than building the .dtb in the same directory as the .dts file. This
      difference will be eliminated arch-by-arch in future patches.
      
      MIPS is the exception here; it already uses the exact same rule as the
      new common rule, so the duplicate is removed in this patch to avoid any
      conflict. arch/mips changes courtesy of Ralf Baechle.
      
      Update Documentation/kbuild to remove the explicit call to cmd_dtc from
      the example, now that the rule exists in a centralized location.
      
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: Olof Johansson <olof@lixom.net>
      Cc: Russell King <linux@arm.linux.org.uk>
      Acked-by: NCatalin Marinas <catalin.marinas@arm.com>
      Cc: Jonas Bonn <jonas@southpole.se>
      Cc: linux@lists.openrisc.net
      Cc: Aurelien Jacquiot <a-jacquiot@ti.com>
      Cc: linux-c6x-dev@linux-c6x.org
      Cc: Mark Salter <msalter@redhat.com>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: microblaze-uclinux@itee.uq.edu.au
      Cc: Chris Zankel <chris@zankel.net>
      Cc: linux-xtensa@linux-xtensa.org
      Cc: Max Filippov <jcmvbkbc@gmail.com>
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NRob Herring <rob.herring@calxeda.com>
      90b335fb
  8. 27 11月, 2012 2 次提交
  9. 24 11月, 2012 1 次提交
  10. 22 11月, 2012 2 次提交
  11. 21 11月, 2012 5 次提交
  12. 20 11月, 2012 5 次提交
    • N
      PM / devfreq: Add sysfs node to expose available governors · 50a5b33e
      Nishanth Menon 提交于
      Now that governor list can be variable, knowing the available governors
      is useful to be able to select a governor using relevant sysfs node.
      
      Cc: Rajagopal Venkat <rajagopal.venkat@linaro.org>
      Cc: MyungJoo Ham <myungjoo.ham@samsung.com>
      Cc: Kyungmin Park <kyungmin.park@samsung.com>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Cc: Kevin Hilman <khilman@ti.com>
      Cc: linux-pm@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NNishanth Menon <nm@ti.com>
      Signed-off-by: NMyungJoo Ham <myungjoo.ham@samsung.com>
      50a5b33e
    • N
      PM / devfreq: allow sysfs governor node to switch governor · 0359d1af
      Nishanth Menon 提交于
      This allows us to select governor runtime from the
      default configuration without having to rebuild kernel
      or the devfreq driver using the sysfs node:
      /sys/class/devfreq/.../governor
      cat of the governor will return valid governor
      and an echo 'governor_name'>governor will switch
      governor
      
      Cc: Rajagopal Venkat <rajagopal.venkat@linaro.org>
      Cc: MyungJoo Ham <myungjoo.ham@samsung.com>
      Cc: Kyungmin Park <kyungmin.park@samsung.com>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Cc: Kevin Hilman <khilman@ti.com>
      Cc: linux-pm@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NNishanth Menon <nm@ti.com>
      Acked-by: NMyungJoo Ham <myungjoo.ham@samsung.com>
      Signed-off-by: NMyungJoo Ham <myungjoo.ham@samsung.com>
      0359d1af
    • J
      PM / devfreq: Add sysfs node for representing frequency transition information. · e552bbaf
      Jonghwa Lee 提交于
      This patch adds sysfs node which can be used to get information of frequency
      transition. It represents transition table which contains total number of transition of
      each freqeuncy state and time spent. It is inspired CPUFREQ's status driver.
      Signed-off-by: NJonghwa Lee <jonghwa3.lee@samsung.com>
      [Added Documentation/ABI entry, updated kernel-doc, and resolved merge conflict]
      Signed-off-by: NMyungJoo Ham <myungjoo.ham@samsung.com>
      e552bbaf
    • N
      PM / devfreq: Add sysfs node to expose available frequencies · d287de85
      Nishanth Menon 提交于
      devfreq governors such as ondemand are controlled by a min and
      max frequency, while governors like userspace governor allow us
      to set a specific frequency.
      However, for the same specific device, depending on the SoC, the
      available frequencies can vary.
      
      So expose the available frequencies as a snapshot over sysfs to
      allow informed decisions.
      
      This was inspired by cpufreq framework's equivalent for similar
      usage sysfs node: scaling_available_frequencies.
      
      Cc: Rajagopal Venkat <rajagopal.venkat@linaro.org>
      Cc: MyungJoo Ham <myungjoo.ham@samsung.com>
      Cc: Kyungmin Park <kyungmin.park@samsung.com>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Cc: Kevin Hilman <khilman@ti.com>
      Cc: linux-pm@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NNishanth Menon <nm@ti.com>
      Signed-off-by: NMyungJoo Ham <myungjoo.ham@samsung.com>
      d287de85
    • S
      of/net/mdio-gpio: Fix pdev->id issue when using devicetrees. · 3272dd9b
      Srinivas Kandagatla 提交于
      When the mdio-gpio driver is probed via device trees, the platform
      device id is set as -1, However the pdev->id is re-used as bus-id for
      while creating mdio gpio bus.
      So
      For device tree case the mdio-gpio bus name appears as "gpio-ffffffff"
      where as
      for non-device tree case the bus name appears as "gpio-<bus-num>"
      
      Which means the bus_id is fixed in device tree case, so we can't have
      two mdio gpio buses via device trees. Assigning a logical bus number
      via device tree solves the problem and the bus name is much consistent
      with non-device tree bus name.
      
      Without this patch
      1. we can't support two mdio-gpio buses via device trees.
      2. we should always pass gpio-ffffffff as bus name to phy_connect, very
      different to non-device tree bus name.
      
      So, setting up the bus_id via aliases from device tree is the right
      solution and other drivers do similar thing.
      Signed-off-by: NSrinivas Kandagatla <srinivas.kandagatla@st.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3272dd9b
  13. 19 11月, 2012 2 次提交
  14. 18 11月, 2012 1 次提交