Commit graph

892,354 commits

Author SHA1 Message Date
Pavel Tatashin
fe78103d5e mm/memory_hotplug: drain per-cpu pages again during memory offline
There is a race during page offline that can lead to infinite loop:
a page never ends up on a buddy list and __offline_pages() keeps
retrying infinitely or until a termination signal is received.

Thread#1 - a new process:

load_elf_binary
 begin_new_exec
  exec_mmap
   mmput
    exit_mmap
     tlb_finish_mmu
      tlb_flush_mmu
       release_pages
        free_unref_page_list
         free_unref_page_prepare
          set_pcppage_migratetype(page, migratetype);
             // Set page->index migration type below  MIGRATE_PCPTYPES

Thread#2 - hot-removes memory
__offline_pages
  start_isolate_page_range
    set_migratetype_isolate
      set_pageblock_migratetype(page, MIGRATE_ISOLATE);
        Set migration type to MIGRATE_ISOLATE-> set
        drain_all_pages(zone);
             // drain per-cpu page lists to buddy allocator.

Thread#1 - continue
         free_unref_page_commit
           migratetype = get_pcppage_migratetype(page);
              // get old migration type
           list_add(&page->lru, &pcp->lists[migratetype]);
              // add new page to already drained pcp list

Thread#2
Never drains pcp again, and therefore gets stuck in the loop.

The fix is to try to drain per-cpu lists again after
check_pages_isolated_cb() fails.

Change-Id: I7d9b42fdbf436458242385f795126e42294562b1
Fixes: c52e75935f ("mm: remove extra drain pages on pcp list")
Signed-off-by: Pavel Tatashin <pasha.tatashin@soleen.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Acked-by: David Rientjes <rientjes@google.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Acked-by: Michal Hocko <mhocko@suse.com>
Acked-by: David Hildenbrand <david@redhat.com>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Wei Yang <richard.weiyang@gmail.com>
Cc: <stable@vger.kernel.org>
Link: https://lkml.kernel.org/r/20200903140032.380431-1-pasha.tatashin@soleen.com
Link: https://lkml.kernel.org/r/20200904151448.100489-2-pasha.tatashin@soleen.com
Link: http://lkml.kernel.org/r/20200904070235.GA15277@dhcp22.suse.cz
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Git-Commit: 9683182612214aa5f5e709fad49444b847cd866a
Git-Repo: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
Signed-off-by: Charan Teja Reddy <charante@codeaurora.org>
2020-11-23 17:03:25 +05:30
qctecmdr
e0f5b51058 Merge "clk: qcom: clk-debug: Add support for debug clock API's" 2020-11-19 14:10:19 -08:00
qctecmdr
d4154e6672 Merge "pinctrl: qcom: Add support for Monaco SoC pin control" 2020-11-19 14:10:18 -08:00
qctecmdr
815d09f601 Merge "net: Changes to support Shortcut Forward Engine" 2020-11-19 14:10:17 -08:00
qctecmdr
1d6b783303 Merge "bridge: Add bridge API to access the bridge slave port" 2020-11-19 14:10:16 -08:00
qctecmdr
e61a99a64e Merge "msm: kgsl: Disable gpu_llc flags by default" 2020-11-19 14:10:16 -08:00
qctecmdr
f74ca3bb50 Merge "arm64: defconfig: Enable CRYPTO_SHA1_ARM64_CE algorithm" 2020-11-19 14:10:16 -08:00
qctecmdr
a8aba15775 Merge "usb: dwc3: add DWC3_CONTROLLER_PULLUP event" 2020-11-19 10:34:33 -08:00
qctecmdr
ac721dc63f Merge "defconfig: sdxlemur: Enable writeable thermal zone trips" 2020-11-19 10:34:32 -08:00
qctecmdr
5c6fcbcc1b Merge "msm: ipa4: mhi qmap flow control pipe definitions for LE" 2020-11-19 10:34:32 -08:00
qctecmdr
15d2f647b5 Merge "defconfig: arm64: Enable DDR cooling device for lahaina" 2020-11-19 10:34:32 -08:00
qctecmdr
6f437f7519 Merge "usb: dwc3: Add support for nominal elastic buffer" 2020-11-19 10:34:31 -08:00
qctecmdr
a1702cebeb Merge "spi: spi-msm-geni: Clear the RX fifo if FIFO has data after timeout" 2020-11-19 06:55:49 -08:00
qctecmdr
2113e65f7b Merge "drivers: thermal: qmi_sensor: Add support for extended sensor list" 2020-11-19 06:55:48 -08:00
qctecmdr
376dd78d67 Merge "defconfig: Enable USB BAM on sdxlemur" 2020-11-19 03:06:15 -08:00
qctecmdr
bba65054f1 Merge "mm: Kconfig: Add support for config size of purging vmap_area" 2020-11-19 03:06:14 -08:00
qctecmdr
5cc19bc1b5 Merge "sched: Fix "releasing a pinned lock" lockdep warning" 2020-11-18 22:31:08 -08:00
qctecmdr
d9b738bc54 Merge "ion: Check for valid vmids for msm system heap" 2020-11-18 22:31:07 -08:00
qctecmdr
2da0027008 Merge "msm: ipa3: Define ipa_get_wdi_version method" 2020-11-18 22:31:07 -08:00
qctecmdr
4a9a5a5300 Merge "pci: msm: Dump PCIe registers to debug linkdown" 2020-11-18 22:31:07 -08:00
qctecmdr
6dd629487f Merge "mmc: core: Add debug enhancement logs" 2020-11-18 01:48:37 -08:00
qctecmdr
070943a3f7 Merge "fsa4480: Resolve euro usb analog headset detect issue after PDR" 2020-11-18 01:48:37 -08:00
Sachin Grover
3c775579c0 arm64: defconfig: Enable CRYPTO_SHA1_ARM64_CE algorithm
This is to enable SHA-1 digest algorithm (ARMv8 Crypto Extensions).

