Skip to content

Commits

Permalink
vsock-extras
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Commits on Oct 7, 2016

  1. WIP nfsd auth.unix.ip

    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Stefan Hajnoczi committed Oct 7, 2016
    Copy the full SHA
    6a95755 View commit details
    Browse the repository at this point in the history
  2. HACK nfs: avoid BUG() for AUTH_NONE/AUTH_SYS

    This patch does not add AF_VSOCK support to AUTH_NONE/AUTH_SYS.  It just
    moves the early return so a subset of calls succeed without hitting
    BUG().  Later on we probably need to implement that cache properly for
    AF_VSOCK.
    
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Stefan Hajnoczi committed Oct 7, 2016
    Copy the full SHA
    a3f0c53 View commit details
    Browse the repository at this point in the history
  3. DEBUG add scripts to launch guest with initramfs

    Launch a tiny busybox guest for testing
    
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Stefan Hajnoczi committed Oct 7, 2016
    Copy the full SHA
    55b89ee View commit details
    Browse the repository at this point in the history

Commits on Oct 6, 2016

  1. DEBUG add nc-vsock utility

    Testing utility for AF_VSOCK
    
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Stefan Hajnoczi committed Oct 6, 2016
    Copy the full SHA
    881bc66 View commit details
    Browse the repository at this point in the history
  2. SUNRPC: vsock svcsock support

    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Stefan Hajnoczi committed Oct 6, 2016
    Copy the full SHA
    a17b1b6 View commit details
    Browse the repository at this point in the history
  3. SUNRPC: add AF_VSOCK lock class

    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Stefan Hajnoczi committed Oct 6, 2016
    Copy the full SHA
    877de1b View commit details
    Browse the repository at this point in the history
  4. nfsd: support vsock xprt creation

    nfs-utils will write the vsock address details to /proc/fs/nfsd/portlist
    to start listening for NFS client connections.
    
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Stefan Hajnoczi committed Oct 6, 2016
    Copy the full SHA
    9886906 View commit details
    Browse the repository at this point in the history
  5. NFS: add AF_VSOCK support to NFS client

    This patch adds AF_VSOCK to the NFS client.  Mounts can now use the
    "vsock" proto option and pass "vsock:<cid>" address strings, which are
    interpreted by sunrpc for xprt creation.
    
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Stefan Hajnoczi committed Oct 6, 2016
    Copy the full SHA
    619688a View commit details
    Browse the repository at this point in the history
  6. SUNRPC: add AF_VSOCK backchannel support

    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Stefan Hajnoczi committed Oct 6, 2016
    Copy the full SHA
    eb9ae4a View commit details
    Browse the repository at this point in the history
  7. SUNRPC: add AF_VSOCK support to svc_xprt.c

    Allow creation of AF_VSOCK service xprts.  This is needed for the
    "vsock-bc" backchannel.
    
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Stefan Hajnoczi committed Oct 6, 2016
    Copy the full SHA
    9a65678 View commit details
    Browse the repository at this point in the history
  8. SUNRPC: drop unnecessary svc_bc_tcp_create() helper

    svc_bc_tcp_create() is a helper function that simply calls
    svc_bc_create_socket() with an added IPPROTO_TCP argument.
    
    svc_bc_create_socket() then checks that the protocol argument is indeed
    IPPROTO_TCP.
    
    This isn't necessary since svc_bc_tcp_create() is the only
    svc_bc_create_socket() caller.  The next patch adds a second caller for
    AF_VSOCK where IPPROTO_TCP will not be used.
    
    Scrap this scheme and just call svc_bc_create_socket() directly.
    
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Stefan Hajnoczi committed Oct 6, 2016
    Copy the full SHA
    23977ad View commit details
    Browse the repository at this point in the history
  9. SUNRPC: add AF_VSOCK support to xprtsock.c

    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Stefan Hajnoczi committed Oct 6, 2016
    Copy the full SHA
    163bfaa View commit details
    Browse the repository at this point in the history
  10. VSOCK: add tcp_read_sock()-like vsock_read_sock() function

    The tcp_read_sock() interface dequeues skbs and gives them to the
    caller's callback function for processing.  This interface can avoid
    data copies since the caller accesses the skb instead of using its own
    receive buffer.
    
    This patch implements vsock_read_sock() for AF_VSOCK SOCK_STREAM
    sockets.  The implementation is only for virtio-vsock at this time, not
    for the VMware VMCI transport.  It is not zero-copy yet because the
    virtio-vsock receive queue does not consist of skbs.
    
    The tcp_read_sock()-like interface is needed for AF_VSOCK sunrpc
    support.
    
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Stefan Hajnoczi committed Oct 6, 2016
    Copy the full SHA
    c96d820 View commit details
    Browse the repository at this point in the history
  11. SUNRPC: extract xs_stream_reset_state()

    Extract a function to reset the record fragment parser.
    
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Stefan Hajnoczi committed Oct 6, 2016
    Copy the full SHA
    ac298f8 View commit details
    Browse the repository at this point in the history
  12. SUNRPC: abstract tcp_read_sock() in record fragment parser

    Use a function pointer to abstract tcp_read_sock()-like functions.  For
    TCP this function will be tcp_read_sock().  For AF_VSOCK it will be
    vsock_read_sock().
    
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Stefan Hajnoczi committed Oct 6, 2016
    Copy the full SHA
    9198a1f View commit details
    Browse the repository at this point in the history
  13. SUNRPC: rename "TCP" record parser to "stream" parser

    The TCP record parser is really a RFC 1831 record fragment parser.
    There is nothing TCP protocol-specific about parsing record fragments.
    The parser can be reused for any SOCK_STREAM socket.
    
    This patch renames functions and fields but xs_stream_data_ready() still
    calls tcp_read_sock().  This is addressed in the next patch.
    
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Stefan Hajnoczi committed Oct 6, 2016
    Copy the full SHA
    1618001 View commit details
    Browse the repository at this point in the history
  14. SUNRPC: add AF_VSOCK support to addr.[ch]

    AF_VSOCK addresses are a Context ID (CID) and port number tuple.  The
    CID is a unique address, similar to a IP address on a local subnet.
    
    Extend the addr.h functions to handle AF_VSOCK addresses.
    
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    ---
    v2:
     * Replace CONFIG_VSOCKETS with CONFIG_SUNRPC_XPRT_VSOCK to prevent
       build failures when SUNRPC=y and VSOCKETS=m.  Built-in code cannot
       link against code in a module.
    Stefan Hajnoczi committed Oct 6, 2016
    Copy the full SHA
    caf7595 View commit details
    Browse the repository at this point in the history

