Commit Graph

2008 Commits

Author SHA1 Message Date
110ade372f sched: trace : Print current sched domain overutilization status
Extend sched_load_balance trace event to print overutilization
status of the current balancing sched domain.

Change-Id: Iae14e580294a0ab38394b4e8d660d0c5dd14327d
Signed-off-by: Lingutla Chandrasekhar <clingutla@codeaurora.org>
2019-05-21 00:54:28 -07:00
f2a0765ea9 Merge "Merge android-4.19.32 (6f994bf) into msm-4.19" 2019-05-15 19:29:58 -07:00
93df147ce3 Merge "defconfig: Enable CONFIG_PSI_FTRACE for kona" 2019-05-10 07:01:36 -07:00
1ce9c18dcb Merge "ANDROID: trace/sched: Add tracepoint for sched_overutilized events" 2019-05-10 07:01:34 -07:00
4925b05687 Merge android-4.19.32 (6f994bf) into msm-4.19
* refs/heads/tmp-6f994bf:
  Revert "ANDROID: sched: Disable find_best_target() by default"
  ANDROID: cpufreq: times: don't copy invalid freqs from freq table
  UPSTREAM: filemap: add a comment about FAULT_FLAG_RETRY_NOWAIT behavior
  BACKPORT: filemap: drop the mmap_sem for all blocking operations
  BACKPORT: filemap: kill page_cache_read usage in filemap_fault
  UPSTREAM: filemap: pass vm_fault to the mmap ra helpers
  ANDROID: binder: remove extra declaration left after backport
  FROMGIT: binder: fix BUG_ON found by selinux-testsuite
  ANDROID: sched: Disable find_best_target() by default
  ANDROID: sched/fair: Make the EAS wake-up prefer-idle aware
  Linux 4.19.32
  power: supply: charger-manager: Fix incorrect return value
  ALSA: hda - Enforces runtime_resume after S3 and S4 for each codec
  ALSA: hda - Record the current power state before suspend/resume calls
  locking/lockdep: Add debug_locks check in __lock_downgrade()
  x86/unwind: Add hardcoded ORC entry for NULL
  x86/unwind: Handle NULL pointer calls better in frame unwinder
  loop: access lo_backing_file only when the loop device is Lo_bound
  netfilter: ebtables: remove BUGPRINT messages
  f2fs: fix to avoid deadlock of atomic file operations
  RDMA/cma: Rollback source IP address if failing to acquire device
  drm: Reorder set_property_atomic to avoid returning with an active ww_ctx
  Bluetooth: hci_ldisc: Postpone HCI_UART_PROTO_READY bit set in hci_uart_set_proto()
  Bluetooth: hci_ldisc: Initialize hci_dev before open()
  Bluetooth: Fix decrementing reference count twice in releasing socket
  Bluetooth: hci_uart: Check if socket buffer is ERR_PTR in h4_recv_buf()
  media: v4l2-ctrls.c/uvc: zero v4l2_event
  ext4: brelse all indirect buffer in ext4_ind_remove_space()
  ext4: fix data corruption caused by unaligned direct AIO
  ext4: fix NULL pointer dereference while journal is aborted
  ALSA: ac97: Fix of-node refcount unbalance
  ALSA: hda/ca0132 - make pci_iounmap() call conditional
  ALSA: x86: Fix runtime PM for hdmi-lpe-audio
  SMB3: Fix SMB3.1.1 guest mounts to Samba
  irqchip/gic-v3-its: Fix comparison logic in lpi_range_cmp
  objtool: Move objtool_file struct off the stack
  perf probe: Fix getting the kernel map
  cifs: allow guest mounts to work for smb3.11
  futex: Ensure that futex address is aligned in handle_futex_death()
  scsi: ibmvscsi: Fix empty event pool access during host removal
  scsi: ibmvscsi: Protect ibmvscsi_head from concurrent modificaiton
  powerpc/vdso64: Fix CLOCK_MONOTONIC inconsistencies across Y2038
  MIPS: Fix kernel crash for R6 in jump label branch function
  MIPS: Ensure ELF appended dtb is relocated
  mips: loongson64: lemote-2f: Add IRQF_NO_SUSPEND to "cascade" irqaction.
  udf: Fix crash on IO error during truncate
  libceph: wait for latest osdmap in ceph_monc_blacklist_add()
  iommu/amd: fix sg->dma_address for sg->offset bigger than PAGE_SIZE
  drm/vmwgfx: Return 0 when gmrid::get_node runs out of ID's
  drm/vmwgfx: Don't double-free the mode stored in par->set_mode
  mmc: renesas_sdhi: limit block count to 16 bit for old revisions
  mmc: mxcmmc: "Revert mmc: mxcmmc: handle highmem pages"
  mmc: pxamci: fix enum type confusion
  ALSA: firewire-motu: use 'version' field of unit directory to identify model
  ALSA: hda - add Lenovo IdeaCentre B550 to the power_save_blacklist
  ANDROID: dm-bow: Fix 32 bit compile errors
  UPSTREAM: sched/pelt: Skip updating util_est when utilization is higher than CPU's capacity
  UPSTREAM: sched/fair: Update scale invariance of PELT
  UPSTREAM: sched/fair: Move the rq_of() helper function
  UPSTREAM: sched/fair: Remove setting task's se->runnable_weight during PELT update
  ANDROID: Add dm-bow to cuttlefish configuration
  UPSTREAM: binder: fix handling of misaligned binder object
  UPSTREAM: binder: fix sparse issue in binder_alloc_selftest.c
  BACKPORT: binder: use userspace pointer as base of buffer space
  UPSTREAM: binder: fix kerneldoc header for struct binder_buffer
  BACKPORT: binder: remove user_buffer_offset
  UPSTREAM: binder: remove kernel vm_area for buffer space
  UPSTREAM: binder: avoid kernel vm_area for buffer fixups
  BACKPORT: binder: add function to copy binder object from buffer
  BACKPORT: binder: add functions to copy to/from binder buffers
  UPSTREAM: binder: create userspace-to-binder-buffer copy function
  ANDROID: dm-bow: Add dm-bow feature
  f2fs: set pin_file under CAP_SYS_ADMIN
  f2fs: fix to avoid deadlock in f2fs_read_inline_dir()
  f2fs: fix to adapt small inline xattr space in __find_inline_xattr()
  f2fs: fix to do sanity check with inode.i_inline_xattr_size
  f2fs: give some messages for inline_xattr_size
  f2fs: don't trigger read IO for beyond EOF page
  f2fs: fix to add refcount once page is tagged PG_private
  f2fs: remove wrong comment in f2fs_invalidate_page()
  f2fs: fix to use kvfree instead of kzfree
  f2fs: print more parameters in trace_f2fs_map_blocks
  f2fs: trace f2fs_ioc_shutdown
  f2fs: fix to avoid deadlock of atomic file operations
  f2fs: fix to dirty inode for i_mode recovery
  f2fs: give random value to i_generation
  f2fs: no need to take page lock in readdir
  f2fs: fix to update iostat correctly in IPU path
  f2fs: fix encrypted page memory leak
  f2fs: make fault injection covering __submit_flush_wait()
  f2fs: fix to retry fill_super only if recovery failed
  f2fs: silence VM_WARN_ON_ONCE in mempool_alloc
  f2fs: correct spelling mistake
  f2fs: fix wrong #endif
  f2fs: don't clear CP_QUOTA_NEED_FSCK_FLAG
  f2fs: don't allow negative ->write_io_size_bits
  f2fs: fix to check inline_xattr_size boundary correctly
  Revert "f2fs: fix to avoid deadlock of atomic file operations"
  Revert "f2fs: fix to check inline_xattr_size boundary correctly"
  f2fs: do not use mutex lock in atomic context
  f2fs: fix potential data inconsistence of checkpoint
  f2fs: fix to avoid deadlock of atomic file operations
  f2fs: fix to check inline_xattr_size boundary correctly
  f2fs: jump to label 'free_node_inode' when failing from d_make_root()
  f2fs: fix to document inline_xattr_size option
  f2fs: fix to data block override node segment by mistake
  f2fs: fix typos in code comments
  f2fs: use xattr_prefix to wrap up
  f2fs: sync filesystem after roll-forward recovery
  f2fs: flush quota blocks after turnning it off
  f2fs: avoid null pointer exception in dcc_info
  f2fs: don't wake up too frequently, if there is lots of IOs
  f2fs: try to keep CP_TRIMMED_FLAG after successful umount
  f2fs: add quick mode of checkpoint=disable for QA
  f2fs: run discard jobs when put_super
  f2fs: fix to set sbi dirty correctly
  f2fs: fix to initialize variable to avoid UBSAN/smatch warning
  f2fs: UBSAN: set boolean value iostat_enable correctly
  f2fs: add brackets for macros
  f2fs: check if file namelen exceeds max value
  f2fs: fix to trigger fsck if dirent.name_len is zero
  f2fs: no need to check return value of debugfs_create functions
  f2fs: export FS_NOCOW_FL flag to user
  f2fs: check inject_rate validity during configuring
  f2fs: remove set but not used variable 'err'
  f2fs: fix compile warnings: 'struct *' declared inside parameter list
  f2fs: change error code to -ENOMEM from -EINVAL

Conflicts:
	drivers/md/Kconfig
	kernel/sched/fair.c

Change-Id: I2c6ba055f1160864446c87507a7fd7c8249ad885
Signed-off-by: Ivaylo Georgiev <irgeorgiev@codeaurora.org>
2019-05-09 00:12:14 -07:00
2e2e52bfaf msm: vidc: add new video custom trace point
Add new custom trace point to print video firmware
and kernel logs into tracer for debug.

Change-Id: Ic20903c2226790c455ab32f5f7a5ec872831f69a
Signed-off-by: Shi Zhongbo <zhongbos@codeaurora.org>
2019-05-09 11:21:01 +08:00
2620eb5a6c ANDROID: trace/sched: Add tracepoint for sched_overutilized events
Change-Id: Ieb46736cb21fe58024c434cd678af0abb8b0d249
Signed-off-by: Chris Redpath <chris.redpath@arm.com>
Git-commit: 7022c871dfc7215d32df21936876a4d9bafeaf50
Git-repo: https://android.googlesource.com/kernel/common/
[clingutla@codeaurora.org: Resolved trivial merge conflicts]
Signed-off-by: Lingutla Chandrasekhar <clingutla@codeaurora.org>
2019-05-07 10:34:47 +05:30
344e3f9eb5 psi: Introduce ftrace events
Add ftrace events to capture per-zone memory stats when a
trigger threshold is hit.

Change-Id: Ic52a27713acd34090c8f99543408b277877015c7
Signed-off-by: Patrick Daly <pdaly@codeaurora.org>
2019-05-02 12:16:12 -07:00
7ede1bd9ad Merge "sched: Cleanup unused variables in walt" 2019-04-28 00:32:53 -07:00
83f9007441 Merge "net: qualcomm: rmnet: Move tracepoint definitions to local file" 2019-04-28 00:32:45 -07:00
e309c5e8d0 Merge "sched/fair: Add sched_compute_energy trace point" 2019-04-27 23:38:20 -07:00
88aaac7a4b sched/fair: Add sched_compute_energy trace point
Add sched_compute_energy trace point to aid the task placement
issues debugging. It prints the energy of all the evaluated
CPUs and the best_energy for each iteration.

Change-Id: I965a950de5006bdc601a9fcc146d8d619409dd8f
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
2019-04-23 08:46:28 +05:30
e536a49882 sched/core_ctl: Improve the scheduler
This change is for general scheduler improvement.

Change-Id: I09dd536e6c431218429fd67f5941df694650f06c
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
2019-04-18 08:54:21 +05:30
f8381894c3 net: qualcomm: rmnet: Move tracepoint definitions to local file
During the initial porting process to 4.19, RmNet's tracepoints were moved
to the pre-existing trace/events/rmnet.h file. However, for backward
compatibility with older targets, they need to be moved back to the
original location.  This has the added benefit of reducing the clutter
in the trace/events directory.

Change-Id: I16678e0737a14eaf24df6162656d0ef067e27a39
Signed-off-by: Conner Huff <chuff@codeaurora.org>
Signed-off-by: Sean Tranchetti <stranche@codeaurora.org>
2019-04-17 14:20:26 -06:00
577d401b1a sched: Cleanup unused variables in walt
Cleanup unused WALT specific variables.

Change-Id: I5796978908bbc40de31845650a6983852e0c8bae
Signed-off-by: Lingutla Chandrasekhar <clingutla@codeaurora.org>
2019-04-17 21:00:41 +05:30
c19e3d8b78 mm: adding speculative page fault failure trace events
This patch a set of new trace events to collect the speculative page fault
event failures.