Change-Id: I04146376bbd22682f729f1617ab4dfaae3beda24
Signed-off-by: Sachin Grover <sgrover@codeaurora.org>
2020-11-18 01:14:22 -08:00
Pavankumar Kondeti
c83a851f7d sched: Fix "releasing a pinned lock" lockdep warning
WALT requires both src and dst runqueue locks to be held
during migration. So a double_lock_balance() is added
in move_queued_task() before calling set_task_cpu(). However,
releasing the src rq lock, which is pinned is giving a
lockdep warning. Fix this by unpinning the lock before
calling double_lock_balance.

Change-Id: I64dec0701b3467185cf53f311ebb521c6a822e88
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
2020-11-18 08:58:35 +05:30
qctecmdr
ce480240e1 Merge "dt-bindings: clock: Update clock ids of GPUCC for YUPIK" 2020-11-17 17:05:50 -08:00
qctecmdr
03d0199dd1 Merge "dma: gpi: Correct the return code in dmaengine_pause api" 2020-11-17 17:05:50 -08:00
qctecmdr
53c40d0501 Merge "mmc: sdhci-msm: Use auto suspend instead of sync" 2020-11-17 17:05:49 -08:00
qctecmdr
37c562ad9d Merge "mmc: sdhci-msm: Set PWRSAVE bit to '0' during tuning" 2020-11-17 17:05:49 -08:00
qctecmdr
b414bf80c4 Merge "tzlog: Update structs as per the new requests" 2020-11-17 17:05:49 -08:00
qctecmdr
756b932c44 Merge "serial: msm_geni_serial: Add enable/disable of dma irq bits" 2020-11-17 17:05:48 -08:00
qctecmdr
6652990708 Merge "msm: kgsl: Increase MAX_PWRLEVELS Limit" 2020-11-17 17:05:48 -08:00
qctecmdr
61717f9f5f Merge "soc: qcom: msm_perf: enable msm_perf driver on default config" 2020-11-17 17:05:48 -08:00
qctecmdr
2f8aed210e Merge "msm: msm-geni-se: Add proxy votes to fix earlycon crash" 2020-11-17 17:05:47 -08:00
Guru Das Srinagesh
89b3ff97d2 defconfig: sdxlemur: Enable writeable thermal zone trips
Enable setting trip thresholds in thermal zones for debug purposes.