Commits on Oct 2, 2016

  1. Linux 4.8

    torvalds committed Oct 2, 2016
    Copy the full SHA
    c8d2bc9 View commit details
    Browse the repository at this point in the history
  2. Merge branch 'fixes' of git://git.armlinux.org.uk/~rmk/linux-arm

    Pull ARM fixes from Russell King:
     "Three relatively small fixes for ARM:
    
       - Roger noticed that dma_max_pfn() was calculating the upper limit
         wrongly, by adding the PFN offset of memory twice.
    
       - A fix from Robin to correct parsing of MPIDR values when the
         address size is larger than one BE32 unit.
    
       - A fix from Srinivas to ensure that we do not rely on the boot
         loader (or previous Linux kernel) setting the translation table
         base register a certain way in the decompressor, which can lead to
         crashes"
    
    * 'fixes' of git://git.armlinux.org.uk/~rmk/linux-arm:
      ARM: 8618/1: decompressor: reset ttbcr fields to use TTBR0 on ARMv7
      ARM: 8617/1: dma: fix dma_max_pfn()
      ARM: 8616/1: dt: Respect property size when parsing CPUs
    torvalds committed Oct 2, 2016
    Copy the full SHA
    f76d9c6 View commit details
    Browse the repository at this point in the history
  3. ARM: 8618/1: decompressor: reset ttbcr fields to use TTBR0 on ARMv7

    If the bootloader uses the long descriptor format and jumps to
    kernel decompressor code, TTBCR may not be in a right state.
    Before enabling the MMU, it is required to clear the TTBCR.PD0
    field to use TTBR0 for translation table walks.
    
    The commit dbece45 ("ARM: 7501/1: decompressor:
    reset ttbcr for VMSA ARMv7 cores") does the reset of TTBCR.N, but
    doesn't consider all the bits for the size of TTBCR.N.
    
    Clear TTBCR.PD0 field and reset all the three bits of TTBCR.N to
    indicate the use of TTBR0 and the correct base address width.
    
    Fixes: dbece45 ("ARM: 7501/1: decompressor: reset ttbcr for VMSA ARMv7 cores")
    Acked-by: Robin Murphy <robin.murphy@arm.com>
    Signed-off-by: Srinivas Ramana <sramana@codeaurora.org>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Srinivas Ramana authored and Russell King committed Oct 2, 2016
    Copy the full SHA
    117e5e9 View commit details
    Browse the repository at this point in the history
  4. Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/l…

    …inux/kernel/git/tip/tip
    
    Pull x86 fixes from Thomas Gleixner:
     "The last regression fixes for 4.8 final:
    
       - Two patches addressing the fallout of the CR4 optimizations which
         caused CR4-less machines to fail.
    
       - Fix the VDSO build on big endian machines
    
       - Take care of FPU initialization if no CPUID is available otherwise
         task struct size ends up being zero
    
       - Fix up context tracking in case load_gs_index fails"
    
    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      x86/entry/64: Fix context tracking state warning when load_gs_index fails
      x86/boot: Initialize FPU and X86_FEATURE_ALWAYS even if we don't have CPUID
      x86/vdso: Fix building on big endian host
      x86/boot: Fix another __read_cr4() case on 486
      x86/init: Fix cr4_init_shadow() on CR4-less machines
    torvalds committed Oct 2, 2016
    Copy the full SHA
    be67d60 View commit details
    Browse the repository at this point in the history
  5. Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upst…

    …ream-linus
    
    Pull MIPS fixes from Ralf Baechle:
     "Another round of fixes:
    
       - CM: Fix mips_cm_max_vp_width for non-MT kernels on MT systems
       - CPS: Avoid BUG() when offlining pre-r6 CPUs
       - DEC: Avoid gas warnings due to suspicious instruction scheduling by
         manually expanding assembler macros.
       - FTLB: Fix configuration by moving confiuguratoin after probing
       - FTLB: clear execution hazard after changing FTLB enable
       - Highmem: Fix detection of unsupported highmem with cache aliases
       - I6400: Don't touch FTLBP chicken bits
       - microMIPS: Fix BUILD_ROLLBACK_PROLOGUE
       - Malta: Fix IOCU disable switch read for MIPS64
       - Octeon: Fix probing of devices attached to GPIO lines
       - uprobes: Misc small fixes"
    
    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
      MIPS: CM: Fix mips_cm_max_vp_width for non-MT kernels on MT systems
      MIPS: Fix detection of unsupported highmem with cache aliases
      MIPS: Malta: Fix IOCU disable switch read for MIPS64
      MIPS: Fix BUILD_ROLLBACK_PROLOGUE for microMIPS
      MIPS: clear execution hazard after changing FTLB enable
      MIPS: Configure FTLB after probing TLB sizes from config4
      MIPS: Stop setting I6400 FTLBP
      MIPS: DEC: Avoid la pseudo-instruction in delay slots
      MIPS: Octeon: mark GPIO controller node not populated after IRQ init.
      MIPS: uprobes: fix use of uninitialised variable
      MIPS: uprobes: remove incorrect set_orig_insn
      MIPS: fix uretprobe implementation
      MIPS: smp-cps: Avoid BUG() when offlining pre-r6 CPUs
    torvalds committed Oct 2, 2016
    Copy the full SHA
    66188fb View commit details
    Browse the repository at this point in the history
  6. Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc

    Pull sparc fixes from David Miller:
    
     1) Fix section mismatches in some builds, from Paul Gortmaker.
    
     2) Need to count huge zero page mappings when doing TSB sizing, from
        Mike Kravetz.
    
     3) Fix handing of cpu_possible_mask when nr_cpus module option is
        specified, from Atish Patra.
    
     4) Don't allocate irq stacks until nr_irqs has been processed, also
        from Atish Patra.
    
    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
      sparc64: Fix non-SMP build.
      sparc64: Fix irq stack bootmem allocation.
      sparc64: Fix cpu_possible_mask if nr_cpus is set
      sparc64 mm: Fix more TSB sizing issues
      sparc64: fix section mismatch in find_numa_latencies_for_group
    torvalds committed Oct 2, 2016
    Copy the full SHA
    0c7fc30 View commit details
    Browse the repository at this point in the history
  7. Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net

    Pull networking fixes from David Miller:
    
     1) Fix wrong TCP checksums on MTU probing when checksum offloading is
        disabled, from Douglas Caetano dos Santos.
    
     2) Fix qdisc backlog updates in qfq and sfb schedulers, from Cong Wang.
    
     3) Route lookup flow key protocol value is wrong in ip6gre_xmit_other(),
        fix from Lance Richardson.
    
     4) Scheduling while atomic in multicast routing code of ipv4 and ipv6,
        fix from Nikolay Aleksandrov.
    
     5) Fix packet alignment in fec driver, from Eric Nelson.
    
     6) Fix perf regression in sctp due to struct layout and cache misses,
        from Xin Long.
    
    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
      sctp: fix the issue sctp_diag uses lock_sock in rcu_read_lock
      sctp: change to check peer prsctp_capable when using prsctp polices
      sctp: remove prsctp_param from sctp_chunk
      sctp: move sent_count to the memory hole in sctp_chunk
      tg3: Avoid NULL pointer dereference in tg3_io_error_detected()
      act_ife: Fix false encoding
      act_ife: Fix external mac header on encode
      VSOCK: Don't dec ack backlog twice for rejected connections
      Revert "net: ethernet: bcmgenet: use phydev from struct net_device"
      net: fec: align IP header in hardware
      net: fec: remove QUIRK_HAS_RACC from i.mx27
      net: fec: remove QUIRK_HAS_RACC from i.mx25
      ipmr, ip6mr: fix scheduling while atomic and a deadlock with ipmr_get_route
      ip6_gre: fix flowi6_proto value in ip6gre_xmit_other()
      tcp: fix a compile error in DBGUNDO()
      tcp: fix wrong checksum calculation on MTU probing
      sch_sfb: keep backlog updated with qlen
      sch_qfq: keep backlog updated with qlen
      can: dev: fix deadlock reported after bus-off
    torvalds committed Oct 2, 2016
    Copy the full SHA
    bb6bbc7 View commit details
    Browse the repository at this point in the history