Signed-off-by: Laurent Dufour <ldufour@linux.vnet.ibm.com>
Change-Id: I9dafba293edf40bdad4ae241d105ecdfb42579c1
Patch-mainline: linux-mm @ Tue, 17 Apr 2018 16:33:25
[vinmenon@codeaurora.org: trivial merge conflicts]
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
2019-04-01 00:21:18 -07:00
03f1452c5c Merge upstream-f2fs-stable-linux-4.19.y into android-4.19
* origin/upstream-f2fs-stable-linux-4.19.y:
  f2fs: set pin_file under CAP_SYS_ADMIN
  f2fs: fix to avoid deadlock in f2fs_read_inline_dir()
  f2fs: fix to adapt small inline xattr space in __find_inline_xattr()
  f2fs: fix to do sanity check with inode.i_inline_xattr_size
  f2fs: give some messages for inline_xattr_size
  f2fs: don't trigger read IO for beyond EOF page
  f2fs: fix to add refcount once page is tagged PG_private
  f2fs: remove wrong comment in f2fs_invalidate_page()
  f2fs: fix to use kvfree instead of kzfree
  f2fs: print more parameters in trace_f2fs_map_blocks
  f2fs: trace f2fs_ioc_shutdown
  f2fs: fix to avoid deadlock of atomic file operations
  f2fs: fix to dirty inode for i_mode recovery
  f2fs: give random value to i_generation
  f2fs: no need to take page lock in readdir
  f2fs: fix to update iostat correctly in IPU path
  f2fs: fix encrypted page memory leak
  f2fs: make fault injection covering __submit_flush_wait()
  f2fs: fix to retry fill_super only if recovery failed
  f2fs: silence VM_WARN_ON_ONCE in mempool_alloc
  f2fs: correct spelling mistake
  f2fs: fix wrong #endif
  f2fs: don't clear CP_QUOTA_NEED_FSCK_FLAG
  f2fs: don't allow negative ->write_io_size_bits
  f2fs: fix to check inline_xattr_size boundary correctly
  Revert "f2fs: fix to avoid deadlock of atomic file operations"
  Revert "f2fs: fix to check inline_xattr_size boundary correctly"
  f2fs: do not use mutex lock in atomic context
  f2fs: fix potential data inconsistence of checkpoint
  f2fs: fix to avoid deadlock of atomic file operations
  f2fs: fix to check inline_xattr_size boundary correctly
  f2fs: jump to label 'free_node_inode' when failing from d_make_root()
  f2fs: fix to document inline_xattr_size option
  f2fs: fix to data block override node segment by mistake
  f2fs: fix typos in code comments
  f2fs: use xattr_prefix to wrap up
  f2fs: sync filesystem after roll-forward recovery
  f2fs: flush quota blocks after turnning it off
  f2fs: avoid null pointer exception in dcc_info
  f2fs: don't wake up too frequently, if there is lots of IOs
  f2fs: try to keep CP_TRIMMED_FLAG after successful umount
  f2fs: add quick mode of checkpoint=disable for QA
  f2fs: run discard jobs when put_super
  f2fs: fix to set sbi dirty correctly
  f2fs: fix to initialize variable to avoid UBSAN/smatch warning
  f2fs: UBSAN: set boolean value iostat_enable correctly
  f2fs: add brackets for macros
  f2fs: check if file namelen exceeds max value
  f2fs: fix to trigger fsck if dirent.name_len is zero
  f2fs: no need to check return value of debugfs_create functions
  f2fs: export FS_NOCOW_FL flag to user
  f2fs: check inject_rate validity during configuring
  f2fs: remove set but not used variable 'err'
  f2fs: fix compile warnings: 'struct *' declared inside parameter list
  f2fs: change error code to -ENOMEM from -EINVAL

Change-Id: I4a66e8b8d6a147bae6e210181095784236e982de
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
2019-03-28 19:40:32 -07:00
b4c1b0bc62 soc: qcom: Fast-forward DFC and WDA drivers
This brings the DFC and WDA drivers up to date with the 4.14 kernel as of
commit c4ac6998e150 ("soc: qmi: dfc: Fix use after free in dfc_svc_init")
and the associated RmNet driver changes neeced to support them.

Change-Id: I8beb758e2903f2415a632dc5f06fe47ff6526ede
Signed-off-by: Sean Tranchetti <stranche@codeaurora.org>
2019-03-22 11:56:46 -07:00
b4a56abdf7 UPSTREAM: mm: workingset: tell cache transitions from workingset thrashing
Refaults happen during transitions between workingsets as well as in-place
thrashing.  Knowing the difference between the two has a range of
applications, including measuring the impact of memory shortage on the
system performance, as well as the ability to smarter balance pressure
between the filesystem cache and the swap-backed workingset.

During workingset transitions, inactive cache refaults and pushes out
established active cache.  When that active cache isn't stale, however,
and also ends up refaulting, that's bonafide thrashing.

Introduce a new page flag that tells on eviction whether the page has been
active or not in its lifetime.  This bit is then stored in the shadow
entry, to classify refaults as transitioning or thrashing.

How many page->flags does this leave us with on 32-bit?

	20 bits are always page flags

	21 if you have an MMU

	23 with the zone bits for DMA, Normal, HighMem, Movable

	29 with the sparsemem section bits

	30 if PAE is enabled

	31 with this patch.

So on 32-bit PAE, that leaves 1 bit for distinguishing two NUMA nodes.  If
that's not enough, the system can switch to discontigmem and re-gain the 6
or 7 sparsemem section bits.

Link: http://lkml.kernel.org/r/20180828172258.3185-3-hannes@cmpxchg.org
Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Tested-by: Daniel Drake <drake@endlessm.com>
Tested-by: Suren Baghdasaryan <surenb@google.com>
Cc: Christopher Lameter <cl@linux.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Johannes Weiner <jweiner@fb.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Enderborg <peter.enderborg@sony.com>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: Vinayak Menon <vinmenon@codeaurora.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

(cherry picked from commit 8508cf3ffad4defa202b303e5b6379efc4cd9054)

Bug: 127712811
Test: lmkd in PSI mode
Change-Id: I71df060dce5590a3c654f9a0e8e54deeb74b64c2
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2019-03-21 16:25:26 -07:00
bcc63c1505 Merge "trace/sched: set priority to 150 for deadline tasks" 2019-03-17 06:45:24 -07:00
b56e526526 sched: clean-up unused/duplicate functions & variables
Deprecate unused/duplicate functions & variables for better
readability.

Change-Id: Ifd91080585f516c4d8290fa4bb4f8dbaddd27d98
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
2019-03-14 22:00:58 -07:00
1f1c4ff40c f2fs: print more parameters in trace_f2fs_map_blocks
for better map_blocks trace.

Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2019-03-14 11:22:05 -07:00
af42672665 f2fs: trace f2fs_ioc_shutdown
This patch supports to trace f2fs_ioc_shutdown.

Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2019-03-14 11:22:04 -07:00
fc96777787 Merge "sched: loadavg: consolidate LOAD_INT, LOAD_FRAC, CALC_LOAD" 2019-03-13 02:14:22 -07:00
dd77e9d448 Merge "mm: cma: add trace events for CMA alloc perf testing" 2019-03-08 01:04:10 -08:00
779fe47fd2 trace/sched: set priority to 150 for deadline tasks
As deadline tasks doesn't have priority, their priority is set
to -1. If there are any deadline tasks in the system, chrome/tracing
doesn't show results as expected as it can't recognize tasks with
priority -1. Fix it by using 150 as priority for deadline tasks.

Change-Id: I49b43f77b97ebfe6d79a7c9e9ec346ea60e79768
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
2019-03-07 22:22:49 -08:00
494c0dafc7 mm: workingset: tell cache transitions from workingset thrashing
Refaults happen during transitions between workingsets as well as in-place
thrashing.  Knowing the difference between the two has a range of
applications, including measuring the impact of memory shortage on the
system performance, as well as the ability to smarter balance pressure
between the filesystem cache and the swap-backed workingset.

During workingset transitions, inactive cache refaults and pushes out
established active cache.  When that active cache isn't stale, however,
and also ends up refaulting, that's bonafide thrashing.

Introduce a new page flag that tells on eviction whether the page has been
active or not in its lifetime.  This bit is then stored in the shadow
entry, to classify refaults as transitioning or thrashing.

How many page->flags does this leave us with on 32-bit?

	20 bits are always page flags

	21 if you have an MMU

	23 with the zone bits for DMA, Normal, HighMem, Movable

	29 with the sparsemem section bits

	30 if PAE is enabled

	31 with this patch.

So on 32-bit PAE, that leaves 1 bit for distinguishing two NUMA nodes.  If
that's not enough, the system can switch to discontigmem and re-gain the 6
or 7 sparsemem section bits.

