23 Jan, 2016

5 commits

  • parallel to mutex_{lock,unlock,trylock,is_locked,lock_nested},
    inode_foo(inode) being mutex_foo(&inode->i_mutex).

    Please, use those for access to ->i_mutex; over the coming cycle
    ->i_mutex will become rwsem, with ->lookup() done with it held
    only shared.

    Signed-off-by: Al Viro

    Al Viro
     
  • Pull ext4 updates from Ted Ts'o:
    "Some locking and page fault bug fixes from Jan Kara, some ext4
    encryption fixes from me, and Li Xi's Project Quota commits"

    * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
    fs: clean up the flags definition in uapi/linux/fs.h
    ext4: add FS_IOC_FSSETXATTR/FS_IOC_FSGETXATTR interface support
    ext4: add project quota support
    ext4: adds project ID support
    ext4 crypto: simplify interfaces to directory entry insert functions
    ext4 crypto: add missing locking for keyring_key access
    ext4: use pre-zeroed blocks for DAX page faults
    ext4: implement allocation of pre-zeroed blocks
    ext4: provide ext4_issue_zeroout()
    ext4: get rid of EXT4_GET_BLOCKS_NO_LOCK flag
    ext4: document lock ordering
    ext4: fix races of writeback with punch hole and zero range
    ext4: fix races between buffered IO and collapse / insert range
    ext4: move unlocked dio protection from ext4_alloc_file_blocks()
    ext4: fix races between page faults and hole punching

    Linus Torvalds
     
  • Pull more xfs updates from Dave Chinner:
    "This is the second update for XFS that I mentioned in the original
    pull request last week.

    It contains a revert for a suspend regression in 4.4 and a fix for a
    long standing log recovery issue that has been further exposed by all
    the log recovery changes made in the original 4.5 merge.

    There is one more thing in this pull request - one that I forgot to
    merge into the origin. That is, pulling the XFS_IOC_FS[GS]ETXATTR
    ioctl up to the VFS level so that other filesystems can also use it
    for modifying project quota IDs

    Summary:

    - promotion of XFS_IOC_FS[GS]ETXATTR ioctl to the vfs level so that
    it can be shared with other filesystems. The ext4 project quota
    functionality is the first target for this. The commits in this
    series have not been updated with review or final SOB tags because
    the branch they were originally published in was needed by ext4.
    Those tags are:

    Reviewed-by: Theodore Ts'o
    Signed-off-by: Dave Chinner

    - Revert a change that is causing suspend failures.

    - Fix a use-after-free that can occur on log mount failures. Been
    around forever, but now exposed by other changes to log recovery
    made in the first 4.5 merge"

    * tag 'xfs-for-linus-4.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs:
    xfs: log mount failures don't wait for buffers to be released
    Revert "xfs: clear PF_NOFREEZE for xfsaild kthread"
    xfs: introduce per-inode DAX enablement
    xfs: use FS_XFLAG definitions directly
    fs: XFS_IOC_FS[SG]SETXATTR to FS_IOC_FS[SG]ETXATTR promotion

    Linus Torvalds
     
  • Pull more vfs updates from Al Viro:
    "Embarrassing braino fix + pipe page accounting + fixing an eyesore in
    find_filesystem() (checking that s1 is equal to prefix of s2 of given
    length can be done in many ways, but "compare strlen(s1) with length
    and then do strncmp()" is not a good one...)"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    [regression] fix braino in fs/dlm/user.c
    pipe: limit the per-user amount of pages allocated in pipes
    find_filesystem(): simplify comparison

    Linus Torvalds
     
  • Merge misc fixes from Andrew Morton:
    "Six fixes"

    * emailed patches from Andrew Morton :
    ocfs2: NFS hangs in __ocfs2_cluster_lock due to race with ocfs2_unblock_lock
    reiserfs: fix dereference of ERR_PTR
    ratelimit: fix bug in time interval by resetting right begin time
    mm: fix kernel crash in khugepaged thread
    mm: fix mlock accouting
    thp: change pmd_trans_huge_lock() interface to return ptl

    Linus Torvalds
     

22 Jan, 2016

11 commits

  • Pull NVMe updates from Jens Axboe:
    "Last branch for this series is the nvme changes. It's in a separate
    branch to avoid splitting too much between core and NVMe changes,
    since NVMe is still helping drive some blk-mq changes. That said, not
    a huge amount of core changes in here. The grunt of the work is the
    continued split of the code"

    * 'for-4.5/nvme' of git://git.kernel.dk/linux-block: (67 commits)
    uapi: update install list after nvme.h rename
    NVMe: Export NVMe attributes to sysfs group
    NVMe: Shutdown controller only for power-off
    NVMe: IO queue deletion re-write
    NVMe: Remove queue freezing on resets
    NVMe: Use a retryable error code on reset
    NVMe: Fix admin queue ring wrap
    nvme: make SG_IO support optional
    nvme: fixes for NVME_IOCTL_IO_CMD on the char device
    nvme: synchronize access to ctrl->namespaces
    nvme: Move nvme_freeze/unfreeze_queues to nvme core
    PCI/AER: include header file
    NVMe: Export namespace attributes to sysfs
    NVMe: Add pci error handlers
    block: remove REQ_NO_TIMEOUT flag
    nvme: merge iod and cmd_info
    nvme: meta_sg doesn't have to be an array
    nvme: properly free resources for cancelled command
    nvme: simplify completion handling
    nvme: special case AEN requests
    ...

    Linus Torvalds
     
  • Pull lightnvm fixes and updates from Jens Axboe:
    "This should have been part of the drivers branch, but it arrived a bit
    late and wasn't based on the official core block driver branch. So
    they got a small scolding, but got a pass since it's still new. Hence
    it's in a separate branch.

    This is mostly pure fixes, contained to lightnvm/, and minor feature
    additions"

    * 'for-4.5/lightnvm' of git://git.kernel.dk/linux-block: (26 commits)
    lightnvm: ensure that nvm_dev_ops can be used without CONFIG_NVM
    lightnvm: introduce factory reset
    lightnvm: use system block for mm initialization
    lightnvm: introduce ioctl to initialize device
    lightnvm: core on-disk initialization
    lightnvm: introduce mlc lower page table mappings
    lightnvm: add mccap support
    lightnvm: manage open and closed blocks separately
    lightnvm: fix missing grown bad block type
    lightnvm: reference rrpc lun in rrpc block
    lightnvm: introduce nvm_submit_ppa
    lightnvm: move rq->error to nvm_rq->error
    lightnvm: support multiple ppas in nvm_erase_ppa
    lightnvm: move the pages per block check out of the loop
    lightnvm: sectors first in ppa list
    lightnvm: fix locking and mempool in rrpc_lun_gc
    lightnvm: put block back to gc list on its reclaim fail
    lightnvm: check bi_error in gc
    lightnvm: return the get_bb_tbl return value
    lightnvm: refactor end_io functions for sync
    ...

    Linus Torvalds
     
  • Pull block driver updates from Jens Axboe:
    "This is the block driver pull request for 4.5, with the exception of
    NVMe, which is in a separate branch and will be posted after this one.

    This pull request contains:

    - A set of bcache stability fixes, which have been acked by Kent.
    These have been used and tested for more than a year by the
    community, so it's about time that they got in.

    - A set of drbd updates from the drbd team (Andreas, Lars, Philipp)
    and Markus Elfring, Oleg Drokin.

    - A set of fixes for xen blkback/front from the usual suspects, (Bob,
    Konrad) as well as community based fixes from Kiri, Julien, and
    Peng.

    - A 2038 time fix for sx8 from Shraddha, with a fix from me.

    - A small mtip32xx cleanup from Zhu Yanjun.

    - A null_blk division fix from Arnd"

    * 'for-4.5/drivers' of git://git.kernel.dk/linux-block: (71 commits)
    null_blk: use sector_div instead of do_div
    mtip32xx: restrict variables visible in current code module
    xen/blkfront: Fix crash if backend doesn't follow the right states.
    xen/blkback: Fix two memory leaks.
    xen/blkback: make st_ statistics per ring
    xen/blkfront: Handle non-indirect grant with 64KB pages
    xen-blkfront: Introduce blkif_ring_get_request
    xen-blkback: clear PF_NOFREEZE for xen_blkif_schedule()
    xen/blkback: Free resources if connect_ring failed.
    xen/blocks: Return -EXX instead of -1
    xen/blkback: make pool of persistent grants and free pages per-queue
    xen/blkback: get the number of hardware queues/rings from blkfront
    xen/blkback: pseudo support for multi hardware queues/rings
    xen/blkback: separate ring information out of struct xen_blkif
    xen/blkfront: correct setting for xen_blkif_max_ring_order
    xen/blkfront: make persistent grants pool per-queue
    xen/blkfront: Remove duplicate setting of ->xbdev.
    xen/blkfront: Cleanup of comments, fix unaligned variables, and syntax errors.
    xen/blkfront: negotiate number of queues/rings to be used with backend
    xen/blkfront: split per device io_lock
    ...

    Linus Torvalds
     
  • This crash is caused by NULL pointer deference, in page_to_pfn() marco,
    when page == NULL :

    Unable to handle kernel NULL pointer dereference at virtual address 00000000
    Internal error: Oops: 94000006 [#1] SMP
    Modules linked in:
    CPU: 1 PID: 26 Comm: khugepaged Tainted: G W 4.3.0-rc6-next-20151022ajb-00001-g32f3386-dirty #3
    PC is at khugepaged+0x378/0x1af8
    LR is at khugepaged+0x418/0x1af8
    Process khugepaged (pid: 26, stack limit = 0xffffffc079638020)
    Call trace:
    khugepaged+0x378/0x1af8
    kthread+0xdc/0xf4
    ret_from_fork+0xc/0x40
    Code: 35001700 f0002c60 aa0703e3 f9009fa0 (f94000e0)
    ---[ end trace 637503d8e28ae69e ]---
    Kernel panic - not syncing: Fatal exception
    CPU2: stopping
    CPU: 2 PID: 0 Comm: swapper/2 Tainted: G D W 4.3.0-rc6-next-20151022ajb-00001-g32f3386-dirty #3
    Hardware name: linux,dummy-virt (DT)

    [akpm@linux-foundation.org: fix fat-fingered merge resolution]
    Signed-off-by: yalin wang
    Acked-by: Vlastimil Babka
    Acked-by: Kirill A. Shutemov
    Acked-by: David Rientjes
    Cc: Cyrill Gorcunov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    yalin wang
     
  • After THP refcounting rework we have only two possible return values
    from pmd_trans_huge_lock(): success and failure. Return-by-pointer for
    ptl doesn't make much sense in this case.

    Let's convert pmd_trans_huge_lock() to return ptl on success and NULL on
    failure.

    Signed-off-by: Kirill A. Shutemov
    Suggested-by: Linus Torvalds
    Cc: Minchan Kim
    Acked-by: Michal Hocko
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kirill A. Shutemov
     
  • Expose an interface to allow users to mark several accesses together as
    being user space accesses, allowing batching of the surrounding user
    space access markers (SMAP on x86, PAN on arm64, domain register
    switching on arm).

    This is currently only used for the user string lenth and copying
    functions, where the SMAP overhead on x86 drowned the actual user
    accesses (only noticeable on newer microarchitectures that support SMAP
    in the first place, of course).

    * user access batching branch:
    Use the new batched user accesses in generic user string handling
    Add 'unsafe' user access functions for batched accesses
    x86: reorganize SMAP handling in user space accesses

    Linus Torvalds
     
  • Merge third patch-bomb from Andrew Morton:
    "I'm pretty much done for -rc1 now:

    - the rest of MM, basically

    - lib/ updates

    - checkpatch, epoll, hfs, fatfs, ptrace, coredump, exit

    - cpu_mask simplifications

    - kexec, rapidio, MAINTAINERS etc, etc.

    - more dma-mapping cleanups/simplifications from hch"

    * emailed patches from Andrew Morton : (109 commits)
    MAINTAINERS: add/fix git URLs for various subsystems
    mm: memcontrol: add "sock" to cgroup2 memory.stat
    mm: memcontrol: basic memory statistics in cgroup2 memory controller
    mm: memcontrol: do not uncharge old page in page cache replacement
    Documentation: cgroup: add memory.swap.{current,max} description
    mm: free swap cache aggressively if memcg swap is full
    mm: vmscan: do not scan anon pages if memcg swap limit is hit
    swap.h: move memcg related stuff to the end of the file
    mm: memcontrol: replace mem_cgroup_lruvec_online with mem_cgroup_online
    mm: vmscan: pass memcg to get_scan_count()
    mm: memcontrol: charge swap to cgroup2
    mm: memcontrol: clean up alloc, online, offline, free functions
    mm: memcontrol: flatten struct cg_proto
    mm: memcontrol: rein in the CONFIG space madness
    net: drop tcp_memcontrol.c
    mm: memcontrol: introduce CONFIG_MEMCG_LEGACY_KMEM
    mm: memcontrol: allow to disable kmem accounting for cgroup2
    mm: memcontrol: account "kmem" consumers in cgroup2 memory controller
    mm: memcontrol: move kmem accounting code to CONFIG_MEMCG
    mm: memcontrol: separate kmem code from legacy tcp accounting code
    ...

    Linus Torvalds
     
  • Pull overlayfs updates from Miklos Szeredi:
    "This contains several bug fixes and a new mount option
    'default_permissions' that allows read-only exported NFS
    filesystems to be used as lower layer"

    * 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
    ovl: check dentry positiveness in ovl_cleanup_whiteouts()
    ovl: setattr: check permissions before copy-up
    ovl: root: copy attr
    ovl: move super block magic number to magic.h
    ovl: use a minimal buffer in ovl_copy_xattr
    ovl: allow zero size xattr
    ovl: default permissions

    Linus Torvalds
     
  • Pull fuse updates from Miklos Szeredi:
    "This adds SEEK_HOLE and SEEK_DATA support in lseek"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
    fuse: add support for SEEK_HOLE and SEEK_DATA in lseek

    Linus Torvalds
     
  • Pull PCI updates from Bjorn Helgaas:
    "PCI changes for the v4.5 merge window:

    Enumeration:
    - Simplify config space size computation (Bjorn Helgaas)
    - Avoid iterating through ROM outside the resource window (Edward O'Callaghan)
    - Support PCIe devices with short cfg_size (Jason S. McMullan)
    - Add Netronome vendor and device IDs (Jason S. McMullan)
    - Limit config space size for Netronome NFP6000 family (Jason S. McMullan)
    - Add Netronome NFP4000 PF device ID (Simon Horman)
    - Limit config space size for Netronome NFP4000 (Simon Horman)
    - Print warnings for all invalid expansion ROM headers (Vladis Dronov)

    Resource management:
    - Fix minimum allocation address overwrite (Christoph Biedl)

    PCI device hotplug:
    - acpiphp_ibm: Fix null dereferences on null ibm_slot (Colin Ian King)
    - pciehp: Always protect pciehp_disable_slot() with hotplug mutex (Guenter Roeck)
    - shpchp: Constify hpc_ops structure (Julia Lawall)
    - ibmphp: Remove unneeded NULL test (Julia Lawall)

    Power management:
    - Make ASPM sysfs link_state_store() consistent with link_state_show() (Andy Lutomirski)

    Virtualization
    - Add function 1 DMA alias quirk for Lite-On/Plextor M6e/Marvell 88SS9183 (Tim Sander)

    MSI:
    - Remove empty pci_msi_init_pci_dev() (Bjorn Helgaas)
    - Mark PCIe/PCI (MSI) IRQ cascade handlers as IRQF_NO_THREAD (Grygorii Strashko)
    - Initialize MSI capability for all architectures (Guilherme G. Piccoli)
    - Relax msi_domain_alloc() to support parentless MSI irqdomains (Liu Jiang)

    ARM Versatile host bridge driver:
    - Remove unused pci_sys_data structures (Lorenzo Pieralisi)

    Broadcom iProc host bridge driver:
    - Hide CONFIG_PCIE_IPROC (Arnd Bergmann)
    - Do not use 0x in front of %pap (Dmitry V. Krivenok)
    - Update iProc PCIe device tree binding (Ray Jui)
    - Add PAXC interface support (Ray Jui)
    - Add iProc PCIe MSI device tree binding (Ray Jui)
    - Add iProc PCIe MSI support (Ray Jui)

    Freescale i.MX6 host bridge driver:
    - Use gpio_set_value_cansleep() (Fabio Estevam)
    - Add support for active-low reset GPIO (Petr Štetiar)

    HiSilicon host bridge driver:
    - Add support for HiSilicon Hip06 PCIe host controllers (Gabriele Paoloni)

    Intel VMD host bridge driver:
    - Export irq_domain_set_info() for module use (Keith Busch)
    - x86/PCI: Allow DMA ops specific to a PCI domain (Keith Busch)
    - Use 32 bit PCI domain numbers (Keith Busch)
    - Add driver for Intel Volume Management Device (VMD) (Keith Busch)

    Qualcomm host bridge driver:
    - Document PCIe devicetree bindings (Stanimir Varbanov)
    - Add Qualcomm PCIe controller driver (Stanimir Varbanov)
    - dts: apq8064: add PCIe devicetree node (Stanimir Varbanov)
    - dts: ifc6410: enable PCIe DT node for this board (Stanimir Varbanov)

    Renesas R-Car host bridge driver:
    - Add support for R-Car H3 to pcie-rcar (Harunobu Kurokawa)
    - Allow DT to override default window settings (Phil Edworthy)
    - Convert to DT resource parsing API (Phil Edworthy)
    - Revert "PCI: rcar: Build pcie-rcar.c only on ARM" (Phil Edworthy)
    - Remove unused pci_sys_data struct from pcie-rcar (Phil Edworthy)
    - Add runtime PM support to pcie-rcar (Phil Edworthy)
    - Add Gen2 PHY setup to pcie-rcar (Phil Edworthy)
    - Add gen2 fallback compatibility string for pci-rcar-gen2 (Simon Horman)
    - Add gen2 fallback compatibility string for pcie-rcar (Simon Horman)

    Synopsys DesignWare host bridge driver:
    - Simplify control flow (Bjorn Helgaas)
    - Make config accessor override checking symmetric (Bjorn Helgaas)
    - Ensure ATU is enabled before IO/conf space accesses (Stanimir Varbanov)

    Miscellaneous:
    - Add of_pci_get_host_bridge_resources() stub (Arnd Bergmann)
    - Check for PCI_HEADER_TYPE_BRIDGE equality, not bitmask (Bjorn Helgaas)
    - Fix all whitespace issues (Bogicevic Sasa)
    - x86/PCI: Simplify pci_bios_{read,write} (Geliang Tang)
    - Use to_pci_dev() instead of open-coding it (Geliang Tang)
    - Use kobj_to_dev() instead of open-coding it (Geliang Tang)
    - Use list_for_each_entry() to simplify code (Geliang Tang)
    - Fix typos in (Thomas Petazzoni)
    - x86/PCI: Clarify AMD Fam10h config access restrictions comment (Tomasz Nowicki)"

    * tag 'pci-v4.5-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (58 commits)
    PCI: Add function 1 DMA alias quirk for Lite-On/Plextor M6e/Marvell 88SS9183
    PCI: Limit config space size for Netronome NFP4000
    PCI: Add Netronome NFP4000 PF device ID
    x86/PCI: Add driver for Intel Volume Management Device (VMD)
    PCI/AER: Use 32 bit PCI domain numbers
    x86/PCI: Allow DMA ops specific to a PCI domain
    irqdomain: Export irq_domain_set_info() for module use
    PCI: host: Add of_pci_get_host_bridge_resources() stub
    genirq/MSI: Relax msi_domain_alloc() to support parentless MSI irqdomains
    PCI: rcar: Add Gen2 PHY setup to pcie-rcar
    PCI: rcar: Add runtime PM support to pcie-rcar
    PCI: designware: Make config accessor override checking symmetric
    PCI: ibmphp: Remove unneeded NULL test
    ARM: dts: ifc6410: enable PCIe DT node for this board
    ARM: dts: apq8064: add PCIe devicetree node
    PCI: hotplug: Use list_for_each_entry() to simplify code
    PCI: rcar: Remove unused pci_sys_data struct from pcie-rcar
    PCI: hisi: Add support for HiSilicon Hip06 PCIe host controllers
    PCI: Avoid iterating through memory outside the resource window
    PCI: acpiphp_ibm: Fix null dereferences on null ibm_slot
    ...

    Linus Torvalds
     
  • …erry.reding/linux-pwm

    Pull pwm updates from Thierry Reding:
    "This set of changes contains a new driver for OMAP (using the
    dual-mode timers) as well as an assortment of fixes all across the
    board"

    * tag 'pwm/for-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm:
    pwm: Mark all devices as "might sleep"
    pwm: omap-dmtimer: Potential NULL dereference on error
    pwm: add HAS_IOMEM dependency to PWM_FSL_FTM
    pwm: Add PWM driver for OMAP using dual-mode timers
    pwm: rcar: Improve accuracy of frequency division setting
    pwm: lpc32xx: return ERANGE, if requested period is not supported
    pwm: lpc32xx: fix and simplify duty cycle and period calculations
    pwm: lpc32xx: make device usable with common clock framework
    pwm: lpc32xx: correct number of PWM channels from 2 to 1
    dt: lpc32xx: pwm: update documentation of LPC32xx PWM device
    dt: lpc32xx: pwm: correct LPC32xx PWM device node example
    pwm: fsl-ftm: Fix clock enable/disable when using PM
    pwm: lpss: Rework the sequence of programming PWM_SW_UPDATE
    pwm: lpss: Select core part automatically
    pwm: lpss: Update PWM setting for Broxton
    pwm: bcm2835: Fix email address specification
    pwm: bcm2835: Prevent division by zero
    pwm: bcm2835: Calculate scaler in ->config()
    pwm: lpss: Remove ->free() callback

    Linus Torvalds
     

21 Jan, 2016

24 commits

  • Pull more power management and ACPI updates from Rafael Wysocki:
    "This includes fixes on top of the previous batch of PM+ACPI updates
    and some new material as well.

    From the new material perspective the most significant are the driver
    core changes that should allow USB devices to stay suspended over
    system suspend/resume cycles if they have been runtime-suspended
    already beforehand. Apart from that, ACPICA is updated to upstream
    revision 20160108 (cosmetic mostly, but including one fixup on top of
    the previous ACPICA update) and there are some devfreq updates the
    didn't make it before (due to timing).

    A few recent regressions are fixed, most importantly in the cpuidle
    menu governor and in the ACPI backlight driver and some x86 platform
    drivers depending on it.

    Some more bugs are fixed and cleanups are made on top of that.

    Specifics:

    - Modify the driver core and the USB subsystem to allow USB devices
    to stay suspended over system suspend/resume cycles if they have
    been runtime-suspended already beforehand and fix some bugs on top
    of these changes (Tomeu Vizoso, Rafael Wysocki).

    - Update ACPICA to upstream revision 20160108, including updates of
    the ACPICA's copyright notices, a code fixup resulting from a
    regression fix that was necessary in the upstream code only (the
    regression fixed by it has never been present in Linux) and a
    compiler warning fix (Bob Moore, Lv Zheng).

    - Fix a recent regression in the cpuidle menu governor that broke it
    on practically all architectures other than x86 and make a couple
    of optimizations on top of that fix (Rafael Wysocki).

    - Clean up the selection of cpuidle governors depending on whether or
    not the kernel is configured for tickless systems (Jean Delvare).

    - Revert a recent commit that introduced a regression in the ACPI
    backlight driver, address the problem it attempted to fix in a
    different way and revert one more cosmetic change depending on the
    problematic commit (Hans de Goede).

    - Add two more ACPI backlight quirks (Hans de Goede).

    - Fix a few minor problems in the core devfreq code, clean it up a
    bit and update the MAINTAINERS information related to it (Chanwoo
    Choi, MyungJoo Ham).

    - Improve an error message in the ACPI fan driver (Andy Lutomirski).

    - Fix a recent build regression in the cpupower tool (Shreyas
    Prabhu)"

    * tag 'pm+acpi-4.5-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (32 commits)
    cpuidle: menu: Avoid pointless checks in menu_select()
    sched / idle: Drop default_idle_call() fallback from call_cpuidle()
    cpupower: Fix build error in cpufreq-info
    cpuidle: Don't enable all governors by default
    cpuidle: Default to ladder governor on ticking systems
    time: nohz: Expose tick_nohz_enabled
    ACPICA: Update version to 20160108
    ACPICA: Silence a -Wbad-function-cast warning when acpi_uintptr_t is 'uintptr_t'
    ACPICA: Additional 2016 copyright changes
    ACPICA: Reduce regression fix divergence from upstream ACPICA
    ACPI / video: Add disable_backlight_sysfs_if quirk for the Toshiba Satellite R830
    ACPI / video: Revert "thinkpad_acpi: Use acpi_video_handles_brightness_key_presses()"
    ACPI / video: Document acpi_video_handles_brightness_key_presses() a bit
    ACPI / video: Fix using an uninitialized mutex / list_head in acpi_video_handles_brightness_key_presses()
    ACPI / video: Revert "ACPI / video: driver must be registered before checking for keypresses"
    ACPI / fan: Improve acpi_device_update_power error message
    ACPI / video: Add disable_backlight_sysfs_if quirk for the Toshiba Portege R700
    cpuidle: menu: Fix menu_select() for CPUIDLE_DRIVER_STATE_START == 0
    MAINTAINERS: Add devfreq-event entry
    MAINTAINERS: Add missing git repository and directory for devfreq
    ...

    Linus Torvalds
     
  • …rnel/git/horms/renesas

    Pull SH driver updates from Simon Horman:
    "Clean up the clock API on legacy SH to make it more similar to the
    Common Clock Framework. This will avoid different behaviour in
    drivers shared between legacy and CCF-based platforms (e.g. SCIF)"

    * tag 'renesas-sh-drivers-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
    drivers: sh: clk: Avoid crashes when passing NULL clocks
    drivers: sh: clk: Remove obsolete and unused clk_round_parent()

    Linus Torvalds
     
  • Pull ARM SoC driver updates from Olof Johansson:
    "Driver updates for ARM SoCs. Some for SoC-family code under
    drivers/soc, but also some other driver updates that don't belong
    anywhere else. We also bring in the drivers/reset code through
    arm-soc.

    Some of the larger updates:

    - Qualcomm support for SMEM, SMSM, SMP2P. All used to communicate
    with other parts of the chip/board on these platforms, all
    proprietary protocols that don't fit into other subsystems and live
    in drivers/soc for now.

    - System bus driver for UniPhier

    - Driver for the TI Wakeup M3 IPC device

    - Power management for Raspberry PI

    + Again a bunch of other smaller updates and patches"

    * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (38 commits)
    bus: uniphier: allow only built-in driver
    ARM: bcm2835: clarify RASPBERRYPI_FIRMWARE dependency
    MAINTAINERS: Drop Kumar Gala from QCOM
    bus: uniphier-system-bus: add UniPhier System Bus driver
    ARM: bcm2835: add rpi power domain driver
    dt-bindings: add rpi power domain driver bindings
    ARM: bcm2835: Define two new packets from the latest firmware.
    drivers/soc: make mediatek/mtk-scpsys.c explicitly non-modular
    soc: mediatek: SCPSYS: Add regulator support
    MAINTAINERS: Change QCOM entries
    soc: qcom: smd-rpm: Add existing platform support
    memory/tegra: Add number of TLB lines for Tegra124
    reset: hi6220: fix modular build
    soc: qcom: Introduce WCNSS_CTRL SMD client
    ARM: qcom: select ARM_CPU_SUSPEND for power management
    MAINTAINERS: Add rules for Qualcomm dts files
    soc: qcom: enable smsm/smp2p modular build
    serial: msm_serial: Make config tristate
    soc: qcom: smp2p: Qualcomm Shared Memory Point to Point
    soc: qcom: smsm: Add driver for Qualcomm SMSM
    ...

    Linus Torvalds
     
  • Pull ARM DT updates from Olof Johansson:
    "As usual, the bulk of this release is again DT file contents.

    There's a huge number of changes here, and it's challenging to give a
    crisp overview of just what is in here. To start with:

    New boards:

    - TI-based DM3730 from LogicPD (Torpedo)
    - Cosmic+ M4 (nommu) initial support (Freescale Vybrid)
    - Raspberry Pi 2 DT files
    - Watchdog on Meson8b
    - Veyron-mickey (ASUS Chromebit) DTS
    - Rockchip rk3228 SoC and eval board
    - Sigma Designs Tango4

    Improvements:

    - Improved support for Qualcomm APQ8084, including Sony Xperia Z DT files
    - Misc new devices for Rockchip rk3036 and rk3288
    - Allwinner updates for misc SoCs and systems

    ... and a _large_ number of other changes across the field. Devices
    added to SoC DTSI and board DTS files for a number of SoC vendors, new
    product boards on already-supported SoCs, cleanups and refactorings of
    existing DTS/DTSI files and a bunch of other changes"

    * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (469 commits)
    ARM: dts: compulab: add new board description
    ARM: versatile: add the syscon LEDs to the DT
    dts: vt8500: Fix errors in SDHC node for WM8505
    ARM: dts: imx6q: clean up unused ipu2grp
    ARM: dts: silk: Add compatible property to "partitions" node
    ARM: dts: gose: Add compatible property to "partitions" node
    ARM: dts: porter: Add compatible property to "partitions" node
    ARM: dts: koelsch: Add compatible property to "partitions" node
    ARM: dts: lager: Add compatible property to "partitions" node
    ARM: dts: bockw: Add compatible property to "partitions" node
    ARM: dts: meson8b: Add watchdog node
    Documentation: watchdog: Add new bindings for meson8b
    ARM: meson: Add status LED for Odroid-C1
    ARM: dts: uniphier: fix a typo in comment block
    ARM: bcm2835: Add the auxiliary clocks to the device tree.
    ARM: bcm2835: Add devicetree for bcm2836 and Raspberry Pi 2 B
    ARM: bcm2835: Move the CPU/peripheral include out of common RPi DT.
    ARM: bcm2835: Split the DT for peripherals from the DT for the CPU
    ARM: realview: set up cache correctly on the PB11MPCore
    ARM: dts: Unify G2D device node with other devices on exynos4
    ...

    Linus Torvalds
     
  • Pull ARM SoC platform updates from Olof Johansson:
    "Updates for new platform support:

    - New platform: Tango4 from Sigma Designs.
    - Broadcom BCM2836 (Raspberry Pi 2 SoC)
    - Enable cpufreq on Freescale i.MX7D
    - Rockchip: SMP support for rk3036, general support for rk3228
    - SMP support on Broadcom Kona and NSP
    - Cleanups for OMAP removing legacy IOMMU data

    + a bunch of misc fixes and tweaks for various platforms"

    * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (46 commits)
    ARM: tango: Fix UP build issues
    ARM: tango: pass ARM arch level for smc.S
    ARM: bcm2835: Add Kconfig support for bcm2836
    ARM: OMAP2+: Add support for dm814x and dra62x usb
    ARM: OMAP2+: Add mmc hwmod entries for dm814x
    ARM: OMAP2+: Update 81xx clock and power domains for default, active and sgx
    ARM: OMAP2+: Fix SoC detection for dra62x j5-eco
    ARM: tango4: Initial platform support
    ARM: bcm2835: Add a compat string for bcm2836 machine probe
    dt-bindings: Add root properties for Raspberry Pi 2
    ARM: imx: select SRC for i.MX7
    ARM: uniphier: select PINCTRL
    ARM: OMAP2+: Remove device creation for omap-pcm-audio
    ARM: OMAP1: Remove device creation for omap-pcm-audio
    ARM: rockchip: enable support for RK3228 SoCs
    ARM: rockchip: use const and __initconst for rk3036 smp_operations
    ARM: zynq: Select ARCH_HAS_RESET_CONTROLLER
    ARM: BCM: Add SMP support for Broadcom 4708
    ARM: BCM: Add SMP support for Broadcom NSP
    ARM: BCM: Clean up SMP support for Broadcom Kona
    ...

    Linus Torvalds
     
  • Pull ARM SoC multiplatform code updates from Arnd Bergmann:
    "This branch is the culmination of 5 years of effort to bring the ARMv6
    and ARMv7 platforms together such that they can all be enabled and
    boot the same kernel. It has been a tremendous amount of cleanup and
    refactoring by a huge number of people, and creation of several new
    (and major) subsystems to better abstract out all the platform details
    in an appropriate manner.

    The bulk of this branch is a large patchset from Arnd that brings
    several of the more minor and older platforms we have closer to
    multiplatform support. Among these are MMP, S3C64xx, Orion5x, mv78xx0
    and realview Much of this is moving around header files from old mach
    directories, but there are also some cleanup patches of debug_ll
    (lowlevel debug per-platform options) and other parts.

    Linus Walleij also has some patchs to clean up the older ARM Realview
    platforms by finally introducing DT support, and Rob Herring has some
    for ARM Versatile which is now DT-only. Both of these platforms are
    now multiplatform.

    Finally, a couple of patches from Russell for Dove PMU, and a fix from
    Valentin Rothberg for Exynos ADC, which were rebased on top of the
    series to avoid conflicts"

    * tag 'armsoc-multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (75 commits)
    ARM: realview: don't select SMP_ON_UP for UP builds
    ARM: s3c: simplify s3c_irqwake_{e,}intallow definition
    ARM: s3c64xx: fix pm-debug compilation
    iio: exynos-adc: fix irqf_oneshot.cocci warnings
    ARM: realview: build realview-dt SMP support only when used
    ARM: realview: select apropriate targets
    ARM: realview: clean up header files
    ARM: realview: make all header files local
    ARM: no longer make CPU targets visible separately
    ARM: integrator: use explicit core module options
    ARM: realview: enable multiplatform
    ARM: make default platform work for NOMMU
    ARM: debug-ll: move DEBUG_LL_UART_EFM32 to correct Kconfig location
    ARM: defconfig: use correct debug_ll settings
    ARM: versatile: convert to multi-platform
    ARM: versatile: merge mach code into a single file
    ARM: versatile: switch to DT only booting and remove legacy code
    ARM: versatile: add DT based PCI detection
    ARM: pxa: mark ezx structures as __maybe_unused
    ARM: pxa: mark raumfeld init functions as __maybe_unused
    ...

    Linus Torvalds
     
  • Pull ARM SoC cleanups from Olof Johansson:
    "A smallish number of general cleanup commits this release cycle. Some
    of these are minor tweaks:

    - shmobile change of binding for their GIC (using arm,pl390 now)
    - ARCH_RENESAS introduction
    - Misc other renesas updates

    There's also a couple of treewide commits from Masahiro Yamada
    cleaning up const/__initconst for SMP operation structs and a switch
    to using "depends on" instead of if-constructs on most of the Kconfig
    platform targets"

    * tag 'armsoc-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    staging: board: armadillo800eva: Use "arm,pl390"
    staging: board: kzm9d: Use "arm,pl390"
    ARM: shmobile: r8a7778 dtsi: Use "arm,pl390" for GIC
    ARM: shmobile: emev2 dtsi: Use "arm,pl390" for GIC
    ARM: shmobile: r8a7740 dtsi: Use "arm,pl390" for GIC
    ARM: shmobile: r7s72100 dtsi: Use "arm,pl390" for GIC
    ARM: use "depends on" for SoC configs instead of "if" after prompt
    ARM/clocksource: use automatic DT probing for ux500 PRCMU
    ARM: use const and __initconst for smp_operations
    ARM: hisi: do not export smp_operations structures
    ARM: mvebu: remove unused mach/gpio.h
    ARM: shmobile: Remove legacy mach/irqs.h
    ARM: shmobile: Introduce ARCH_RENESAS
    MAINTAINERS: Remove link to oss.renesas.com which is closed

    Linus Torvalds
     
  • Pull non-urgent ARM SoC fixes from Olof Johansson:
    "As usual, we queue up a few fixes that don't seem urgent enough to go
    in through -rc.

    - MAINTAINERS updates to add a list for brcmstb and fix a typo
    - A handful of fixes for OMAP 81xx, a recently resurrected platform
    so these can't be considered real regressions and thus got queued.
    - A couple of other small fixes for scoop, sa1100 and davinci"

    * tag 'armsoc-fixes-nc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ARM: OMAP2+: Fix randconfig build warning for dm814_pllss_data
    ARM: sa1100/simpad: Be sure to clamp return value
    ARM: scoop: Be sure to clamp return value
    ARM: davinci: fix a problematic usage of WARN()
    ARM: davinci: only select WT cache if cache is enabled
    ARM: OMAP2+: Remove useless check for legacy booting for dm814x
    ARM: OMAP2+: Enable GPIO for dm814x
    ARM: dts: Fix dm814x pinctrl address and mask
    ARM: dts: Fix dm8148 control modules ranges
    ARM: OMAP2+: Fix timer entries for dm814x
    ARM: dts: Fix some mux and divider clocks to get dm814x-evm booting
    ARM: OMAP2+: Add DPPLS clock manager for dm814x
    clk: ti: Add few dm814x clock aliases
    ARM: dts: Fix dm814x entries for pllss and prcm
    MAINTAINERS: gpio-brcmstb: Remove stray '>'
    MAINTAINERS: brcmstb: Include Broadcom internal mailing-list

    Linus Torvalds
     
  • Pull asm-generic updates from Arnd Bergmann:
    "The asm-generic tree this time contains one series from Nicolas Pitre
    that makes the optimized do_div() implementation from the ARM
    architecture available to all architectures.

    This also adds stricter type checking for callers of do_div, which has
    uncovered a number of bugs in existing code, and fixes up the ones we
    have found"

    * tag 'asm-generic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
    ARM: asm/div64.h: adjust to generic codde
    __div64_32(): make it overridable at compile time
    __div64_const32(): abstract out the actual 128-bit cross product code
    do_div(): generic optimization for constant divisor on 32-bit machines
    div64.h: optimize do_div() for power-of-two constant divisors
    mtd/sm_ftl.c: fix wrong do_div() usage
    drm/mgag200/mgag200_mode.c: fix wrong do_div() usage
    hid-sensor-hub.c: fix wrong do_div() usage
    ti/fapll: fix wrong do_div() usage
    ti/clkt_dpll: fix wrong do_div() usage
    tegra/clk-divider: fix wrong do_div() usage
    imx/clk-pllv2: fix wrong do_div() usage
    imx/clk-pllv1: fix wrong do_div() usage
    nouveau/nvkm/subdev/clk/gk20a.c: fix wrong do_div() usage

    Linus Torvalds
     
  • Pull SCSI target updates from Nicholas Bellinger:
    "The highlights this round include:

    - Introduce configfs support for unlocked configfs_depend_item()
    (krzysztof + andrezej)
    - Conversion of usb-gadget target driver to new function registration
    interface (andrzej + sebastian)
    - Enable qla2xxx FC target mode support for Extended Logins (himansu +
    giridhar)
    - Enable qla2xxx FC target mode support for Exchange Offload (himansu +
    giridhar)
    - Add qla2xxx FC target mode irq affinity notification + selective
    command queuing. (quinn + himanshu)
    - Fix iscsi-target deadlock in se_node_acl configfs deletion (sagi +
    nab)
    - Convert se_node_acl configfs deletion + se_node_acl->queue_depth to
    proper se_session->sess_kref + target_get_session() usage. (hch +
    sagi + nab)
    - Fix long-standing race between se_node_acl->acl_kref get and
    get_initiator_node_acl() lookup. (hch + nab)
    - Fix target/user block-size handling, and make sure netlink reaches
    all network namespaces (sheng + andy)

    Note there is an outstanding bug-fix series for remote I_T nexus port
    TMR LUN_RESET has been posted and still being tested, and will likely
    become post -rc1 material at this point"

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (56 commits)
    scsi: qla2xxxx: avoid type mismatch in comparison
    target/user: Make sure netlink would reach all network namespaces
    target: Obtain se_node_acl->acl_kref during get_initiator_node_acl
    target: Convert ACL change queue_depth se_session reference usage
    iscsi-target: Fix potential dead-lock during node acl delete
    ib_srpt: Convert acl lookup to modern get_initiator_node_acl usage
    tcm_fc: Convert acl lookup to modern get_initiator_node_acl usage
    tcm_fc: Wait for command completion before freeing a session
    target: Fix a memory leak in target_dev_lba_map_store()
    target: Support aborting tasks with a 64-bit tag
    usb/gadget: Remove set-but-not-used variables
    target: Remove an unused variable
    target: Fix indentation in target_core_configfs.c
    target/user: Allow user to set block size before enabling device
    iser-target: Fix non negative ERR_PTR isert_device_get usage
    target/fcoe: Add tag support to tcm_fc
    qla2xxx: Check for online flag instead of active reset when transmitting responses
    qla2xxx: Set all queues to 4k
    qla2xxx: Disable ZIO at start time.
    qla2xxx: Move atioq to a different lock to reduce lock contention
    ...

    Linus Torvalds
     
  • Provide statistics on how much of a cgroup's memory footprint is made up
    of socket buffers from network connections owned by the group.

    Signed-off-by: Johannes Weiner
    Cc: Michal Hocko
    Cc: Vladimir Davydov
    Cc: Tejun Heo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • Swap cache pages are freed aggressively if swap is nearly full (>50%
    currently), because otherwise we are likely to stop scanning anonymous
    when we near the swap limit even if there is plenty of freeable swap cache
    pages. We should follow the same trend in case of memory cgroup, which
    has its own swap limit.

    Signed-off-by: Vladimir Davydov
    Acked-by: Johannes Weiner
    Cc: Michal Hocko
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vladimir Davydov
     
  • We don't scan anonymous memory if we ran out of swap, neither should we do
    it in case memcg swap limit is hit, because swap out is impossible anyway.

    Signed-off-by: Vladimir Davydov
    Acked-by: Johannes Weiner
    Cc: Michal Hocko
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vladimir Davydov
     
  • The following patches will add more functions to the memcg section of
    include/linux/swap.h. Some of them will need values defined below the
    current location of the section. So let's move the section to the end of
    the file. No functional changes intended.

    Signed-off-by: Vladimir Davydov
    Acked-by: Johannes Weiner
    Cc: Michal Hocko
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vladimir Davydov
     
  • mem_cgroup_lruvec_online() takes lruvec, but it only needs memcg. Since
    get_scan_count(), which is the only user of this function, now possesses
    pointer to memcg, let's pass memcg directly to mem_cgroup_online() instead
    of picking it out of lruvec and rename the function accordingly.

    Signed-off-by: Vladimir Davydov
    Acked-by: Johannes Weiner
    Cc: Michal Hocko
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vladimir Davydov
     
  • This patchset introduces swap accounting to cgroup2.

    This patch (of 7):

    In the legacy hierarchy we charge memsw, which is dubious, because:

    - memsw.limit must be >= memory.limit, so it is impossible to limit
    swap usage less than memory usage. Taking into account the fact that
    the primary limiting mechanism in the unified hierarchy is
    memory.high while memory.limit is either left unset or set to a very
    large value, moving memsw.limit knob to the unified hierarchy would
    effectively make it impossible to limit swap usage according to the
    user preference.

    - memsw.usage != memory.usage + swap.usage, because a page occupying
    both swap entry and a swap cache page is charged only once to memsw
    counter. As a result, it is possible to effectively eat up to
    memory.limit of memory pages *and* memsw.limit of swap entries, which
    looks unexpected.

    That said, we should provide a different swap limiting mechanism for
    cgroup2.

    This patch adds mem_cgroup->swap counter, which charges the actual number
    of swap entries used by a cgroup. It is only charged in the unified
    hierarchy, while the legacy hierarchy memsw logic is left intact.

    The swap usage can be monitored using new memory.swap.current file and
    limited using memory.swap.max.

    Note, to charge swap resource properly in the unified hierarchy, we have
    to make swap_entry_free uncharge swap only when ->usage reaches zero, not
    just ->count, i.e. when all references to a swap entry, including the one
    taken by swap cache, are gone. This is necessary, because otherwise
    swap-in could result in uncharging swap even if the page is still in swap
    cache and hence still occupies a swap entry. At the same time, this
    shouldn't break memsw counter logic, where a page is never charged twice
    for using both memory and swap, because in case of legacy hierarchy we
    uncharge swap on commit (see mem_cgroup_commit_charge).

    Signed-off-by: Vladimir Davydov
    Acked-by: Johannes Weiner
    Cc: Michal Hocko
    Cc: Tejun Heo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vladimir Davydov
     
  • The creation and teardown of struct mem_cgroup is fairly messy and
    that has attracted mistakes and subtle bugs before.

    The main cause for this is that there is no clear model about what
    needs to happen when, and that attracts more chaos. So create one:

    1. mem_cgroup_alloc() should allocate struct mem_cgroup and its
    auxiliary members and initialize work items, locks etc. so that the
    object it returns is fully initialized and in a neutral state.

    2. mem_cgroup_css_alloc() will use mem_cgroup_alloc() to obtain a new
    memcg object and configure it and the system according to the role
    of the new memory-controlled cgroup in the hierarchy.

    3. mem_cgroup_css_online() is no longer needed to synchronize with
    iterators, but it verifies css->id which isn't available earlier.

    4. mem_cgroup_css_offline() implements stuff that needs to happen upon
    the user-visible destruction of a cgroup, which includes stopping
    all user interfacing as well as releasing certain structures when
    continued memory consumption would be unexpected at that point.

    5. mem_cgroup_css_free() prepares the system and the memcg object for
    the object's disappearance, neutralizes its state, and then gives
    it back to mem_cgroup_free().

    6. mem_cgroup_free() releases struct mem_cgroup and auxiliary memory.

    [arnd@arndb.de: fix SLOB build regression]
    Signed-off-by: Johannes Weiner
    Acked-by: Vladimir Davydov
    Cc: Michal Hocko
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • There are no more external users of struct cg_proto, flatten the
    structure into struct mem_cgroup.

    Since using those struct members doesn't stand out as much anymore,
    add cgroup2 static branches to make it clearer which code is legacy.

    Suggested-by: Vladimir Davydov
    Signed-off-by: Johannes Weiner
    Acked-by: Vladimir Davydov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • What CONFIG_INET and CONFIG_LEGACY_KMEM guard inside the memory
    controller code is insignificant, having these conditionals is not
    worth the complication and fragility that comes with them.

    [akpm@linux-foundation.org: rework mem_cgroup_css_free() statement ordering]
    Signed-off-by: Johannes Weiner
    Cc: Michal Hocko
    Acked-by: Vladimir Davydov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • tcp_memcontrol.c only contains legacy memory.tcp.kmem.* file definitions
    and mem_cgroup->tcp_mem init/destroy stuff. This doesn't belong to
    network subsys. Let's move it to memcontrol.c. This also allows us to
    reuse generic code for handling legacy memcg files.

    Signed-off-by: Vladimir Davydov
    Acked-by: Johannes Weiner
    Cc: "David S. Miller"
    Acked-by: Michal Hocko
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vladimir Davydov
     
  • Let the user know that CONFIG_MEMCG_KMEM does not apply to the cgroup2
    interface. This also makes legacy-only code sections stand out better.

    [arnd@arndb.de: mm: memcontrol: only manage socket pressure for CONFIG_INET]
    Signed-off-by: Johannes Weiner
    Cc: Michal Hocko
    Cc: Tejun Heo
    Acked-by: Vladimir Davydov
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • The cgroup2 memory controller will account important in-kernel memory
    consumers per default. Move all necessary components to CONFIG_MEMCG.

    Signed-off-by: Johannes Weiner
    Acked-by: Vladimir Davydov
    Cc: Michal Hocko
    Cc: Arnd Bergmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • On any given memcg, the kmem accounting feature has three separate
    states: not initialized, structures allocated, and actively accounting
    slab memory. These are represented through a combination of the
    kmem_acct_activated and kmem_acct_active flags, which is confusing.

    Convert to a kmem_state enum with the states NONE, ALLOCATED, and
    ONLINE. Then rename the functions to modify the state accordingly.
    This follows the nomenclature of css object states more closely.

    Signed-off-by: Johannes Weiner
    Acked-by: Michal Hocko
    Cc: Tejun Heo
    Acked-by: Vladimir Davydov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • This series adds accounting of the historical "kmem" memory consumers to
    the cgroup2 memory controller.

    These consumers include the dentry cache, the inode cache, kernel stack
    pages, and a few others that are pointed out in patch 7/8. The
    footprint of these consumers is directly tied to userspace activity in
    common workloads, and so they have to be part of the minimally viable
    configuration in order to present a complete feature to our users.

    The cgroup2 interface of the memory controller is far from complete, but
    this series, along with the socket memory accounting series, provides
    the final semantic changes for the existing memory knobs in the cgroup2
    interface, which is scheduled for initial release in the next merge
    window.

    This patch (of 8):

    Remove unused css argument frmo memcg_init_kmem()

    Signed-off-by: Johannes Weiner
    Acked-by: Michal Hocko
    Cc: Tejun Heo
    Acked-by: Vladimir Davydov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner