summaryrefslogtreecommitdiff
path: root/Documentation
AgeCommit message (Collapse)AuthorFilesLines
2014-06-04devicetree: Add generic IOMMU device tree bindingsThierry Reding1-0/+167
This commit introduces a generic device tree binding for IOMMU devices. Only a very minimal subset is described here, but it is enough to cover the requirements of both the Exynos System MMU and Tegra SMMU as discussed here: https://lkml.org/lkml/2014/4/27/346 Signed-off-by: Thierry Reding <treding@nvidia.com> --- Changes in v2: - add notes about "dma-ranges" property (drop note from commit message) - document priorities of "iommus" property vs. "dma-ranges" property - drop #iommu-cells in favour of #address-cells and #size-cells - remove multiple-master device example
2014-06-04Merge branch 'staging/gk20a' into staging/masterThierry Reding1-0/+43
2014-06-04Merge branch 'staging/drm/tegra' into staging/masterThierry Reding1-0/+36
2014-06-04Merge branch 'staging/pci' into staging/masterThierry Reding2-4/+53
2014-06-04Merge branch 'staging/iommu' into staging/masterThierry Reding1-2/+2
2014-06-04Merge branch 'staging/xusb-padctl' into staging/masterThierry Reding1-0/+135
2014-06-04PCI: tegra: Add Tegra124 supportThierry Reding1-1/+24
The PCIe controller on Tegra124 has two root ports that can be used in a x4/x1 or x2/x1 configuration and can run at PCIe 2.0 link speeds (up to 5 GT/s). The PHY programming has been moved into a separate controller, so the driver now needs to request an external PHY referenced using the device tree. Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-06-04PCI: tegra: Remove deprecated power supply propertiesThierry Reding1-5/+0
These power supply properties are no longer needed since the binding now contains the full set properties to accurately describe the power supply inputs of the Tegra PCIe block. Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-06-04PCI: tegra: Overhaul regulator usageThierry Reding1-3/+32
The current usage of regulators for the Tegra PCIe block is wrong. It doesn't accurately reflect the actual supply inputs of the IP block and therefore isn't as flexible as it should be. Rectify this by describing all possible supply inputs in the device tree binding documentation and deprecate the old supply properties. Signed-off-by: Thierry Reding <treding@nvidia.com> --- Changes in v2: - fix power rail assignment on Tegra30
2014-06-03iommu/tegra124: smmu: add support platform dataHiroshi Doyu1-2/+2
The later Tegra SoC(>= T124) has more registers for MC_SMMU_TRANSLATION_ENABLE_*. Now those info is provided as platfrom data. If those varies a lot on SoCs in the future, we can consider putting them into DT later. Signed-off-by: Hiroshi Doyu <hdoyu@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-06-03ARM: tegra: of: add GK20A device tree bindingAlexandre Courbot1-0/+43
Add the device tree binding documentation for the GK20A GPU used in Tegra K1 SoCs. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Acked-by: Stephen Warren <swarren@nvidia.com>
2014-06-03drm: Document how to register devices without struct drm_busThierry Reding1-0/+26
With the recent addition of the drm_set_unique() function, devices can now be registered without requiring a drm_bus. Add a brief description to the DRM docbook to show how that can be achieved. Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Thierry Reding <treding@nvidia.com> --- Changes in v3: - replace drm_dev_put() recommendation by explicit drm_dev_unregister() followed by drm_dev_unref() - use !E in DocBook to insert kernel-doc for all exported symbols
2014-06-03drm: Add device registration documentationThierry Reding1-0/+10
Describe how devices are registered using the drm_*_init() functions. Adding this to docbook requires a largish set of changes to the comments in drm_{pci,usb,platform}.c since they are doxygen-style rather than proper kernel-doc and therefore mess with the docbook generation. While at it, mark usage of drm_put_dev() as discouraged in favour of calling drm_dev_unregister() and drm_dev_unref() directly. Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Thierry Reding <treding@nvidia.com> --- Changes in v3: - add note that drm_put_dev() should not be used in new drivers - use !E to include all exported functions in DocBook
2014-06-03resource: Add device-managed request/release_resource()Thierry Reding1-0/+2
Provide device-managed implementations of the request_resource() and release_resource() functions. Upon failure to request a resource, the new devm_request_resource() function will output an error message for consistent error reporting. Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-06-03of: Add NVIDIA Tegra XUSB pad controller bindingThierry Reding1-0/+135
This patch adds the device tree binding documentation for the XUSB pad controller found on NVIDIA Tegra SoCs. It exposes both pinmuxing and PHY capabilities. Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-06-03pwm-backlight: Allow backlight to remain disabled on bootThierry Reding1-0/+1
The default for backlight devices is to be enabled immediately when registering with the backlight core. This can be useful for setups that use a simple framebuffer device and where the backlight cannot otherwise be hooked up to the panel. However, when dealing with more complex setups, such as those of recent ARM SoCs, this can be problematic. Since the backlight is usually setup separately from the display controller, the probe order is not usually deterministic. That can lead to situations where the backlight will be powered up and the panel will show an uninitialized framebuffer. Furthermore, subsystems such as DRM have advanced functionality to set the power mode of a panel. In order to allow such setups to power up the panel at exactly the right moment, a way is needed to prevent the backlight core from powering the backlight up automatically when it is registered. This commit introduces a new boot_off field in the platform data (and also implements getting the same information from device tree). When set the initial backlight power mode will be set to "off". Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-06-03mm: add strictlimit knobMaxim Patlasov1-0/+8
The "strictlimit" feature was introduced to enforce per-bdi dirty limits for FUSE which sets bdi max_ratio to 1% by default: http://article.gmane.org/gmane.linux.kernel.mm/105809 However the feature can be useful for other relatively slow or untrusted BDIs like USB flash drives and DVD+RW. The patch adds a knob to enable the feature: echo 1 > /sys/class/bdi/X:Y/strictlimit Being enabled, the feature enforces bdi max_ratio limit even if global (10%) dirty limit is not reached. Of course, the effect is not visible until /sys/class/bdi/X:Y/max_ratio is decreased to some reasonable value. Signed-off-by: Maxim Patlasov <MPatlasov@parallels.com> Cc: Henrique de Moraes Holschuh <hmh@hmh.eng.br> Cc: Theodore Ts'o <tytso@mit.edu> Cc: "Artem S. Tashkinov" <t.artem@lycos.com> Cc: Mel Gorman <mel@csn.ul.ie> Cc: Jan Kara <jack@suse.cz> Cc: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2014-06-03Documentation/filesystems/vfat.txt: update the limitation for fat fallocateNamjae Jeon1-0/+10
Update the limitation for fat fallocate. Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com> Signed-off-by: Amit Sahrawat <a.sahrawat@samsung.com> Cc: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2014-06-03memcg-deprecate-memoryforce_empty-knob-fixAndrew Morton1-1/+1
- s/pr_info/pr_info_once/ - fix garbled printk text Cc: Johannes Weiner <hannes@cmpxchg.org> Acked-by: Michal Hocko <mhocko@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2014-06-03memcg: deprecate memory.force_empty knobMichal Hocko1-0/+3
force_empty has been introduced primarily to drop memory before it gets reparented on the group removal. This alone doesn't sound fully justified because reparented pages which are not in use can be reclaimed also later when there is a memory pressure on the parent level. Mark the knob CFTYPE_INSANE which tells the cgroup core that it shouldn't create the knob with the experimental sane_behavior. Other users will get informed about the deprecation and asked to tell us more because I do not expect most users will use sane_behavior cgroups mode very soon. Anyway I expect that most users will be simply cgroup remove handlers which do that since ever without having any good reason for it. If somebody really cares because reparented pages, which would be dropped otherwise, push out more important ones then we should fix the reparenting code and put pages to the tail. Signed-off-by: Michal Hocko <mhocko@suse.cz> Acked-by: Johannes Weiner <hannes@cmpxchg.org> Cc: Greg Thelen <gthelen@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2014-06-03mm: replace remap_file_pages() syscall with emulationKirill A. Shutemov1-4/+3
remap_file_pages(2) was invented to be able efficiently map parts of huge file into limited 32-bit virtual address space such as in database workloads. Nonlinear mappings are pain to support and it seems there's no legitimate use-cases nowadays since 64-bit systems are widely available. Let's drop it and get rid of all these special-cased code. The patch replaces the syscall with emulation which creates new VMA on each remap_file_pages(), unless they it can be merged with an adjacent one. I didn't find *any* real code that uses remap_file_pages(2) to test emulation impact on. I've checked Debian code search and source of all packages in ALT Linux. No real users: libc wrappers, mentions in strace, gdb, valgrind and this kind of stuff. There are few basic tests in LTP for the syscall. They work just fine with emulation. To test performance impact, I've written small test case which demonstrate pretty much worst case scenario: map 4G shmfs file, write to begin of every page pgoff of the page, remap pages in reverse order, read every page. The test creates 1 million of VMAs if emulation is in use, so I had to set vm.max_map_count to 1100000 to avoid -ENOMEM. Before: 23.3 ( +- 4.31% ) seconds After: 43.9 ( +- 0.85% ) seconds Slowdown: 1.88x I believe we can live with that. Test case: #define _GNU_SOURCE #include <assert.h> #include <stdlib.h> #include <stdio.h> #include <sys/mman.h> #define MB (1024UL * 1024) #define SIZE (4096 * MB) int main(int argc, char **argv) { unsigned long *p; long i, pass; for (pass = 0; pass < 10; pass++) { p = mmap(NULL, SIZE, PROT_READ|PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS, -1, 0); if (p == MAP_FAILED) { perror("mmap"); return -1; } for (i = 0; i < SIZE / 4096; i++) p[i * 4096 / sizeof(*p)] = i; for (i = 0; i < SIZE / 4096; i++) { if (remap_file_pages(p + i * 4096 / sizeof(*p), 4096, 0, (SIZE - 4096 * (i + 1)) >> 12, 0)) { perror("remap_file_pages"); return -1; } } for (i = SIZE / 4096 - 1; i >= 0; i--) assert(p[i * 4096 / sizeof(*p)] == SIZE / 4096 - i - 1); munmap(p, SIZE); } return 0; } Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Ingo Molnar <mingo@kernel.org> Cc: Dave Jones <davej@redhat.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Armin Rigo <arigo@tunes.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2014-06-03mm: mark remap_file_pages() syscall as deprecatedKirill A. Shutemov1-0/+28
The remap_file_pages() system call is used to create a nonlinear mapping, that is, a mapping in which the pages of the file are mapped into a nonsequential order in memory. The advantage of using remap_file_pages() over using repeated calls to mmap(2) is that the former approach does not require the kernel to create additional VMA (Virtual Memory Area) data structures. Supporting of nonlinear mapping requires significant amount of non-trivial code in kernel virtual memory subsystem including hot paths. Also to get nonlinear mapping work kernel need a way to distinguish normal page table entries from entries with file offset (pte_file). Kernel reserves flag in PTE for this purpose. PTE flags are scarce resource especially on some CPU architectures. It would be nice to free up the flag for other usage. Fortunately, there are not many users of remap_file_pages() in the wild. It's only known that one enterprise RDBMS implementation uses the syscall on 32-bit systems to map files bigger than can linearly fit into 32-bit virtual address space. This use-case is not critical anymore since 64-bit systems are widely available. The plan is to deprecate the syscall and replace it with an emulation. The emulation will create new VMAs instead of nonlinear mappings. It's going to work slower for rare users of remap_file_pages() but ABI is preserved. One side effect of emulation (apart from performance) is that user can hit vm.max_map_count limit more easily due to additional VMAs. See comment for DEFAULT_MAX_MAP_COUNT for more details on the limit. Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Ingo Molnar <mingo@kernel.org> Cc: Dave Jones <davej@redhat.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Armin Rigo <arigo@tunes.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2014-06-03mm: introduce kmemleak_update_trace()Catalin Marinas1-0/+1
The memory allocation stack trace is not always useful for debugging a memory leak (e.g. radix_tree_preload). This function, when called, updates the stack trace for an already allocated object. Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2014-06-03vmscan: memcg: always use swappiness of the reclaimed memcgMichal Hocko1-8/+7
Memory reclaim always uses swappiness of the reclaim target memcg (origin of the memory pressure) or vm_swappiness for global memory reclaim. This behavior was consistent (except for difference between global and hard limit reclaim) because swappiness was enforced to be consistent within each memcg hierarchy. After "mm: memcontrol: remove hierarchy restrictions for swappiness and oom_control" each memcg can have its own swappiness independent of hierarchical parents, though, so the consistency guarantee is gone. This can lead to an unexpected behavior. Say that a group is explicitly configured to not swapout by memory.swappiness=0 but its memory gets swapped out anyway when the memory pressure comes from its parent with a It is also unexpected that the knob is meaningless without setting the hard limit which would trigger the reclaim and enforce the swappiness. There are setups where the hard limit is configured higher in the hierarchy by an administrator and children groups are under control of somebody else who is interested in the swapout behavior but not necessarily about the memory limit. From a semantic point of view swappiness is an attribute defining anon vs. file proportional scanning of LRU which is memcg specific (unlike charges which are propagated up the hierarchy) so it should be applied to the particular memcg's LRU regardless where the memory pressure comes from. This patch removes vmscan_swappiness() and stores the swappiness into the scan_control structure. mem_cgroup_swappiness is then used to provide the correct value before shrink_lruvec is called. The global vm_swappiness is used for the root memcg. Signed-off-by: Michal Hocko <mhocko@suse.cz> Acked-by: Johannes Weiner <hannes@cmpxchg.org> Cc: Tejun Heo <tj@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2014-06-03memcg: document memory.low_limit_in_bytesMichal Hocko1-1/+10
Describe low_limit_in_bytes and its effect. Signed-off-by: Michal Hocko <mhocko@suse.cz> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Cc: Greg Thelen <gthelen@google.com> Cc: Michel Lespinasse <walken@google.com> Cc: Tejun Heo <tj@kernel.org> Cc: Hugh Dickins <hughd@google.com> Cc: Roman Gushchin <klamm@yandex-team.ru> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2014-06-03memcg-doc-clarify-global-vs-limit-reclaims-fixMichal Hocko1-9/+1
update doc as per Johannes Signed-off-by: Michal Hocko <mhocko@suse.cz> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Cc: Greg Thelen <gthelen@google.com> Cc: Michel Lespinasse <walken@google.com> Cc: Tejun Heo <tj@kernel.org> Cc: Hugh Dickins <hughd@google.com> Cc: Roman Gushchin <klamm@yandex-team.ru> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2014-06-03memcg, doc: clarify global vs. limit reclaimsMichal Hocko1-14/+17
Be explicit about global and hard limit reclaims in our documentation. Signed-off-by: Michal Hocko <mhocko@suse.cz> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Cc: Greg Thelen <gthelen@google.com> Cc: Michel Lespinasse <walken@google.com> Cc: Tejun Heo <tj@kernel.org> Cc: Hugh Dickins <hughd@google.com> Cc: Roman Gushchin <klamm@yandex-team.ru> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2014-06-03kernel/watchdog.c: print traces for all cpus on lockup detectionAaron Tomlin2-0/+22
A 'softlockup' is defined as a bug that causes the kernel to loop in kernel mode for more than a predefined period to time, without giving other tasks a chance to run. Currently, upon detection of this condition by the per-cpu watchdog task, debug information (including a stack trace) is sent to the system log. On some occasions, we have observed that the "victim" rather than the actual "culprit" (i.e. the owner/holder of the contended resource) is reported to the user. Often this information has proven to be insufficient to assist debugging efforts. To avoid loss of useful debug information, for architectures which support NMI, this patch makes it possible to improve soft lockup reporting. This is accomplished by issuing an NMI to each cpu to obtain a stack trace. If NMI is not supported we just revert back to the old method. A sysctl and boot-time parameter is available to toggle this feature. [dzickus@redhat.com: add CONFIG_SMP in certain areas] Signed-off-by: Aaron Tomlin <atomlin@redhat.com> Signed-off-by: Don Zickus <dzickus@redhat.com> Cc: David S. Miller <davem@davemloft.net> Cc: Mateusz Guzik <mguzik@redhat.com> Cc: Oleg Nesterov <oleg@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2014-06-03Merge branch 'akpm-current/current'Stephen Rothwell12-92/+195
Conflicts: arch/arm/include/asm/Kbuild arch/powerpc/include/asm/topology.h fs/ext4/page-io.c kernel/kexec.c mm/memcontrol.c
2014-06-03Merge branch 'rd-docs/master'Stephen Rothwell1-0/+11
2014-06-03Merge remote-tracking branch 'clk/clk-next'Stephen Rothwell10-46/+228
Conflicts: Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt
2014-06-03Merge remote-tracking branch 'dma-buf/for-next'Stephen Rothwell1-0/+3
Conflicts: drivers/gpu/drm/i915/i915_gem_dmabuf.c drivers/staging/android/sync.c
2014-06-03Merge remote-tracking branch 'pwm/for-next'Stephen Rothwell2-1/+30
Conflicts: drivers/leds/leds-pwm.c
2014-06-03Merge remote-tracking branch 'pinctrl/for-next'Stephen Rothwell8-10/+360
2014-06-03Merge remote-tracking branch 'scsi/for-next'Stephen Rothwell1-1/+1
2014-06-03Merge remote-tracking branch 'cgroup/for-next'Stephen Rothwell2-5/+360
Conflicts: mm/memcontrol.c
2014-06-03Merge remote-tracking branch 'char-misc/char-misc-next'Stephen Rothwell5-11/+39
2014-06-03Merge remote-tracking branch 'staging/staging-next'Stephen Rothwell6-2/+93
Conflicts: drivers/staging/rtl8821ae/core.c
2014-06-03Merge remote-tracking branch 'usb/usb-next'Stephen Rothwell17-16/+1280
2014-06-03Merge remote-tracking branch 'tty/tty-next'Stephen Rothwell4-3/+36
2014-06-03Merge remote-tracking branch 'leds/for-next'Stephen Rothwell2-1/+9
2014-06-03Merge remote-tracking branch 'kvm-ppc/kvm-ppc-next'Stephen Rothwell2-0/+20
Conflicts: include/uapi/linux/kvm.h
2014-06-03Merge remote-tracking branch 'kvm-arm/next'Stephen Rothwell2-1/+53
2014-06-03Merge remote-tracking branch 'kvm/linux-next'Stephen Rothwell3-4/+34
2014-06-03Merge remote-tracking branch 'ftrace/for-next'Stephen Rothwell2-0/+50
2014-06-03Merge remote-tracking branch 'irqchip/irqchip/for-next'Stephen Rothwell2-0/+29
2014-06-03Merge remote-tracking branch 'clockevents/clockevents/next'Stephen Rothwell4-4/+42
Conflicts: arch/arm/boot/dts/vf610.dtsi
2014-06-03Merge remote-tracking branch 'tip/auto-latest'Stephen Rothwell14-77/+565
Conflicts: arch/arm64/include/asm/thread_info.h arch/arm64/mm/mmu.c drivers/block/mtip32xx/mtip32xx.c
2014-06-03Merge remote-tracking branch 'spi/for-next'Stephen Rothwell4-0/+63
2014-06-03Merge remote-tracking branch 'dt-rh/for-next'Stephen Rothwell4-1/+44
Conflicts: Documentation/kernel-parameters.txt