Link: http://lkml.kernel.org/r/20180828172258.3185-3-hannes@cmpxchg.org
Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Tested-by: Daniel Drake <drake@endlessm.com>
Tested-by: Suren Baghdasaryan <surenb@google.com>
Cc: Christopher Lameter <cl@linux.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Johannes Weiner <jweiner@fb.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Enderborg <peter.enderborg@sony.com>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: Vinayak Menon <vinmenon@codeaurora.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Change-Id: I6134c51987d401584f513f8b5a7826962009997c
Git-commit: 1899ad18c6072d689896badafb81267b0a1092a4
Git-repo: https://source.codeaurora.org/quic/la/kernel/msm-4.19
Signed-off-by: Patrick Daly <pdaly@codeaurora.org>
2019-03-07 13:59:11 -08:00
97a2d06764 mm: cma: add trace events for CMA alloc perf testing
Add cma and migrate trace events to enable CMA allocation
performance to be measured via ftrace.

Change-Id: I1e471e9e21f1a14ce2ed167d8515ccb5f83eb88c
Signed-off-by: Liam Mark <lmark@codeaurora.org>
Signed-off-by: Patrick Daly <pdaly@codeaurora.org>
Signed-off-by: Sudarshan Rajagopalan <sudaraja@codeaurora.org>
2019-03-05 16:56:54 -08:00
27031678b4 Merge android-4.19.16 (976f78d) into msm-4.19
* refs/heads/tmp-976f78d:
  Linux 4.19.16
  Btrfs: use nofs context when initializing security xattrs to avoid deadlock
  Btrfs: fix deadlock when enabling quotas due to concurrent snapshot creation
  Btrfs: fix access to available allocation bits when starting balance
  arm64: compat: Don't pull syscall number from regs in arm_compat_syscall
  KVM: arm/arm64: Fix VMID alloc race by reverting to lock-less
  sunrpc: use-after-free in svc_process_common()
  mm: page_mapped: don't assume compound page is huge or THP
  ext4: fix special inode number checks in __ext4_iget()
  ext4: track writeback errors using the generic tracking infrastructure
  ext4: use ext4_write_inode() when fsyncing w/o a journal
  ext4: avoid kernel warning when writing the superblock to a dead device
  ext4: fix a potential fiemap/page fault deadlock w/ inline_data
  ext4: make sure enough credits are reserved for dioread_nolock writes
  rbd: don't return 0 on unmap if RBD_DEV_FLAG_REMOVING is set
  drm/amdgpu: Don't fail resume process if resuming atomic state fails
  drm/amdgpu: Don't ignore rc from drm_dp_mst_topology_mgr_resume()
  drm/i915: Unwind failure on pinning the gen7 ppgtt
  drm/fb-helper: Partially bring back workaround for bugs of SDL 1.2
  drm/fb_helper: Allow leaking fbdev smem_start
  drm/amd/display: Fix MST dp_blank REG_WAIT timeout
  PCI: dwc: Move interrupt acking into the proper callback
  PCI: dwc: Take lock when ACKing an interrupt
  PCI: dwc: Use interrupt masking instead of disabling
  drm/amdgpu: Add new VegaM pci id
  vfio/type1: Fix unmap overflow off-by-one
  mtd: rawnand: qcom: fix memory corruption that causes panic
  i2c: dev: prevent adapter retries and timeout being set as minus value
  ACPI/IORT: Fix rc_dma_get_range()
  ACPI / PMIC: xpower: Fix TS-pin current-source handling
  ACPI: power: Skip duplicate power resource references in _PRx
  mm, memcg: fix reclaim deadlock with writeback
  mm/usercopy.c: no check page span for stack objects
  slab: alien caches must not be initialized if the allocation of the alien cache failed
  USB: Add USB_QUIRK_DELAY_CTRL_MSG quirk for Corsair K70 RGB
  USB: storage: add quirk for SMI SM3350
  USB: storage: don't insert sane sense for SPC3+ when bad sense specified
  usb: cdc-acm: send ZLP for Telit 3G Intel based modems
  cifs: Fix potential OOB access of lock element array
  CIFS: Fix credit computation for compounded requests
  CIFS: Do not hide EINTR after sending network packets
  CIFS: Do not set credits to 1 if the server didn't grant anything
  CIFS: Fix adjustment of credits for MTU requests
  ALSA: hda/realtek - Disable headset Mic VREF for headset mode of ALC225
  ALSA: hda/realtek - Add unplug function into unplug state of Headset Mode for ALC225
  ALSA: hda/realtek - Support Dell headset mode for New AIO platform
  x86, modpost: Replace last remnants of RETPOLINE with CONFIG_RETPOLINE
  cpufreq: scmi: Fix frequency invariance in slow path
  staging: rtl8188eu: Fix module loading from tasklet for WEP encryption
  staging: rtl8188eu: Fix module loading from tasklet for CCMP encryption
  Btrfs: fix deadlock when using free space tree due to block group creation
  UPSTREAM: selftests/memfd: Add tests for F_SEAL_FUTURE_WRITE seal
  UPSTREAM: mm/memfd: Add an F_SEAL_FUTURE_WRITE seal to memfd
  Revert "UPSTREAM: mm: Add an F_SEAL_FUTURE_WRITE seal to memfd"
  Revert "UPSTREAM: mm/memfd: make F_SEAL_FUTURE_WRITE seal more robust"
  ANDROID: cuttlefish: enable CONFIG_NET_CLS_BPF=y
  Makefile: Fix 4.19.15 resolution
  ANDROID: f2fs: Complement "android_fs" tracepoint of read path

