1. 14 2月, 2015 1 次提交
  2. 13 2月, 2015 3 次提交
  3. 12 2月, 2015 6 次提交
    • C
      Documentation/filesystems/proc.txt: describe /proc/<pid>/map_files · 740a5ddb
      Cyrill Gorcunov 提交于
      [akpm@linux-foundation.org: tweaks]
      Signed-off-by: NCyrill Gorcunov <gorcunov@openvz.org>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
      Cc: Calvin Owens <calvinowens@fb.com>
      Cc: Pavel Emelyanov <xemul@openvz.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      740a5ddb
    • K
      mm: account pmd page tables to the process · dc6c9a35
      Kirill A. Shutemov 提交于
      Dave noticed that unprivileged process can allocate significant amount of
      memory -- >500 MiB on x86_64 -- and stay unnoticed by oom-killer and
      memory cgroup.  The trick is to allocate a lot of PMD page tables.  Linux
      kernel doesn't account PMD tables to the process, only PTE.
      
      The use-cases below use few tricks to allocate a lot of PMD page tables
      while keeping VmRSS and VmPTE low.  oom_score for the process will be 0.
      
      	#include <errno.h>
      	#include <stdio.h>
      	#include <stdlib.h>
      	#include <unistd.h>
      	#include <sys/mman.h>
      	#include <sys/prctl.h>
      
      	#define PUD_SIZE (1UL << 30)
      	#define PMD_SIZE (1UL << 21)
      
      	#define NR_PUD 130000
      
      	int main(void)
      	{
      		char *addr = NULL;
      		unsigned long i;
      
      		prctl(PR_SET_THP_DISABLE);
      		for (i = 0; i < NR_PUD ; i++) {
      			addr = mmap(addr + PUD_SIZE, PUD_SIZE, PROT_WRITE|PROT_READ,
      					MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);
      			if (addr == MAP_FAILED) {
      				perror("mmap");
      				break;
      			}
      			*addr = 'x';
      			munmap(addr, PMD_SIZE);
      			mmap(addr, PMD_SIZE, PROT_WRITE|PROT_READ,
      					MAP_ANONYMOUS|MAP_PRIVATE|MAP_FIXED, -1, 0);
      			if (addr == MAP_FAILED)
      				perror("re-mmap"), exit(1);
      		}
      		printf("PID %d consumed %lu KiB in PMD page tables\n",
      				getpid(), i * 4096 >> 10);
      		return pause();
      	}
      
      The patch addresses the issue by account PMD tables to the process the
      same way we account PTE.
      
      The main place where PMD tables is accounted is __pmd_alloc() and
      free_pmd_range(). But there're few corner cases:
      
       - HugeTLB can share PMD page tables. The patch handles by accounting
         the table to all processes who share it.
      
       - x86 PAE pre-allocates few PMD tables on fork.
      
       - Architectures with FIRST_USER_ADDRESS > 0. We need to adjust sanity
         check on exit(2).
      
      Accounting only happens on configuration where PMD page table's level is
      present (PMD is not folded).  As with nr_ptes we use per-mm counter.  The
      counter value is used to calculate baseline for badness score by
      oom-killer.
      Signed-off-by: NKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Reported-by: NDave Hansen <dave.hansen@linux.intel.com>
      Cc: Hugh Dickins <hughd@google.com>
      Reviewed-by: NCyrill Gorcunov <gorcunov@openvz.org>
      Cc: Pavel Emelyanov <xemul@openvz.org>
      Cc: David Rientjes <rientjes@google.com>
      Tested-by: NSedat Dilek <sedat.dilek@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      dc6c9a35
    • J
      mm: memcontrol: default hierarchy interface for memory · 241994ed
      Johannes Weiner 提交于
      Introduce the basic control files to account, partition, and limit
      memory using cgroups in default hierarchy mode.
      
      This interface versioning allows us to address fundamental design
      issues in the existing memory cgroup interface, further explained
      below.  The old interface will be maintained indefinitely, but a
      clearer model and improved workload performance should encourage
      existing users to switch over to the new one eventually.
      
      The control files are thus:
      
        - memory.current shows the current consumption of the cgroup and its
          descendants, in bytes.
      
        - memory.low configures the lower end of the cgroup's expected
          memory consumption range.  The kernel considers memory below that
          boundary to be a reserve - the minimum that the workload needs in
          order to make forward progress - and generally avoids reclaiming
          it, unless there is an imminent risk of entering an OOM situation.
      
        - memory.high configures the upper end of the cgroup's expected
          memory consumption range.  A cgroup whose consumption grows beyond
          this threshold is forced into direct reclaim, to work off the
          excess and to throttle new allocations heavily, but is generally
          allowed to continue and the OOM killer is not invoked.
      
        - memory.max configures the hard maximum amount of memory that the
          cgroup is allowed to consume before the OOM killer is invoked.
      
        - memory.events shows event counters that indicate how often the
          cgroup was reclaimed while below memory.low, how often it was
          forced to reclaim excess beyond memory.high, how often it hit
          memory.max, and how often it entered OOM due to memory.max.  This
          allows users to identify configuration problems when observing a
          degradation in workload performance.  An overcommitted system will
          have an increased rate of low boundary breaches, whereas increased
          rates of high limit breaches, maximum hits, or even OOM situations
          will indicate internally overcommitted cgroups.
      
      For existing users of memory cgroups, the following deviations from
      the current interface are worth pointing out and explaining:
      
        - The original lower boundary, the soft limit, is defined as a limit
          that is per default unset.  As a result, the set of cgroups that
          global reclaim prefers is opt-in, rather than opt-out.  The costs
          for optimizing these mostly negative lookups are so high that the
          implementation, despite its enormous size, does not even provide
          the basic desirable behavior.  First off, the soft limit has no
          hierarchical meaning.  All configured groups are organized in a
          global rbtree and treated like equal peers, regardless where they
          are located in the hierarchy.  This makes subtree delegation
          impossible.  Second, the soft limit reclaim pass is so aggressive
          that it not just introduces high allocation latencies into the
          system, but also impacts system performance due to overreclaim, to
          the point where the feature becomes self-defeating.
      
          The memory.low boundary on the other hand is a top-down allocated
          reserve.  A cgroup enjoys reclaim protection when it and all its
          ancestors are below their low boundaries, which makes delegation
          of subtrees possible.  Secondly, new cgroups have no reserve per
          default and in the common case most cgroups are eligible for the
          preferred reclaim pass.  This allows the new low boundary to be
          efficiently implemented with just a minor addition to the generic
          reclaim code, without the need for out-of-band data structures and
          reclaim passes.  Because the generic reclaim code considers all
          cgroups except for the ones running low in the preferred first
          reclaim pass, overreclaim of individual groups is eliminated as
          well, resulting in much better overall workload performance.
      
        - The original high boundary, the hard limit, is defined as a strict
          limit that can not budge, even if the OOM killer has to be called.
          But this generally goes against the goal of making the most out of
          the available memory.  The memory consumption of workloads varies
          during runtime, and that requires users to overcommit.  But doing
          that with a strict upper limit requires either a fairly accurate
          prediction of the working set size or adding slack to the limit.
          Since working set size estimation is hard and error prone, and
          getting it wrong results in OOM kills, most users tend to err on
          the side of a looser limit and end up wasting precious resources.
      
          The memory.high boundary on the other hand can be set much more
          conservatively.  When hit, it throttles allocations by forcing
          them into direct reclaim to work off the excess, but it never
          invokes the OOM killer.  As a result, a high boundary that is
          chosen too aggressively will not terminate the processes, but
          instead it will lead to gradual performance degradation.  The user
          can monitor this and make corrections until the minimal memory
          footprint that still gives acceptable performance is found.
      
          In extreme cases, with many concurrent allocations and a complete
          breakdown of reclaim progress within the group, the high boundary
          can be exceeded.  But even then it's mostly better to satisfy the
          allocation from the slack available in other groups or the rest of
          the system than killing the group.  Otherwise, memory.max is there
          to limit this type of spillover and ultimately contain buggy or
          even malicious applications.
      
        - The original control file names are unwieldy and inconsistent in
          many different ways.  For example, the upper boundary hit count is
          exported in the memory.failcnt file, but an OOM event count has to
          be manually counted by listening to memory.oom_control events, and
          lower boundary / soft limit events have to be counted by first
          setting a threshold for that value and then counting those events.
          Also, usage and limit files encode their units in the filename.
          That makes the filenames very long, even though this is not
          information that a user needs to be reminded of every time they
          type out those names.
      
          To address these naming issues, as well as to signal clearly that
          the new interface carries a new configuration model, the naming
          conventions in it necessarily differ from the old interface.
      
        - The original limit files indicate the state of an unset limit with
          a very high number, and a configured limit can be unset by echoing
          -1 into those files.  But that very high number is implementation
          and architecture dependent and not very descriptive.  And while -1
          can be understood as an underflow into the highest possible value,
          -2 or -10M etc. do not work, so it's not inconsistent.
      
          memory.low, memory.high, and memory.max will use the string
          "infinity" to indicate and set the highest possible value.
      
      [akpm@linux-foundation.org: use seq_puts() for basic strings]
      Signed-off-by: NJohannes Weiner <hannes@cmpxchg.org>
      Acked-by: NMichal Hocko <mhocko@suse.cz>
      Cc: Vladimir Davydov <vdavydov@parallels.com>
      Cc: Greg Thelen <gthelen@google.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      241994ed
    • W
      mm:add KPF_ZERO_PAGE flag for /proc/kpageflags · 56873f43
      Wang, Yalin 提交于
      Add KPF_ZERO_PAGE flag for zero_page, so that userspace processes can
      detect zero_page in /proc/kpageflags, and then do memory analysis more
      accurately.
      Signed-off-by: NYalin Wang <yalin.wang@sonymobile.com>
      Acked-by: NKirill A. Shutemov <kirill@shutemov.name>
      Cc: Konstantin Khlebnikov <koct9i@gmail.com>
      Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      56873f43
    • J
      f2fs: introduce a batched trim · bba681cb
      Jaegeuk Kim 提交于
      This patch introduces a batched trimming feature, which submits split discard
      commands.
      
      This is to avoid long latency due to huge trim commands.
      If fstrim was triggered ranging from 0 to the end of device, we should lock
      all the checkpoint-related mutexes, resulting in very long latency.
      Reviewed-by: NChao Yu <chao2.yu@samsung.com>
      Signed-off-by: NJaegeuk Kim <jaegeuk@kernel.org>
      bba681cb
    • J
      f2fs: support norecovery mount option · 2d834bf9
      Jaegeuk Kim 提交于
      This patch adds a mount option, norecovery, which is mostly same as
      disable_roll_forward. The only difference is that norecovery should be activated
      with read-only mount option.
      
      This can be used when user wants to check whether f2fs is mountable or not
      without any recovery process. (e.g., xfstests/200)
      Reviewed-by: NChao Yu <chao2.yu@samsung.com>
      Signed-off-by: NJaegeuk Kim <jaegeuk@kernel.org>
      2d834bf9
  4. 11 2月, 2015 5 次提交
    • K
      rmap: drop support of non-linear mappings · 27ba0644
      Kirill A. Shutemov 提交于
      We don't create non-linear mappings anymore.  Let's drop code which
      handles them in rmap.
      Signed-off-by: NKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      27ba0644
    • K
      mm: replace remap_file_pages() syscall with emulation · c8d78c18
      Kirill A. Shutemov 提交于
      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;
              }
      
      [akpm@linux-foundation.org: fix spello]
      [sasha.levin@oracle.com: initialize populate before usage]
      [sasha.levin@oracle.com: grab file ref to prevent race while mmaping]
      Signed-off-by: N"Kirill A. Shutemov" <kirill@shutemov.name>
      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: NSasha Levin <sasha.levin@oracle.com>
      Cc: Hugh Dickins <hughd@google.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c8d78c18
    • D
      fsioctl.c: make generic_block_fiemap() signal-tolerant · 913e027c
      Dmitry Monakhov 提交于
      __generic_block_fiemap may spin very long time for large sparse files.
      
      Without this patch an unprivileged user may abuse system resources simply
      by spawning a vast number of unkilable busyloops (works on ext2/ext3):
      
        truncate --size 1T test
        for ((i=0;i<1024;i++))
        do
               filefrag test > /dev/null &
        done
      Signed-off-by: NDmitry Monakhov <dmonakhov@openvz.org>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Michael Kerrisk <mtk.manpages@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      913e027c
    • A
      ocfs2: add a mount option journal_async_commit on ocfs2 filesystem · 1dfeb768
      alex chen 提交于
      Add a mount option to support JBD2 feature:
      
      JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT.  When this feature is opened, journal
      commit block can be written to disk without waiting for descriptor blocks,
      which can improve journal commit performance.  This option will enable
      'journal_checksum' internally.
      
      Using the fs_mark benchmark, using journal_async_commit shows a 50%
      improvement, the files per second go up from 215.2 to 317.5.
      
      test script:
      fs_mark  -d  /mnt/ocfs2/  -s  10240  -n  1000
      
      default:
      FSUse%        Count         Size    Files/sec     App Overhead
           0         1000        10240        215.2            17878
      
      with journal_async_commit option:
      FSUse%        Count         Size    Files/sec     App Overhead
           0         1000        10240        317.5            17881
      Signed-off-by: NAlex Chen <alex.chen@huawei.com>
      Signed-off-by: NWeiwei Wang <wangww631@huawei.comm>
      Reviewed-by: NJoseph Qi <joseph.qi@huawei.com>
      Reviewed-by: NMark Fasheh <mfasheh@suse.de>
      Cc: Joel Becker <jlbec@evilplan.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      1dfeb768
    • Z
      inotify: update documentation to reflect code changes · a5b2f95d
      Zhang Zhen 提交于
      The inotify interface has changed a lot.  The user interface was too
      old, and the kernel interface was removed by Eric Paris in commit:
      2dfc1cae inotify: remove inotify in kernel interface.
      Signed-off-by: NZhang Zhen <zhenzhang.zhang@huawei.com>
      Cc: Wang Kai <morgan.wang@huawei.com>
      Cc: Eric Paris <eparis@parisplace.org>
      Cc: Robert Love <robert.w.love@intel.com>
      Cc: John McCutchan <john@johnmccutchan.com>
      Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
      Acked-by: NJan Kara <jack@suse.cz>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a5b2f95d
  5. 10 2月, 2015 2 次提交
  6. 09 2月, 2015 1 次提交
  7. 08 2月, 2015 1 次提交
    • N
      tcp: helpers to mitigate ACK loops by rate-limiting out-of-window dupacks · 032ee423
      Neal Cardwell 提交于
      Helpers for mitigating ACK loops by rate-limiting dupacks sent in
      response to incoming out-of-window packets.
      
      This patch includes:
      
      - rate-limiting logic
      - sysctl to control how often we allow dupacks to out-of-window packets
      - SNMP counter for cases where we rate-limited our dupack sending
      
      The rate-limiting logic in this patch decides to not send dupacks in
      response to out-of-window segments if (a) they are SYNs or pure ACKs
      and (b) the remote endpoint is sending them faster than the configured
      rate limit.
      
      We rate-limit our responses rather than blocking them entirely or
      resetting the connection, because legitimate connections can rely on
      dupacks in response to some out-of-window segments. For example, zero
      window probes are typically sent with a sequence number that is below
      the current window, and ZWPs thus expect to thus elicit a dupack in
      response.
      
      We allow dupacks in response to TCP segments with data, because these
      may be spurious retransmissions for which the remote endpoint wants to
      receive DSACKs. This is safe because segments with data can't
      realistically be part of ACK loops, which by their nature consist of
      each side sending pure/data-less ACKs to each other.
      
      The dupack interval is controlled by a new sysctl knob,
      tcp_invalid_ratelimit, given in milliseconds, in case an administrator
      needs to dial this upward in the face of a high-rate DoS attack. The
      name and units are chosen to be analogous to the existing analogous
      knob for ICMP, icmp_ratelimit.
      
      The default value for tcp_invalid_ratelimit is 500ms, which allows at
      most one such dupack per 500ms. This is chosen to be 2x faster than
      the 1-second minimum RTO interval allowed by RFC 6298 (section 2, rule
      2.4). We allow the extra 2x factor because network delay variations
      can cause packets sent at 1 second intervals to be compressed and
      arrive much closer.
      Reported-by: NAvery Fay <avery@mixpanel.com>
      Signed-off-by: NNeal Cardwell <ncardwell@google.com>
      Signed-off-by: NYuchung Cheng <ycheng@google.com>
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      032ee423
  8. 07 2月, 2015 2 次提交
  9. 06 2月, 2015 3 次提交
    • L
      mailbox: Add Altera mailbox driver · f62092f6
      Ley Foon Tan 提交于
      The Altera mailbox allows for interprocessor communication. It supports
      only one channel and work as either sender or receiver.
      Signed-off-by: NLey Foon Tan <lftan@altera.com>
      f62092f6
    • I
      cxl: Export optional AFU configuration record in sysfs · b087e619
      Ian Munsie 提交于
      An AFU may optionally contain one or more PCIe like configuration
      records, which can be used to identify the AFU.
      
      This patch adds support for exposing the raw config space and the
      vendor, device and class code under sysfs. These will appear in a
      subdirectory of the AFU device corresponding with the configuration
      record number, e.g.
      
      cat /sys/class/cxl/afu0.0/cr0/vendor
      0x1014
      
      cat /sys/class/cxl/afu0.0/cr0/device
      0x4350
      
      cat /sys/class/cxl/afu0.0/cr0/class
      0x120000
      
      hexdump -C /sys/class/cxl/afu0.0/cr0/config
      00000000  14 10 50 43 00 00 00 00  06 00 00 12 00 00 00 00  |..PC............|
      00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
      *
      00000100
      
      These files behave in much the same way as the equivalent files for PCI
      devices, with one exception being that the config file is currently
      read-only and restricted to the root user. It is not necessarily
      required to be this strict, but we currently do not have a compelling
      use-case to make it writable and/or world-readable, so I erred on the
      side of being restrictive.
      Signed-off-by: NIan Munsie <imunsie@au1.ibm.com>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      b087e619
    • E
      xfs: fix panic_mask documentation · de8bd0eb
      Eric Sandeen 提交于
      This bit of the docs didn't quite reflect reality.
      Signed-off-by: NEric Sandeen <sandeen@redhat.com>
      Reviewed-by: NBrian Foster <bfoster@redhat.com>
      Signed-off-by: NDave Chinner <david@fromorbit.com>
      
      de8bd0eb
  10. 05 2月, 2015 11 次提交
  11. 04 2月, 2015 5 次提交
    • T
      Doc/DT: Add DT binding doc for DRA7xx DSS · 6761a8f6
      Tomi Valkeinen 提交于
      Add device tree binding documentation for DRA7xx display subsystem.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Cc: devicetree@vger.kernel.org
      6761a8f6
    • M
      mmc: pwrseq: add driver for emmc hardware reset · 726b6324
      Marek Szyprowski 提交于
      This patch provides a simple mmc-pwrseq-emmc driver, which controls
      single gpio line. It perform standard eMMC hw reset procedure, as
      descibed by Jedec 4.4 specification. This procedure is performed just
      after MMC core enabled power to the given mmc host (to fix possible
      issues if bootloader has left eMMC card in initialized or unknown
      state), and before performing complete system reboot (also in case of
      emergency reboot call). The latter is needed on boards, which doesn't
      have hardware reset logic connected to emmc card and (limited or broken)
      ROM bootloaders are unable to read second stage from the emmc card if
      the card is left in unknown or already initialized state.
      Signed-off-by: NMarek Szyprowski <m.szyprowski@samsung.com>
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      726b6324
    • P
      Documentation: DT: document compatible string existence requirement · 10638a4e
      Paul Walmsley 提交于
      DT maintainers require all compatible strings used in chip or board
      DTS file to be previously documented somewhere in
      Documentation/devicetree/bindings, per:
      
      http://marc.info/?l=linux-tegra&m=142201349727836&w=2
      
      Document this requirement in the DT patch submission requirements
      text file.
      
      This second version updates the documentation to align with
      Rob's comments here:
      
      http://marc.info/?l=devicetree&m=142255654213019&w=2Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: Pawel Moll <pawel.moll@arm.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
      Cc: Kumar Gala <galak@codeaurora.org>
      Cc: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Paul Walmsley <pwalmsley@nvidia.com>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NRob Herring <robh@kernel.org>
      10638a4e
    • P
      Documentation: DT bindings: add nvidia, tegra132-denver compatible string · f634da37
      Paul Walmsley 提交于
      Add a compatible string for the NVIDIA Denver CPU to the ARM CPU DT
      binding documentation file.  The primary objective here is to keep
      checkpatch.pl from warning when the compatible string is used in an
      SoC DT file, per:
      
      http://marc.info/?l=linux-tegra&m=142201349727836&w=2
      
      This second version changes the string from "nvidia,denver" to
      "nvidia,tegra132-denver" to more precisely describe the revision of
      the Denver CPU complex that is present in the Tegra132 SoC.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: Pawel Moll <pawel.moll@arm.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
      Cc: Kumar Gala <galak@codeaurora.org>
      Cc: Heiko Stuebner <heiko@sntech.de>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Olof Johansson <olof@lixom.net>
      Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
      Cc: Rohit Vaswani <rvaswani@codeaurora.org>
      Cc: Paul Walmsley <pwalmsley@nvidia.com>
      Cc: Marc Carino <marc.ceeeee@gmail.com>
      Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Cc: linux-kernel@vger.kernel.org
      Cc: linux-arm-kernel@lists.infradead.org
      Signed-off-by: NRob Herring <robh@kernel.org>
      f634da37
    • P
      Documentation: DT bindings: add more Tegra chip compatible strings · 193c9d23
      Paul Walmsley 提交于
      Align compatible strings for several IP blocks present on Tegra chips
      with the latest doctrine from the DT maintainers:
      
      http://marc.info/?l=devicetree&m=142255654213019&w=2
      
      The primary objective here is to avoid checkpatch warnings, per:
      
      http://marc.info/?l=linux-tegra&m=142201349727836&w=2
      
      DT binding text files have been updated for the following IP blocks:
      
      - PCIe
      - SOR
      - SoC timers
      - AHB "gizmo"
      - APB_MISC
      - pinmux control
      - UART
      - PWM
      - I2C
      - SPI
      - RTC
      - PMC
      - eFuse
      - AHCI
      - HDA
      - XUSB_PADCTRL
      - SDHCI
      - SOC_THERM
      - AHUB
      - I2S
      - EHCI
      - USB PHY
      
      N.B. The nvidia,tegra20-timer compatible string is removed from the
      nvidia,tegra30-timer.txt documentation file because it's already
      mentioned in the nvidia,tegra20-timer.txt documentation file.
      
      This second version takes into account the following requests from
      Rob Herring <robherring2@gmail.com>:
      
      - Per-IP block patches have been combined into a single patch
      
      - Explicit documentation about which compatible strings are actually
        matched by the driver has been removed.  In its place is implicit
        documentation that loosely follows Rob's prescribed format:
      
        "Must contain '"nvidia,<chip>-pcie", "nvidia,tegra20-pcie"' where
         <chip> is tegra30, tegra132, ..." [...]  "You should attempt to
         document known values of <chip> if you use it"
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Alexandre Courbot <gnurou@gmail.com>
      Cc: Dylan Reid <dgreid@chromium.org>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Hans de Goede <hdegoede@redhat.com>
      Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
      Cc: Jingchang Lu <jingchang.lu@freescale.com>
      Cc: John Crispin <blogic@openwrt.org>
      Cc: Kumar Gala <galak@codeaurora.org>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mikko Perttunen <mperttunen@nvidia.com>
      Cc: Murali Karicheri <m-karicheri2@ti.com>
      Cc: Paul Walmsley <pwalmsley@nvidia.com>
      Cc: Pawel Moll <pawel.moll@arm.com>
      Cc: Peter De Schrijver <pdeschrijver@nvidia.com>
      Cc: Peter Hurley <peter@hurleysoftware.com>
      Cc: Sean Paul <seanpaul@chromium.org>
      Cc: Stephen Warren <swarren@wwwdotorg.org>
      Cc: Takashi Iwai <tiwai@suse.de>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: "Terje Bergström" <tbergstrom@nvidia.com>
      Cc: Thierry Reding <thierry.reding@gmail.com>
      Cc: Tuomas Tynkkynen <ttynkkynen@nvidia.com>
      Cc: Wolfram Sang <wsa@the-dreams.de>
      Cc: Zhang Rui <rui.zhang@intel.com>
      Cc: dri-devel@lists.freedesktop.org
      Cc: linux-i2c@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Cc: linux-pci@vger.kernel.org
      Cc: linux-pm@vger.kernel.org
      Cc: linux-pwm@vger.kernel.org
      Cc: linux-tegra@vger.kernel.org
      Acked-by: NEduardo Valentin <edubezval@gmail.com>
      Signed-off-by: NRob Herring <robh@kernel.org>
      193c9d23