Commits on Oct 1, 2016

  1. MIPS: CM: Fix mips_cm_max_vp_width for non-MT kernels on MT systems

    When discovering the number of VPEs per core, smp_num_siblings will be
    incorrect for kernels built without support for the MIPS MultiThreading
    (MT) ASE running on systems which implement said ASE. This leads to
    accesses to VPEs in secondary cores being performed incorrectly since
    mips_cm_vp_id calculates the wrong ID to write to the local "other"
    registers. Fix this by examining the number of VPEs in the core as
    reported by the CM.
    
    This patch presumes that the number of VPEs will be the same in each
    core of the system. As this path only applies to systems with CM version
    2.5 or lower, and this property is true of all such known systems, this
    is likely to be fine but is described in a comment for good measure.
    
    Signed-off-by: Paul Burton <paul.burton@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/14338/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    paulburton authored and ralfbaechle committed Oct 1, 2016
    Copy the full SHA
    6605d15 View commit details
    Browse the repository at this point in the history
  2. Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/g…

    …it/jejb/scsi
    
    Pull SCSI fix from James Bottomley:
     "One final fix before 4.8.
    
      There was a memory leak triggered by turning scsi mq off due to the
      fact that we assume on host release that the already running hosts
      weren't mq based because that's the state of the global flag (even
      though they were).
    
      Fix it by tracking this on a per host host basis"
    
    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
      scsi: Avoid that toggling use_blk_mq triggers a memory leak
    torvalds committed Oct 1, 2016
    Copy the full SHA
    f51fdff View commit details
    Browse the repository at this point in the history
  3. Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/dtor/input
    
    Pull input fix from Dmitry Torokhov:
     "One small change to make joydev (which is used by older games) to bind
      to devices that export Z axis but not X or Y (such as TRC rudder)"
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
      Input: joydev - recognize devices with Z axis as joysticks
    torvalds committed Oct 1, 2016
    Copy the full SHA
    2161a2a View commit details
    Browse the repository at this point in the history