Change-Id: I9c9c1f53796798b4ac1038dcfcf0d70624c1cfca
Signed-off-by: Ivaylo Georgiev <irgeorgiev@codeaurora.org>
2019-02-27 02:23:17 -08:00
77906c0942 Merge android-4.19.14 (8735c21) into msm-4.19
* refs/heads/tmp-8735c21:
  ANDROID: thermal: cpu_cooling: Use related_cpus for energy model cpumask check
  Linux 4.19.14
  MIPS: Only include mmzone.h when CONFIG_NEED_MULTIPLE_NODES=y
  spi: bcm2835: Unbreak the build of esoteric configs
  tpm: tpm_i2c_nuvoton: use correct command duration for TPM 2.x
  tpm: tpm_try_transmit() refactor error flow.
  arm64: compat: Avoid sending SIGILL for unallocated syscall numbers
  iommu/arm-smmu-v3: Fix big-endian CMD_SYNC writes
  KVM: arm/arm64: vgic: Fix off-by-one bug in vgic_get_irq()
  KVM: arm/arm64: vgic-v2: Set active_source to 0 when restoring state
  KVM: arm/arm64: vgic: Cap SPIs to the VM-defined maximum
  KVM: arm/arm64: vgic: Do not cond_resched_lock() with IRQs disabled
  rtc: m41t80: Correct alarm month range with RTC reads
  ARM: dts: exynos: Specify I2S assigned clocks in proper node
  arm/arm64: KVM: vgic: Force VM halt when changing the active state of GICv3 PPIs/SGIs
  arm64: KVM: Avoid setting the upper 32 bits of VTCR_EL2 to 1
  smb3: fix large reads on encrypted connections
  CIFS: Fix error mapping for SMB2_LOCK command which caused OFD lock problem
  MIPS: Fix a R10000_LLSC_WAR logic in atomic.h
  MIPS: OCTEON: mark RGMII interface disabled on OCTEON III
  MIPS: Expand MIPS32 ASIDs to 64 bits
  MIPS: Align kernel load address to 64KB
  MIPS: Ensure pmd_present() returns false after pmd_mknotpresent()
  MIPS: c-r4k: Add r4k_blast_scache_node for Loongson-3
  MIPS: math-emu: Write-protect delay slot emulation pages
  tools lib traceevent: Fix processing of dereferenced args in bprintk events
  media: v4l2-tpg: array index could become negative
  media: vb2: check memory model for VIDIOC_CREATE_BUFS
  media: vivid: free bitmap_cap when updating std/timings/etc.
  media: imx274: fix stack corruption in imx274_read_reg
  media: rc: cec devices do not have a lirc chardev
  media: cec-pin: fix broken tx_ignore_nack_until_eom error injection
  media: cec: keep track of outstanding transmits
  serial: uartps: Fix interrupt mask issue to handle the RX interrupts properly
  f2fs: sanity check of xattr entry size
  f2fs: fix validation of the block count in sanity_check_raw_super
  f2fs: read page index before freeing
  dax: Use non-exclusive wait in wait_entry_unlocked()
  dax: Don't access a freed inode
  powerpc/tm: Unset MSR[TS] if not recheckpointing
  brcmfmac: Fix out of bounds memory access during fw load
  brcmfmac: fix roamoff=1 modparam
  Btrfs: send, fix race with transaction commits that create snapshots
  btrfs: run delayed items before dropping the snapshot
  Btrfs: fix fsync of files with multiple hard links in new directories
  btrfs: skip file_extent generation check for free_space_inode in run_delalloc_nocow
  btrfs: dev-replace: go back to suspend state if another EXCL_OP is running
  btrfs: dev-replace: go back to suspended state if target device is missing
  cdc-acm: fix abnormal DATA RX issue for Mediatek Preloader.
  cgroup: fix CSS_TASK_ITER_PROCS
  crypto: cfb - fix decryption
  crypto: testmgr - add AES-CFB tests
  crypto: chcr - small packet Tx stalls the queue
  crypto: cavium/nitrox - fix a DMA pool free failure
  clk: sunxi-ng: Use u64 for calculation of NM rate
  clk: rockchip: fix typo in rk3188 spdif_frac parent
  spi: bcm2835: Avoid finishing transfer prematurely in IRQ mode
  spi: bcm2835: Fix book-keeping of DMA termination
  spi: bcm2835: Fix race on DMA termination
  ext4: check for shutdown and r/o file system in ext4_write_inode()
  ext4: force inode writes when nfsd calls commit_metadata()
  ext4: avoid declaring fs inconsistent due to invalid file handles
  ext4: include terminating u32 in size of xattr entries when expanding inodes
  ext4: fix EXT4_IOC_GROUP_ADD ioctl
  ext4: missing unlock/put_page() in ext4_try_to_write_inline_data()
  ext4: fix possible use after free in ext4_quota_enable
  ext4: add ext4_sb_bread() to disambiguate ENOMEM cases
  ocxl: Fix endiannes bug in read_afu_name()
  ocxl: Fix endiannes bug in ocxl_link_update_pe()
  perf env: Also consider env->arch == NULL as local operation
  perf pmu: Suppress potential format-truncation warning
  perf script: Use fallbacks for branch stacks
  perf tools: Use fallback for sample_addr_correlates_sym() cases
  perf thread: Add fallback functions for cases where cpumode is insufficient
  perf machine: Record if a arch has a single user/kernel address space
  clocksource/drivers/arc_timer: Utilize generic sched_clock
  DRM: UDL: get rid of useless vblank initialization
  drm/v3d: Skip debugfs dumping GCA on platforms without GCA.
  platform-msi: Free descriptors in platform_msi_domain_free()
  KVM: nVMX: Free the VMREAD/VMWRITE bitmaps if alloc_kvm_area() fails
  arm64: KVM: Make VHE Stage-2 TLB invalidation operations non-interruptible
  KVM: x86: Use jmp to invoke kvm_spurious_fault() from .fixup
  x86/mm: Drop usage of __flush_tlb_all() in kernel_physical_mapping_init()
  x86/speculation/l1tf: Drop the swap storage limit restriction when l1tf=off
  Input: elan_i2c - add ACPI ID for touchpad in ASUS Aspire F5-573G
  Input: atmel_mxt_ts - don't try to free unallocated kernel memory
  s390/pci: fix sleeping in atomic during hotplug
  ASoC: intel: cht_bsw_max98090_ti: Add pmc_plt_clk_0 quirk for Chromebook Gnawty
  ASoC: intel: cht_bsw_max98090_ti: Add pmc_plt_clk_0 quirk for Chromebook Clapper
  staging: wilc1000: fix missing read_write setting when reading data
  media: dvb-usb-v2: Fix incorrect use of transfer_flags URB_FREE_BUFFER
  usb: roles: Add a description for the class to Kconfig
  Revert "usb: dwc3: pci: Use devm functions to get the phy GPIOs"
  usb: dwc2: disable power_down on Amlogic devices
  usb: r8a66597: Fix a possible concurrency use-after-free bug in r8a66597_endpoint_disable()
  USB: serial: option: add Fibocom NL678 series
  USB: serial: pl2303: add ids for Hewlett-Packard HP POS pole displays
  usb: dwc2: host: use hrtimer for NAK retries
  ALSA: hda/tegra: clear pending irq handlers
  ALSA: hda/realtek: Enable the headset mic auto detection for ASUS laptops
  ALSA: firewire-lib: use the same print format for 'without_header' tracepoints
  ALSA: firewire-lib: fix wrong assignment for 'out_packet_without_header' tracepoint
  ALSA: firewire-lib: fix wrong handling payload_length as payload_quadlet
  ALSA: fireface: fix for state to fetch PCM frames
  ALSA: hda/realtek: Enable audio jacks of ASUS UX391UA with ALC294
  ALSA: hda: add mute LED support for HP EliteBook 840 G4
  mtd: rawnand: omap2: Pass the parent of pdev to dma_request_chan()
  mtd: rawnand: marvell: prevent timeouts on a loaded machine
  mtd: atmel-quadspi: disallow building on ebsa110
  powerpc/fsl: Fix spectre_v2 mitigations reporting
  ALSA: emux: Fix potential Spectre v1 vulnerabilities
  ALSA: pcm: Fix potential Spectre v1 vulnerability
  ALSA: emu10k1: Fix potential Spectre v1 vulnerabilities
  ALSA: rme9652: Fix potential Spectre v1 vulnerability
  IB/hfi1: Incorrect sizing of sge for PIO will OOPs
  r8169: fix WoL device wakeup enable
  net: Use __kernel_clockid_t in uapi net_stamp.h
  net: mvneta: fix operation for 64K PAGE_SIZE
  net/mlx5e: RX, Fix wrong early return in receive queue poll
  net/mlx5e: Remove unused UDP GSO remaining counter
  mlxsw: core: Increase timeout during firmware flash process
  qed: Fix command number mismatch between driver and the mfw
  net: mvpp2: fix the phylink mode validation
  net/mlx5e: RX, Verify MPWQE stride size is in range
  net/mlx5e: Cancel DIM work on close SQ
  mscc: Configured MAC entries should be locked.
  ipv6: route: Fix return value of ip6_neigh_lookup() on neigh_create() error
  nfp: flower: ensure TCP flags can be placed in IPv6 frame
  net/ipv6: Fix a test against 'ipv6_find_idev()' return value
  ipv6: frags: Fix bogus skb->sk in reassembled packets
  net/mlx5e: Remove the false indication of software timestamping support
  tipc: check group dests after tipc_wait_for_cond()
  net/mlx5: Typo fix in del_sw_hw_rule
  xen/netfront: tolerate frags with no data
  VSOCK: Send reset control packet when socket is partially bound
  vhost: make sure used idx is seen before log in vhost_add_used_n()
  tipc: use lock_sock() in tipc_sk_reinit()
  tipc: fix a double kfree_skb()
  tipc: fix a double free in tipc_enable_bearer()
  tipc: compare remote and local protocols in tipc_udp_enable()
  tipc: check tsk->group in tipc_wait_for_cond()
  tcp: fix a race in inet_diag_dump_icsk()
  sock: Make sock->sk_stamp thread-safe
  sctp: initialize sin6_flowinfo for ipv6 addrs in sctp_inet6addr_event
  qmi_wwan: Add support for Fibocom NL678 series
  qmi_wwan: Added support for Telit LN940 series
  qmi_wwan: Added support for Fibocom NL668 series
  ptr_ring: wrap back ->producer in __ptr_ring_swap_queue()
  packet: validate address length if non-zero
  packet: validate address length
  net/wan: fix a double free in x25_asy_open_tty()
  net/tls: allocate tls context using GFP_ATOMIC
  net: stmmac: Fix an error code in probe()
  net/smc: fix TCP fallback socket release
  netrom: fix locking in nr_find_socket()
  net: phy: Fix the issue that netif always links up after resuming
  net: mvpp2: 10G modes aren't supported on all ports
  net: macb: restart tx after tx used bit read
  net: ipv4: do not handle duplicate fragments as overlapping
  net/hamradio/6pack: use mod_timer() to rearm timers
  net: clear skb->tstamp in forwarding paths
  isdn: fix kernel-infoleak in capi_unlocked_ioctl
  ip: validate header length on virtual device xmit
  ipv6: tunnels: fix two use-after-free
  ipv6: explicitly initialize udp6_addr in udp_sock_create6()
  ipv4: Fix potential Spectre v1 vulnerability
  ip6mr: Fix potential Spectre v1 vulnerability
  ieee802154: lowpan_header_create check must check daddr
  ibmveth: fix DMA unmap error in ibmveth_xmit_start error path
  gro_cell: add napi_disable in gro_cells_destroy
  ax25: fix a use-after-free in ax25_fillin_cb()
  Revert "FROMLIST: PM / EM: Expose the Energy Model in sysfs"
  Revert "FROMLIST: sched: Introduce a sysctl for Energy Aware Scheduling"
  ANDROID: sched: Align EAS with upstream
  ANDROID: cuttlefish_defconfig: Enable VIRTIO_INPUT