Change-Id: Ifbd154ba343a319cbd9ddca24efe539db557abbd
Signed-off-by: Guru Das Srinagesh <gurus@codeaurora.org>
2020-11-17 16:59:54 -08:00
Linyu Yuan
163554e4c7 usb: dwc3: add DWC3_CONTROLLER_PULLUP event
when gadget pullup, add this event allow redriver
do some operation according to the pullup state.

Change-Id: I9cbd3f9e95aae327e1f872aff7ebff7a8926e5a5
Signed-off-by: Linyu Yuan <linyyuan@codeaurora.org>
2020-11-17 16:50:40 -08:00
Linyu Yuan
f3872ee37a usb: misc: nb7vpq904m: fix issue when connect USB hub
when redriver connect to a USB hub, and do adb root operation,
due to redriver rx termination detection issue,
hub will not detct device logical removal.
workaround to temp disable/enable redriver when usb pullup operation.

Change-Id: Ia3b0c99a28dd7d0601e7c5bcc612c4c48447c165
Signed-off-by: Linyu Yuan <linyyuan@codeaurora.org>
2020-11-17 16:49:56 -08:00
qctecmdr
49b2e4a13c Merge "f_fs: fix scheduling while atomic issue of ffs_epfile_io()" 2020-11-17 13:29:01 -08:00
qctecmdr
55b65a4d60 Merge "defconfig: sdxlemur: Allow writing to regmap only on debug builds" 2020-11-17 13:29:01 -08:00
qctecmdr
4c48eb3326 Merge "icnss2: Avoid sending qdss_trace_mem_info to fw if it is down" 2020-11-17 13:29:00 -08:00
qctecmdr
003a1824ff Merge "msm: kgsl: Properly set fault bit in adreno_set_gpu_fault" 2020-11-17 13:29:00 -08:00
qctecmdr
2129bf638c Merge "cfg80211: Add support to calculate and report 4096-QAM HE rates" 2020-11-17 13:29:00 -08:00
qctecmdr
f6b4905d47 Merge "input: touchscreen: mxt: remove disable_irq" 2020-11-17 13:28:59 -08:00
qctecmdr
9a71644291 Merge "i2c: i2c-msm-geni: Wait for abort command completion" 2020-11-17 13:28:59 -08:00
Pooja Kumari
63b2502945 msm: ipa3: Define ipa_get_wdi_version method
Define ipa_get_wdi_version method in framework
context to get wdi version.

Change-Id: I4ba2a340bfa33eb089da40f1b7460d3395c365f4
Signed-off-by: Pooja Kumari <kumarip@codeaurora.org>
2020-11-17 09:01:14 -08:00
Jagadeesh Kona
893c1f5b78 clk: qcom: clk-debug: Add support for debug clock API's
Add support for qcom_clk_dump and qcom_clk_bulk_dump API's
which can be used by the clients to dump the registers
associated with the clock and it's parents.

Change-Id: Iea7f30bb4e789e41dbae41b88514ffd53c136174
Signed-off-by: Jagadeesh Kona <jkona@codeaurora.org>
2020-11-17 08:48:25 -08:00
Rohan Sethi
48915f6884 msm: kgsl: Disable gpu_llc flags by default
Fixes inconsistency in previous change.

Change-Id: I793532e648a8c6f5db5f3bf899d56b3517e55897
Fixes: 4cc9960429 ("msm: kgsl: Disable gpu_llc flags by default")
Signed-off-by: Rohan Sethi <rohsethi@codeaurora.org>
2020-11-17 22:18:21 +05:30
qctecmdr
e915fc5948 Merge "msm: kgsl: Add a Kconfig setting for GPU idle timeout" 2020-11-17 05:57:29 -08:00
qctecmdr
c496ba6c04 Merge "arm: defconfig: Enable QRTR MHI for sdxlemur" 2020-11-17 05:57:29 -08:00
qctecmdr
fee2b06454 Merge "icc: dt-bindings: add endpoint IDs for interconnects for SM8150" 2020-11-17 05:57:29 -08:00
qctecmdr
704966b60e Merge "cnss2: Avoid suspending PCIe after QMI send get is called" 2020-11-17 05:57:29 -08:00