Commits on Sep 30, 2016

  1. Merge branch 'akpm' (patches from Andrew)

    Merge more fixes from Andrew Morton:
     "Three fixes"
    
    * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
      include/linux/property.h: fix typo/compile error
      ocfs2: fix deadlock on mmapped page in ocfs2_write_begin_nolock()
      mm: workingset: fix crash in shadow node shrinker caused by replace_page_cache_page()
    torvalds committed Sep 30, 2016
    Copy the full SHA
    dbd8805 View commit details
    Browse the repository at this point in the history
  2. include/linux/property.h: fix typo/compile error

    This fixes commit d76eebf ("include/linux/property.h: fix build
    issues with gcc-4.4.4").
    
    With that commit we get the following compile error when using the
    PROPERTY_ENTRY_INTEGER_ARRAY macro.
    
     include/linux/property.h:201:39: error: `u32_data' undeclared (first
                     use in this function)
      PROPERTY_ENTRY_INTEGER_ARRAY(_name_, u32, _val_)
                                           ^
     include/linux/property.h:193:17: note: in definition of macro
                     `PROPERTY_ENTRY_INTEGER_ARRAY'
      { .pointer = { _type_##_data = _val_ } },  \
                     ^
    
    This needs a '.' to reference the union member.  It seems this was just
    overlooked here since it is done correctly in similar constructs in
    other parts of the original commit.
    
    This fix is in preparation of upcoming commits that will use this macro.
    
    Fixes: commit d76eebf ("include/linux/property.h: fix build issues with gcc-4.4.4")
    Link: http://lkml.kernel.org/r/2de3b929290d88a723ed829a3e3cbd02044714df.1475114627.git.johnyoun@synopsys.com
    Signed-off-by: John Youn <johnyoun@synopsys.com>
    Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    jysnps authored and torvalds committed Sep 30, 2016
    Copy the full SHA
    37aa727 View commit details
    Browse the repository at this point in the history
  3. ocfs2: fix deadlock on mmapped page in ocfs2_write_begin_nolock()

    The testcase "mmaptruncate" of ocfs2-test deadlocks occasionally.
    
    In this testcase, we create a 2*CLUSTER_SIZE file and mmap() on it;
    there are 2 process repeatedly performing the following operations
    respectively: one is doing memset(mmaped_addr + 2*CLUSTER_SIZE - 1, 'a',
    1), while the another is playing ftruncate(fd, 2*CLUSTER_SIZE) and then
    ftruncate(fd, CLUSTER_SIZE) again and again.
    
    This is the backtrace when the deadlock happens:
    
       __wait_on_bit_lock+0x50/0xa0
       __lock_page+0xb7/0xc0
       ocfs2_write_begin_nolock+0x163f/0x1790 [ocfs2]
       ocfs2_page_mkwrite+0x1c7/0x2a0 [ocfs2]
       do_page_mkwrite+0x66/0xc0
       handle_mm_fault+0x685/0x1350
       __do_page_fault+0x1d8/0x4d0
       trace_do_page_fault+0x37/0xf0
       do_async_page_fault+0x19/0x70
       async_page_fault+0x28/0x30
    
    In ocfs2_write_begin_nolock(), we first grab the pages and then allocate
    disk space for this write; ocfs2_try_to_free_truncate_log() will be
    called if -ENOSPC is returned; if we're lucky to get enough clusters,
    which is usually the case, we start over again.
    
    But in ocfs2_free_write_ctxt() the target page isn't unlocked, so we
    will deadlock when trying to grab the target page again.
    
    Also, -ENOMEM might be returned in ocfs2_grab_pages_for_write().
    Another deadlock will happen in __do_page_mkwrite() if
    ocfs2_page_mkwrite() returns non-VM_FAULT_LOCKED, and along with a
    locked target page.
    
    These two errors fail on the same path, so fix them by unlocking the
    target page manually before ocfs2_free_write_ctxt().
    
    Jan Kara helps me clear out the JBD2 part, and suggest the hint for root
    cause.
    
    Changes since v1:
    1. Also put ENOMEM error case into consideration.
    
    Link: http://lkml.kernel.org/r/1474173902-32075-1-git-send-email-zren@suse.com
    Signed-off-by: Eric Ren <zren@suse.com>
    Reviewed-by: He Gang <ghe@suse.com>
    Acked-by: Joseph Qi <joseph.qi@huawei.com>
    Cc: Mark Fasheh <mfasheh@suse.de>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Junxiao Bi <junxiao.bi@oracle.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Eric Ren authored and torvalds committed Sep 30, 2016
    Copy the full SHA
    c33f078 View commit details
    Browse the repository at this point in the history
  4. mm: workingset: fix crash in shadow node shrinker caused by replace_p…

    …age_cache_page()
    
    Antonio reports the following crash when using fuse under memory pressure:
    
      kernel BUG at /build/linux-a2WvEb/linux-4.4.0/mm/workingset.c:346!
      invalid opcode: 0000 [#1] SMP
      Modules linked in: all of them
      CPU: 2 PID: 63 Comm: kswapd0 Not tainted 4.4.0-36-generic torvalds#55-Ubuntu
      Hardware name: System manufacturer System Product Name/P8H67-M PRO, BIOS 3904 04/27/2013
      task: ffff88040cae6040 ti: ffff880407488000 task.ti: ffff880407488000
      RIP: shadow_lru_isolate+0x181/0x190
      Call Trace:
        __list_lru_walk_one.isra.3+0x8f/0x130
        list_lru_walk_one+0x23/0x30
        scan_shadow_nodes+0x34/0x50
        shrink_slab.part.40+0x1ed/0x3d0
        shrink_zone+0x2ca/0x2e0
        kswapd+0x51e/0x990
        kthread+0xd8/0xf0
        ret_from_fork+0x3f/0x70
    
    which corresponds to the following sanity check in the shadow node
    tracking:
    
      BUG_ON(node->count & RADIX_TREE_COUNT_MASK);
    
    The workingset code tracks radix tree nodes that exclusively contain
    shadow entries of evicted pages in them, and this (somewhat obscure)
    line checks whether there are real pages left that would interfere with
    reclaim of the radix tree node under memory pressure.
    
    While discussing ways how fuse might sneak pages into the radix tree
    past the workingset code, Miklos pointed to replace_page_cache_page(),
    and indeed there is a problem there: it properly accounts for the old
    page being removed - __delete_from_page_cache() does that - but then
    does a raw raw radix_tree_insert(), not accounting for the replacement
    page.  Eventually the page count bits in node->count underflow while
    leaving the node incorrectly linked to the shadow node LRU.
    
    To address this, make sure replace_page_cache_page() uses the tracked
    page insertion code, page_cache_tree_insert().  This fixes the page
    accounting and makes sure page-containing nodes are properly unlinked
    from the shadow node LRU again.
    
    Also, make the sanity checks a bit less obscure by using the helpers for
    checking the number of pages and shadows in a radix tree node.
    
    Fixes: 449dd69 ("mm: keep page cache radix tree nodes in check")
    Link: http://lkml.kernel.org/r/20160919155822.29498-1-hannes@cmpxchg.org
    Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
    Reported-by: Antonio SJ Musumeci <trapexit@spawn.link>
    Debugged-by: Miklos Szeredi <miklos@szeredi.hu>
    Cc: <stable@vger.kernel.org>	[3.15+]
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    hnaz authored and torvalds committed Sep 30, 2016
    Copy the full SHA
    22f2ac5 View commit details
    Browse the repository at this point in the history
  5. MAINTAINERS: Switch to kernel.org email address for Javi Merino

    Change my email address to my kernel.org account instead of the ARM one.
    
    Signed-off-by: Javi Merino <javi.merino@arm.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Javi Merino authored and torvalds committed Sep 30, 2016
    Copy the full SHA
    9a2172a View commit details
    Browse the repository at this point in the history
  6. x86/entry/64: Fix context tracking state warning when load_gs_index f…

    …ails
    
    This warning:
    
     WARNING: CPU: 0 PID: 3331 at arch/x86/entry/common.c:45 enter_from_user_mode+0x32/0x50
     CPU: 0 PID: 3331 Comm: ldt_gdt_64 Not tainted 4.8.0-rc7+ torvalds#13
     Call Trace:
      dump_stack+0x99/0xd0
      __warn+0xd1/0xf0
      warn_slowpath_null+0x1d/0x20
      enter_from_user_mode+0x32/0x50
      error_entry+0x6d/0xc0
      ? general_protection+0x12/0x30
      ? native_load_gs_index+0xd/0x20
      ? do_set_thread_area+0x19c/0x1f0
      SyS_set_thread_area+0x24/0x30
      do_int80_syscall_32+0x7c/0x220
      entry_INT80_compat+0x38/0x50
    
    ... can be reproduced by running the GS testcase of the ldt_gdt test unit in
    the x86 selftests.
    
    do_int80_syscall_32() will call enter_form_user_mode() to convert context
    tracking state from user state to kernel state. The load_gs_index() call
    can fail with user gsbase, gsbase will be fixed up and proceed if this
    happen.
    
    However, enter_from_user_mode() will be called again in the fixed up path
    though it is context tracking kernel state currently.
    
    This patch fixes it by just fixing up gsbase and telling lockdep that IRQs
    are off once load_gs_index() failed with user gsbase.
    
    Signed-off-by: Wanpeng Li <wanpeng.li@hotmail.com>
    Acked-by: Andy Lutomirski <luto@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/1475197266-3440-1-git-send-email-wanpeng.li@hotmail.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Wanpeng Li authored and Ingo Molnar committed Sep 30, 2016
    Copy the full SHA
    2fa5f04 View commit details
    Browse the repository at this point in the history
  7. x86/boot: Initialize FPU and X86_FEATURE_ALWAYS even if we don't have…

    … CPUID
    
    Otherwise arch_task_struct_size == 0 and we die.  While we're at it,
    set X86_FEATURE_ALWAYS, too.
    
    Reported-by: David Saggiorato <david@saggiorato.net>
    Tested-by: David Saggiorato <david@saggiorato.net>
    Signed-off-by: Andy Lutomirski <luto@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: Dave Hansen <dave@sr71.net>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: stable@vger.kernel.org
    Fixes: aaeb5c01c5b ("x86/fpu, sched: Introduce CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT and use it on x86")
    Link: http://lkml.kernel.org/r/8de723afbf0811071185039f9088733188b606c9.1475103911.git.luto@kernel.org
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    amluto authored and Ingo Molnar committed Sep 30, 2016
    Copy the full SHA
    05fb3c1 View commit details
    Browse the repository at this point in the history
  8. x86/vdso: Fix building on big endian host

    We need to call GET_LE to read hdr->e_type.
    
    Fixes: 57f90c3 ("x86/vdso: Error out if the vDSO isn't a valid DSO")
    Reported-by: Paul Gortmaker <paul.gortmaker@windriver.com>
    Signed-off-by: Segher Boessenkool <segher@kernel.crashing.org>
    Acked-by: Andy Lutomirski <luto@kernel.org>
    Cc: Stephen Rothwell <sfr@canb.auug.org.au>
    Cc: linux-next@vger.kernel.org
    Link: http://lkml.kernel.org/r/20160929193442.GA16617@gate.crashing.org
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    segher authored and Thomas Gleixner committed Sep 30, 2016
    Copy the full SHA
    e4aad64 View commit details
    Browse the repository at this point in the history
Older