Conflicts:
	include/linux/sched/sysctl.h
	kernel/sysctl.c

Change-Id: I44212c239e9ca2b1ce68ed59e95d0f7913159a52
Signed-off-by: Ivaylo Georgiev <irgeorgiev@codeaurora.org>
2019-02-27 00:17:41 -08:00
d6d3bfb561 Merge "Merge android-4.19.12 (16c056d) into msm-4.19" 2019-02-16 03:30:22 -08:00
c6bc49c168 trace: events: scm: Use correct size when copying argument buffer
When copying the SCM call arugment buffer for trace events,
the amount of bytes specified to copy is MAX_SCM_ARGS, which
is not correct, as this is only the maximum number of SCM
call arguments, but each argument is 8 bytes, and thus the
amount of bytes that should be copied is actually 80 bytes.

Since the size of the SCM call argument buffer is a compile
time constant, use sizeof() on the argument buffer to compute
the amount of bytes that should be copied.

Change-Id: Ib878006e60d5bf283ba8252498c651b3e3c99b28
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
2019-02-07 09:51:45 -08:00
e55718f553 f2fs: fix compile warnings: 'struct *' declared inside parameter list
We meet these compile warnings below, which caused by missing declare structs:
struct f2fs_io_info, struct extent, struct f2fs_sb_info.

warning: 'struct f2fs_io_info' declared inside parameter list
warning: 'struct extent_info' declared inside parameter list
warning: 'struct f2fs_sb_info' declared inside parameter list

Signed-off-by: Zhikang Zhang <zhangzhikang1@huawei.com>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2019-02-04 10:16:52 -08:00
113e3894c4 sched/fair: Fix schedtune boosted tasks placement issues
The current code starts the CPU search with max capacity cluster
for schedtune boosted tasks. If any of the CPU in this cluster
can accommodate the task without exceeding its original capacity,
the search is not extended to other clusters. This approach results
in sub-optimal performance on tri-cluster systems with 1 CPU in the
max capacity cluster. The max capacity CPU is packed with several
tasks while the other mid capacity CPUs are idle. Fix this issue by
starting the CPU search with mid capacity cluster as long as the
task fits. The search is also expanded to the max capacity cluster
and the best CPU is selected among the iterated CPUs. The best CPU
is either an idle CPU in the shallowest c-state or CPU with maximum
spare capacity when all the iterated CPUs are busy. The energy
evaluation is also skipped for boosted tasks to maximize the
performance.

While at it, extend the sched_task_util trace point to print if
the task is schedtune boosted or not.

Change-Id: Iefb29e9d32f1c414bd6af31d66306f04c6f57f9c
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
[satyap@codeaurora.org: resolve merge conflicts]
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
2019-01-30 10:23:44 -08:00
77d1ff5ce2 Merge "defconfig: arm64: Enable MMC features for the SD Card" 2019-01-30 02:08:10 -08:00
cde0ba6694 Merge android-4.19.11 (a87fb6b) into msm-4.19
* refs/heads/tmp-a87fb6b:
  Linux 4.19.11
  x86/build: Fix compiler support check for CONFIG_RETPOLINE
  dm zoned: Fix target BIO completion handling
  drm/amdgpu: update SMC firmware image for polaris10 variants
  drm/amdgpu: update smu firmware images for VI variants (v2)
  drm/amdgpu: add some additional vega10 pci ids
  drm/amdkfd: add new vega10 pci ids
  drm/amdgpu/powerplay: Apply avfs cks-off voltages on VI
  drm/i915/execlists: Apply a full mb before execution for Braswell
  drm/i915/gvt: Fix tiled memory decoding bug on BDW
  Revert "drm/rockchip: Allow driver to be shutdown on reboot/kexec"
  drm/nouveau/kms/nv50-: also flush fb writes when rewinding push buffer
  drm/nouveau/kms: Fix memory leak in nv50_mstm_del()
  powerpc: Look for "stdout-path" when setting up legacy consoles
  powerpc/msi: Fix NULL pointer access in teardown code
  media: vb2: don't call __vb2_queue_cancel if vb2_start_streaming failed
  tracing: Fix memory leak of instance function hash filters
  tracing: Fix memory leak in set_trigger_filter()
  tracing: Fix memory leak in create_filter()
  dm: call blk_queue_split() to impose device limits on bios
  dm cache metadata: verify cache has blocks in blocks_are_clean_separate_dirty()
  dm thin: send event about thin-pool state change _after_ making it
  ARM: dts: bcm2837: Fix polarity of wifi reset GPIOs
  ARM: mmp/mmp2: fix cpu_is_mmp2() on mmp2-dt
  fuse: continue to send FUSE_RELEASEDIR when FUSE_OPEN returns ENOSYS
  mmc: sdhci: fix the timeout check window for clock and reset
  mmc: sdhci-omap: Fix DCRC error handling during tuning
  mmc: core: use mrq->sbc when sending CMD23 for RPMB
  MMC: OMAP: fix broken MMC on OMAP15XX/OMAP5910/OMAP310
  ovl: fix missing override creds in link of a metacopy upper
  ovl: fix decode of dir file handle with multi lower layers
  block/bio: Do not zero user pages
  arm64: dma-mapping: Fix FORCE_CONTIGUOUS buffer clearing
  userfaultfd: check VM_MAYWRITE was set after verifying the uffd is registered
  fs/iomap.c: get/put the page in iomap_page_create/release()
  scripts/spdxcheck.py: always open files in binary mode
  aio: fix spectre gadget in lookup_ioctx
  pinctrl: sunxi: a83t: Fix IRQ offset typo for PH11
  drm/msm: fix address space warning
  ARM: dts: qcom-apq8064-arrow-sd-600eval fix graph_endpoint warning
  i2c: aspeed: fix build warning
  slimbus: ngd: mark PM functions as __maybe_unused
  staging: olpc_dcon: add a missing dependency
  scsi: raid_attrs: fix unused variable warning
  sched/pelt: Fix warning and clean up IRQ PELT config
  FROMGIT: dm verity: log the hash algorithm implementation
  FROMGIT: dm crypt: log the encryption algorithm implementation
  ANDROID: sched: Clean-up SchedTune documentation
  ANDROID: sched/events: Fix out of bound memory access

