1. 06 May, 2019 4 commits
  2. 19 Apr, 2019 9 commits
    • Roman Gushchin's avatar
      cgroup: document cgroup v2 freezer interface · afe471ea
      Roman Gushchin authored
      Describe cgroup v2 freezer interface in the cgroup v2 admin guide.
      Signed-off-by: default avatarRoman Gushchin <guro@fb.com>
      Reviewed-by: default avatarMike Rapoport <rppt@linux.ibm.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Cc: linux-doc@vger.kernel.org
      Cc: kernel-team@fb.com
      afe471ea
    • Roman Gushchin's avatar
      cgroup: add tracing points for cgroup v2 freezer · 4c476d8c
      Roman Gushchin authored
      Add cgroup:cgroup_freeze and cgroup:cgroup_unfreeze events,
      which are using the existing cgroup tracing infrastructure.
      
      Add the cgroup_event event class, which is similar to the cgroup
      class, but contains an additional integer field to store a new
      value (the level field is dropped).
      
      Also add two tracing events: cgroup_notify_populated and
      cgroup_notify_frozen, which are raised in a generic way using
      the TRACE_CGROUP_PATH() macro.
      
      This allows to trace cgroup state transitions and is generally
      helpful for debugging the cgroup freezer code.
      Signed-off-by: default avatarRoman Gushchin <guro@fb.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      4c476d8c
    • Roman Gushchin's avatar
      cgroup: make TRACE_CGROUP_PATH irq-safe · 712e3517
      Roman Gushchin authored
      To use the TRACE_CGROUP_PATH() macro with css_set_lock
      locked, let's make the macro irq-safe.
      It's necessary in order to trace cgroup freezer state
      transitions (frozen/not frozen), which are happening
      with css_set_lock locked.
      Signed-off-by: default avatarRoman Gushchin <guro@fb.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      712e3517
    • Roman Gushchin's avatar
      kselftests: cgroup: add freezer controller self-tests · 5313bfe4
      Roman Gushchin authored
      This patch implements 9 tests for the freezer controller for
      cgroup v2:
      1) a simple test, which aims to freeze and unfreeze a cgroup with 100
      processes
      2) a more complicated tree test, which creates a hierarchy of cgroups,
      puts some processes in some cgroups, and tries to freeze and unfreeze
      different parts of the subtree
      3) a forkbomb test: the test aims to freeze a forkbomb running in a
      cgroup, kill all tasks in the cgroup and remove the cgroup without
      the unfreezing.
      4) rmdir test: the test creates two nested cgroups, freezes the parent
      one, checks that the child can be successfully removed, and a new
      child can be created
      5) migration tests: the test checks migration of a task between
      frozen cgroups: from a frozen to a running, from a running to a
      frozen, and from a frozen to a frozen.
      6) ptrace test: the test checks that it's possible to attach to
      a process in a frozen cgroup, get some information and detach, and
      the cgroup will remain frozen.
      7) stopped test: the test checks that it's possible to freeze a cgroup
      with a stopped task
      8) ptraced test: the test checks that it's possible to freeze a cgroup
      with a ptraced task
      9) vfork test: the test checks that it's possible to freeze a cgroup
      with a parent process waiting for the child process in vfork()
      
      Expected output:
        $ ./test_freezer
        ok 1 test_cgfreezer_simple
        ok 2 test_cgfreezer_tree
        ok 3 test_cgfreezer_forkbomb
        ok 4 test_cgrreezer_rmdir
        ok 5 test_cgfreezer_migrate
        ok 6 test_cgfreezer_ptrace
        ok 7 test_cgfreezer_stopped
        ok 8 test_cgfreezer_ptraced
        ok 9 test_cgfreezer_vfork
      Signed-off-by: default avatarRoman Gushchin <guro@fb.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Cc: Shuah Khan <shuah@kernel.org>
      Cc: kernel-team@fb.com
      Cc: linux-kselftest@vger.kernel.org
      5313bfe4
    • Roman Gushchin's avatar
      kselftests: cgroup: don't fail on cg_kill_all() error in cg_destroy() · ff9fb7cb
      Roman Gushchin authored
      If the cgroup destruction races with an exit() of a belonging
      process(es), cg_kill_all() may fail. It's not a good reason to make
      cg_destroy() fail and leave the cgroup in place, potentially causing
      next test runs to fail.
      Signed-off-by: default avatarRoman Gushchin <guro@fb.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Cc: Shuah Khan <shuah@kernel.org>
      Cc: kernel-team@fb.com
      Cc: linux-kselftest@vger.kernel.org
      ff9fb7cb
    • Roman Gushchin's avatar
      cgroup: cgroup v2 freezer · 76f969e8
      Roman Gushchin authored
      Cgroup v1 implements the freezer controller, which provides an ability
      to stop the workload in a cgroup and temporarily free up some
      resources (cpu, io, network bandwidth and, potentially, memory)
      for some other tasks. Cgroup v2 lacks this functionality.
      
      This patch implements freezer for cgroup v2.
      
      Cgroup v2 freezer tries to put tasks into a state similar to jobctl
      stop. This means that tasks can be killed, ptraced (using
      PTRACE_SEIZE*), and interrupted. It is possible to attach to
      a frozen task, get some information (e.g. read registers) and detach.
      It's also possible to migrate a frozen tasks to another cgroup.
      
      This differs cgroup v2 freezer from cgroup v1 freezer, which mostly
      tried to imitate the system-wide freezer. However uninterruptible
      sleep is fine when all tasks are going to be frozen (hibernation case),
      it's not the acceptable state for some subset of the system.
      
      Cgroup v2 freezer is not supporting freezing kthreads.
      If a non-root cgroup contains kthread, the cgroup still can be frozen,
      but the kthread will remain running, the cgroup will be shown
      as non-frozen, and the notification will not be delivered.
      
      * PTRACE_ATTACH is not working because non-fatal signal delivery
      is blocked in frozen state.
      
      There are some interface differences between cgroup v1 and cgroup v2
      freezer too, which are required to conform the cgroup v2 interface
      design principles:
      1) There is no separate controller, which has to be turned on:
      the functionality is always available and is represented by
      cgroup.freeze and cgroup.events cgroup control files.
      2) The desired state is defined by the cgroup.freeze control file.
      Any hierarchical configuration is allowed.
      3) The interface is asynchronous. The actual state is available
      using cgroup.events control file ("frozen" field). There are no
      dedicated transitional states.
      4) It's allowed to make any changes with the cgroup hierarchy
      (create new cgroups, remove old cgroups, move tasks between cgroups)
      no matter if some cgroups are frozen.
      Signed-off-by: default avatarRoman Gushchin <guro@fb.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      No-objection-from-me-by: default avatarOleg Nesterov <oleg@redhat.com>
      Cc: kernel-team@fb.com
      76f969e8
    • Roman Gushchin's avatar
      cgroup: protect cgroup->nr_(dying_)descendants by css_set_lock · 4dcabece
      Roman Gushchin authored
      The number of descendant cgroups and the number of dying
      descendant cgroups are currently synchronized using the cgroup_mutex.
      
      The number of descendant cgroups will be required by the cgroup v2
      freezer, which will use it to determine if a cgroup is frozen
      (depending on total number of descendants and number of frozen
      descendants). It's not always acceptable to grab the cgroup_mutex,
      especially from quite hot paths (e.g. exit()).
      
      To avoid this, let's additionally synchronize these counters using
      the css_set_lock.
      
      So, it's safe to read these counters with either cgroup_mutex or
      css_set_lock locked, and for changing both locks should be acquired.
      Signed-off-by: default avatarRoman Gushchin <guro@fb.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Cc: kernel-team@fb.com
      4dcabece
    • Roman Gushchin's avatar
      cgroup: implement __cgroup_task_count() helper · aade7f9e
      Roman Gushchin authored
      The helper is identical to the existing cgroup_task_count()
      except it doesn't take the css_set_lock by itself, assuming
      that the caller does.
      
      Also, move cgroup_task_count() implementation into
      kernel/cgroup/cgroup.c, as there is nothing specific to cgroup v1.
      Signed-off-by: default avatarRoman Gushchin <guro@fb.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Cc: kernel-team@fb.com
      aade7f9e
    • Roman Gushchin's avatar
      cgroup: rename freezer.c into legacy_freezer.c · 50943f3e
      Roman Gushchin authored
      Freezer.c will contain an implementation of cgroup v2 freezer,
      so let's rename the v1 freezer to avoid naming conflicts.
      Signed-off-by: default avatarRoman Gushchin <guro@fb.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Cc: kernel-team@fb.com
      50943f3e
  3. 04 Apr, 2019 2 commits
  4. 03 Apr, 2019 5 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid · 8ed86627
      Linus Torvalds authored
      Pull HID fixes from Jiri Kosina:
      
       - build dependency fix for hid-asus from Arnd Bergmann
      
       - addition of omitted mapping of _ASSISTANT key from Dmitry Torokhov
      
       - race condition fix in hid-debug inftastructure from He, Bo
      
       - fixed support for devices with big maximum report size from Kai-Heng
         Feng
      
       - deadlock fix in hid-steam from Rodrigo Rivas Costa
      
       - quite a few device-specific quirks
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid:
        HID: input: add mapping for Assistant key
        HID: i2c-hid: Disable runtime PM on Synaptics touchpad
        HID: quirks: Fix keyboard + touchpad on Lenovo Miix 630
        HID: logitech: Handle 0 scroll events for the m560
        HID: debug: fix race condition with between rdesc_show() and device removal
        HID: logitech: check the return value of create_singlethread_workqueue
        HID: Increase maximum report size allowed by hid_field_extract()
        HID: steam: fix deadlock with input devices.
        HID: uclogic: remove redudant duplicated null check on ver_ptr
        HID: quirks: Drop misused kernel-doc annotation
        HID: hid-asus: select CONFIG_POWER_SUPPLY
        HID: quirks: use correct format chars in dbg_hid
      8ed86627
    • Dmitry Torokhov's avatar
      HID: input: add mapping for Assistant key · ce856634
      Dmitry Torokhov authored
      According to HUTRR89 usage 0x1cb from the consumer page was assigned to
      allow launching desktop-aware assistant application, so let's add the
      mapping.
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      ce856634
    • Linus Torvalds's avatar
      Merge tag 'pidfd-fixes-v5.1-rc3' of gitolite.kernel.org:pub/scm/linux/kernel/git/brauner/linux · a816fd6b
      Linus Torvalds authored
      Pull pidfd fix from Christian Brauner:
       "This should be an uncontroversial fix for pidfd_send_signal() by Jann
        to better align it's behavior with other signal sending functions:
      
        In one of the early versions of the patchset it was suggested to not
        unconditionally error out when a signal with SI_USER is sent to a
        non-current task (cf. [1]).
      
        Instead, pidfd_send_signal() currently silently changes this to a
        regular kill signal. While this is technically fine, the semantics are
        weird since the kernel just silently converts a user's request behind
        their back and also no other signal sending function allows to do
        this. It gets more hairy when we introduce sending signals to a
        specific thread soon.
      
        So let's align pidfd_send_signal() with all the other signal sending
        functions and error out when SI_USER signals are sent to a non-current
        task"
      
      * tag 'pidfd-fixes-v5.1-rc3' of gitolite.kernel.org:pub/scm/linux/kernel/git/brauner/linux:
        signal: don't silently convert SI_USER signals to non-current pidfd
      a816fd6b
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v5.1-rc4' of... · 4a3164e3
      Linus Torvalds authored
      Merge tag 'hwmon-for-v5.1-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fixes from Guenter Roeck:
       "Couple of minor hwmon fixes"
      
      * tag 'hwmon-for-v5.1-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        dt-bindings: hwmon: (adc128d818) Specify ti,mode property size
        hwmon: (ntc_thermistor) Fix temperature type reporting
        hwmon: (occ) Fix power sensor indexing
        hwmon: (w83773g) Select REGMAP_I2C to fix build error
      4a3164e3
    • Nicolas Pitre's avatar
      Update Nicolas Pitre's email address · 9f3bd8fe
      Nicolas Pitre authored
      The @linaro version won't be valid much longer.
      Signed-off-by: default avatarNicolas Pitre <nico@fluxnic.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9f3bd8fe
  5. 01 Apr, 2019 11 commits
  6. 31 Mar, 2019 9 commits
    • Linus Torvalds's avatar
      Linux 5.1-rc3 · 79a3aaa7
      Linus Torvalds authored
      79a3aaa7
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 63fc9c23
      Linus Torvalds authored
      Pull KVM fixes from Paolo Bonzini:
       "A collection of x86 and ARM bugfixes, and some improvements to
        documentation.
      
        On top of this, a cleanup of kvm_para.h headers, which were exported
        by some architectures even though they not support KVM at all. This is
        responsible for all the Kbuild changes in the diffstat"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (28 commits)
        Documentation: kvm: clarify KVM_SET_USER_MEMORY_REGION
        KVM: doc: Document the life cycle of a VM and its resources
        KVM: selftests: complete IO before migrating guest state
        KVM: selftests: disable stack protector for all KVM tests
        KVM: selftests: explicitly disable PIE for tests
        KVM: selftests: assert on exit reason in CR4/cpuid sync test
        KVM: x86: update %rip after emulating IO
        x86/kvm/hyper-v: avoid spurious pending stimer on vCPU init
        kvm/x86: Move MSR_IA32_ARCH_CAPABILITIES to array emulated_msrs
        KVM: x86: Emulate MSR_IA32_ARCH_CAPABILITIES on AMD hosts
        kvm: don't redefine flags as something else
        kvm: mmu: Used range based flushing in slot_handle_level_range
        KVM: export <linux/kvm_para.h> and <asm/kvm_para.h> iif KVM is supported
        KVM: x86: remove check on nr_mmu_pages in kvm_arch_commit_memory_region()
        kvm: nVMX: Add a vmentry check for HOST_SYSENTER_ESP and HOST_SYSENTER_EIP fields
        KVM: SVM: Workaround errata#1096 (insn_len maybe zero on SMAP violation)
        KVM: Reject device ioctls from processes other than the VM's creator
        KVM: doc: Fix incorrect word ordering regarding supported use of APIs
        KVM: x86: fix handling of role.cr4_pae and rename it to 'gpte_size'
        KVM: nVMX: Do not inherit quadrant and invalid for the root shadow EPT
        ...
      63fc9c23
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 915ee0da
      Linus Torvalds authored
      Pull x86 fixes from Thomas Gleixner:
       "A pile of x86 updates:
      
         - Prevent exceeding he valid physical address space in the /dev/mem
           limit checks.
      
         - Move all header content inside the header guard to prevent compile
           failures.
      
         - Fix the bogus __percpu annotation in this_cpu_has() which makes
           sparse very noisy.
      
         - Disable switch jump tables completely when retpolines are enabled.
      
         - Prevent leaking the trampoline address"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/realmode: Make set_real_mode_mem() static inline
        x86/cpufeature: Fix __percpu annotation in this_cpu_has()
        x86/mm: Don't exceed the valid physical address space
        x86/retpolines: Disable switch jump tables when retpolines are enabled
        x86/realmode: Don't leak the trampoline kernel address
        x86/boot: Fix incorrect ifdeffery scope
        x86/resctrl: Remove unused variable
      915ee0da
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 590627f7
      Linus Torvalds authored
      Pull perf tooling fixes from Thomas Gleixner:
       "Core libraries:
         - Fix max perf_event_attr.precise_ip detection.
         - Fix parser error for uncore event alias
         - Fixup ordering of kernel maps after obtaining the main kernel map
           address.
      
        Intel PT:
         - Fix TSC slip where A TSC packet can slip past MTC packets so that
           the timestamp appears to go backwards.
         - Fixes for exported-sql-viewer GUI conversion to python3.
      
        ARM coresight:
         - Fix the build by adding a missing case value for enumeration value
           introduced in newer library, that now is the required one.
      
        tool headers:
         - Syncronize kernel headers with the kernel, getting new io_uring and
           pidfd_send_signal syscalls so that 'perf trace' can handle them"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf pmu: Fix parser error for uncore event alias
        perf scripts python: exported-sql-viewer.py: Fix python3 support
        perf scripts python: exported-sql-viewer.py: Fix never-ending loop
        perf machine: Update kernel map address and re-order properly
        tools headers uapi: Sync powerpc's asm/kvm.h copy with the kernel sources
        tools headers: Update x86's syscall_64.tbl and uapi/asm-generic/unistd
        tools headers uapi: Update drm/i915_drm.h
        tools arch x86: Sync asm/cpufeatures.h with the kernel sources
        tools headers uapi: Sync linux/fcntl.h to get the F_SEAL_FUTURE_WRITE addition
        tools headers uapi: Sync asm-generic/mman-common.h and linux/mman.h
        perf evsel: Fix max perf_event_attr.precise_ip detection
        perf intel-pt: Fix TSC slip
        perf cs-etm: Add missing case value
      590627f7
    • Linus Torvalds's avatar
      Merge branch 'smp-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c29d8541
      Linus Torvalds authored
      Pull CPU hotplug fixes from Thomas Gleixner:
       "Two SMT/hotplug related fixes:
      
         - Prevent crash when HOTPLUG_CPU is disabled and the CPU bringup
           aborts. This is triggered with the 'nosmt' command line option, but
           can happen by any abort condition. As the real unplug code is not
           compiled in, prevent the fail by keeping the CPU in zombie state.
      
         - Enforce HOTPLUG_CPU for SMP on x86 to avoid the above situation
           completely. With 'nosmt' being a popular option it's required to
           unplug the half brought up sibling CPUs (due to the MCE wreckage)
           completely"
      
      * 'smp-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/smp: Enforce CONFIG_HOTPLUG_CPU when SMP=y
        cpu/hotplug: Prevent crash when CPU bringup fails on CONFIG_HOTPLUG_CPU=n
      c29d8541
    • Linus Torvalds's avatar
      Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 573efdc5
      Linus Torvalds authored
      Pull locking fixlet from Thomas Gleixner:
       "Trivial update to the maintainers file"
      
      * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        MAINTAINERS: Remove deleted file from futex file pattern
      573efdc5
    • Linus Torvalds's avatar
      Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f78b5be2
      Linus Torvalds authored
      Pull core fixes from Thomas Gleixner:
       "A small set of core updates:
      
         - Make the watchdog respect the selected CPU mask again. That was
           broken by the rework of the watchdog thread management and caused
           inconsistent state and NMI watchdog being unstoppable.
      
         - Ensure that the objtool build can find the libelf location.
      
         - Remove dead kcore stub code"
      
      * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        watchdog: Respect watchdog cpumask on CPU hotplug
        objtool: Query pkg-config for libelf location
        proc/kcore: Remove unused kclist_add_remap()
      f78b5be2
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.1-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 6536c5f2
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
       "Three non-regression fixes.
      
         - Our optimised memcmp could read past the end of one of the buffers
           and potentially trigger a page fault leading to an oops.
      
         - Some of our code to read energy management data on PowerVM had an
           endian bug leading to bogus results.
      
         - When reporting a machine check exception we incorrectly reported
           TLB multihits as D-Cache multhits due to a missing entry in the
           array of causes.
      
        Thanks to: Chandan Rajendra, Gautham R. Shenoy, Mahesh Salgaonkar,
        Segher Boessenkool, Vaidyanathan Srinivasan"
      
      * tag 'powerpc-5.1-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/pseries/mce: Fix misleading print for TLB mutlihit
        powerpc/pseries/energy: Use OF accessor functions to read ibm,drc-indexes
        powerpc/64: Fix memcmp reading past the end of src/dest
      6536c5f2
    • Linus Torvalds's avatar
      Merge tag 'dmaengine-fix-5.1-rc3' of git://git.infradead.org/users/vkoul/slave-dma · c877b3df
      Linus Torvalds authored
      Pull dmaengine fixes from Vinod Koul:
      
       - Revert "dmaengine: stm32-mdma: Add a check on read_u32_array" as that
         caused regression
      
       - Fix MAINTAINER file uniphier-mdmac.c file path
      
      * tag 'dmaengine-fix-5.1-rc3' of git://git.infradead.org/users/vkoul/slave-dma:
        MAINTAINERS: Fix uniphier-mdmac.c file path
        dmaengine: stm32-mdma: Revert "dmaengine: stm32-mdma: Add a check on read_u32_array"
      c877b3df