Conflicts:
	drivers/gpu/drm/msm/disp/dpu1/dpu_dbg.c
	drivers/slimbus/qcom-ngd-ctrl.c
	init/Kconfig

Change-Id: I52e910e1330e8cac1103c32e0cd0fc43ddeac744
Signed-off-by: Ivaylo Georgiev <irgeorgiev@codeaurora.org>
2019-01-29 01:02:51 -08:00
4f50c26c01 mmc: Merge MMC driver's changes from kernel msm-4.14 to msm-4.19
This is a snapshot of the mmc module taken as of msm-4.14
commit <9fa809c70c96>. This change contains the MMC driver's
changes for merging from kernel version msm-4.14 to msm-4.19.

Change-Id: I89fa8d5681d18290bbaf8b500f2e7f4a8aebbd89
Signed-off-by: Bao D. Nguyen <nguyenb@codeaurora.org>
2019-01-25 17:25:39 -08:00
20c5ad72fd drivers: rmnet: Fix warnings in trace/events/rmnet.h
Fix a bunch of warnings all similar to:

./include/trace/events/rmnet.h:65:12: error:
format '%lu' expects argument of type 'long unsigned int', but argument 7 has type 'u64 {aka long long unsigned int}' [-Werror=format=]

Fixes: 14eee8448a ("drivers: add RmNet snapshot")
Change-Id: Ic0dedbada634af33f5ad0f74d22ca084d854f566
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2019-01-23 16:38:56 -07:00
504854af0c Merge "sched: Improve the scheduler" 2019-01-21 09:31:51 -08:00
5af75f814a Merge "trace/sched: Add NR_CPUS check for load balancer trace points" 2019-01-21 08:45:43 -08:00
9205d3ce62 trace/sched: Add NR_CPUS check for load balancer trace points
Compilation fails for systems with NR_CPUS > 32 due to load balancer
trace points. Instead of failing compilation, add NR_CPUS checks for
these trace points which should be good enough to make sure trace points
won't even be available for such systems.

Change-Id: I0f722b32dbec999d3de31efcd135db25905604aa
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
2019-01-18 15:13:49 -08:00
6cda1dff73 sched: Improve the scheduler
This change is for general scheduler improvement.

Change-Id: I22994886e3a6128e9235e3cf698b0bb405275194
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
[satyap@codeaurora.org: fix trivial merge conflict]
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
2019-01-18 12:49:08 -08:00
eccbcb112c PM / devfreq: memlat: Look for min stall% in addition to ratio criteria
Some workloads doing memory access might appear memory latency bound even
though they might not actually be memory latency bound.

This error can happen when the core that's running the workload is very
parallelized or can do out of order executions, etc so not all memory
accesses would actually stall the core.

This can also happen when the the memory access monitoring capabilities
aren't ideal and end up counting more kinds of memory accesses than what
would be ideal. In this case, the IPM ratio can be lower than what it would
be if we had ideal monitoring capabilities.

To account for these errors, if the core has a stall cycle counting
capabilities, check for a minimum stall% before the workload is considered
memory latency bound. This would help reduce the inaccuracies, but is not a
replacement for IPM ratio scheme because the stall% method doesn't allow us
to detect which level of memory the workload is latency bound on, but the
IPM ratio does (based on which memory accesses we use for calculating the
ratio).

Change-Id: I4363d7848584e5562f6683b5ad6b0f99017ec71b
Signed-off-by: Saravana Kannan <skannan@codeaurora.org>
Signed-off-by: Rama Aparna Mallavarapu <aparnam@codeaurora.org>
2019-01-17 14:37:16 -08:00
c2d48d46f0 PM / devfreq: Introduce a memory-latency governor
Use performance counters to detect the memory latency sensitivity
of CPU workloads and vote for higher DDR frequency if required.

Change-Id: Ie77a3523bc5713fc0315bd0abc3913f485a96e0e
Signed-off-by: Rohit Gupta <rohgup@codeaurora.org>
Signed-off-by: Rama Aparna Mallavarapu <aparnam@codeaurora.org>
2019-01-17 14:36:46 -08:00
60896a51ab PM / devfreq: cache_hwmon: Use array for reporting monitor stats
Using an array to report monitor stats instead of hard coded variable
names would allow for cleaner implementations of some cache hwmon
device drivers.

Change-Id: I787bdc12f10a0c8ff3c4195ce229a2987acdfce7
Signed-off-by: Junjie Wu <junjiew@codeaurora.org>
Signed-off-by: Rama Aparna Mallavarapu <aparnam@codeaurora.org>
2019-01-17 11:16:41 -08:00
30eef01374 devfreq: Add CPUBW HW monitor governor
The CPUBW HW monitor devfreq governor uses the Krait L2 PM counters to
determine the bandwidth needed by the Krait CPU subsystem. This governor
can be used in conjunction with the CPUBW devfreq device to dynamically
scale the DDR frequency based on the demand/actual usage from the Krait CPU
subsystem. Since this governor uses the Krait L2 PM counters it can
conflict with certain profiling tools.

The Krait L2 performance monitor counters have the capability to count the
no. of read/write transactions going out the master ports. They also have
the capability to raise interrupts when they overflow. This driver uses
those counters to determine the true usage of DDR from the Krait processor
subsystem and then recommends CPU DDR BW votes based on the measured values
and the following tunable parameters.

The driver provides various tunables that allow it to be tuned more in
favor of power or performance:

- io_percent: The percentage of the CPU time that can be spent waiting on
  memory I/O. Lower value is better performance and worse power.

- sample_ms: The sampling period in milliseconds. This only affects the
  sampling period when DDR use is ramping down or is increasing very slowly
  (See tolerance_percent).

- tolerance_percent: The minimum increase in DDR use, compared to previous
  sample, that will trigger an IRQ to immediately bump up the bandwidth
  vote. It's expressed as a percentage of the previous sampled DDR use.

- decay_rate: The parameter controls the rate at which the history is
  forgotten when ramping down. This is expressed as a percentage of history
  to be forgotten.  So 100% means ignore history, 0% mean never forget the
  historical max. The default 90% means forget 90% of history each time.

- guard_band_mbps: This is a margin that's added to the measured BW (and
  hence also the Bus BW votes) that's present to account for the time it
  takes to ramp up the DDR BW while the CPU continues to use the DDR.

- bw_step: All BW votes are rounded up to multiples of bw_step. The default
  value is 200 MB/s that turns out to ~25 or 12.5 MHz based on the SoC. A
  smaller value would mean more frequent bus BW changes. A higher value
  would mean less frequent BW vote updates, but also means at times an
  unnecessarily higher BW vote (due to the rounding up).

Change-Id: I88629a3e545cdca7160af8f8ca616ecc949d9947
Signed-off-by: Saravana Kannan <skannan@codeaurora.org>
[aparnam@codeaurora.org: Replaced snprintf with scnprintf]
Signed-off-by: Rama Aparna Mallavarapu <aparnam@codeaurora.org>
2019-01-17 11:13:49 -08:00
976f78d572 Merge 4.19.16 into android-4.19
Changes in 4.19.16
	Btrfs: fix deadlock when using free space tree due to block group creation
	staging: rtl8188eu: Fix module loading from tasklet for CCMP encryption
	staging: rtl8188eu: Fix module loading from tasklet for WEP encryption
	cpufreq: scmi: Fix frequency invariance in slow path
	x86, modpost: Replace last remnants of RETPOLINE with CONFIG_RETPOLINE
	ALSA: hda/realtek - Support Dell headset mode for New AIO platform
	ALSA: hda/realtek - Add unplug function into unplug state of Headset Mode for ALC225
	ALSA: hda/realtek - Disable headset Mic VREF for headset mode of ALC225
	CIFS: Fix adjustment of credits for MTU requests
	CIFS: Do not set credits to 1 if the server didn't grant anything
	CIFS: Do not hide EINTR after sending network packets
	CIFS: Fix credit computation for compounded requests
	cifs: Fix potential OOB access of lock element array
	usb: cdc-acm: send ZLP for Telit 3G Intel based modems
	USB: storage: don't insert sane sense for SPC3+ when bad sense specified
	USB: storage: add quirk for SMI SM3350
	USB: Add USB_QUIRK_DELAY_CTRL_MSG quirk for Corsair K70 RGB
	slab: alien caches must not be initialized if the allocation of the alien cache failed
	mm/usercopy.c: no check page span for stack objects
	mm, memcg: fix reclaim deadlock with writeback
	ACPI: power: Skip duplicate power resource references in _PRx
	ACPI / PMIC: xpower: Fix TS-pin current-source handling
	ACPI/IORT: Fix rc_dma_get_range()
	i2c: dev: prevent adapter retries and timeout being set as minus value
	mtd: rawnand: qcom: fix memory corruption that causes panic
	vfio/type1: Fix unmap overflow off-by-one
	drm/amdgpu: Add new VegaM pci id
	PCI: dwc: Use interrupt masking instead of disabling
	PCI: dwc: Take lock when ACKing an interrupt
	PCI: dwc: Move interrupt acking into the proper callback
	drm/amd/display: Fix MST dp_blank REG_WAIT timeout
	drm/fb_helper: Allow leaking fbdev smem_start
	drm/fb-helper: Partially bring back workaround for bugs of SDL 1.2
	drm/i915: Unwind failure on pinning the gen7 ppgtt
	drm/amdgpu: Don't ignore rc from drm_dp_mst_topology_mgr_resume()
	drm/amdgpu: Don't fail resume process if resuming atomic state fails
	rbd: don't return 0 on unmap if RBD_DEV_FLAG_REMOVING is set
	ext4: make sure enough credits are reserved for dioread_nolock writes
	ext4: fix a potential fiemap/page fault deadlock w/ inline_data
	ext4: avoid kernel warning when writing the superblock to a dead device
	ext4: use ext4_write_inode() when fsyncing w/o a journal
	ext4: track writeback errors using the generic tracking infrastructure
	ext4: fix special inode number checks in __ext4_iget()
	mm: page_mapped: don't assume compound page is huge or THP
	sunrpc: use-after-free in svc_process_common()
	KVM: arm/arm64: Fix VMID alloc race by reverting to lock-less
	arm64: compat: Don't pull syscall number from regs in arm_compat_syscall
	Btrfs: fix access to available allocation bits when starting balance
	Btrfs: fix deadlock when enabling quotas due to concurrent snapshot creation
	Btrfs: use nofs context when initializing security xattrs to avoid deadlock
	Linux 4.19.16

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2019-01-16 22:17:03 +01:00
44e7bab39f sunrpc: use-after-free in svc_process_common()
commit d4b09acf924b84bae77cad090a9d108e70b43643 upstream.

if node have NFSv41+ mounts inside several net namespaces
it can lead to use-after-free in svc_process_common()

svc_process_common()
        /* Setup reply header */
        rqstp->rq_xprt->xpt_ops->xpo_prep_reply_hdr(rqstp); <<< HERE

svc_process_common() can use incorrect rqstp->rq_xprt,
its caller function bc_svc_process() takes it from serv->sv_bc_xprt.
The problem is that serv is global structure but sv_bc_xprt
is assigned per-netnamespace.

According to Trond, the whole "let's set up rqstp->rq_xprt
for the back channel" is nothing but a giant hack in order
to work around the fact that svc_process_common() uses it
to find the xpt_ops, and perform a couple of (meaningless
for the back channel) tests of xpt_flags.

All we really need in svc_process_common() is to be able to run
rqstp->rq_xprt->xpt_ops->xpo_prep_reply_hdr()

Bruce J Fields points that this xpo_prep_reply_hdr() call
is an awfully roundabout way just to do "svc_putnl(resv, 0);"
in the tcp case.

This patch does not initialiuze rqstp->rq_xprt in bc_svc_process(),
now it calls svc_process_common() with rqstp->rq_xprt = NULL.

To adjust reply header svc_process_common() just check
rqstp->rq_prot and calls svc_tcp_prep_reply_hdr() for tcp case.

To handle rqstp->rq_xprt = NULL case in functions called from
svc_process_common() patch intruduces net namespace pointer
svc_rqst->rq_bc_net and adjust SVC_NET() definition.
Some other function was also adopted to properly handle described case.

Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
Cc: stable@vger.kernel.org
Fixes: 23c20ecd44 ("NFS: callback up - users counting cleanup")
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
v2: added lost extern svc_tcp_prep_reply_hdr()
Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-01-16 22:04:37 +01:00
893fdac4b4 Merge "cpufreq: schedutil: Avoid processing certain notifications" 2019-01-14 08:48:44 -08:00
ddf1170df9 Merge "cpufreq: Add snapshot of qcom-cpufreq driver" 2019-01-13 20:04:02 -08:00