From 294c61e2821b26ec41ae46ef4f57aa49cc3f48bf Mon Sep 17 00:00:00 2001 From: Srinivas Ramana Date: Fri, 13 May 2016 18:27:13 +0530 Subject: arm: fix the compilation error with trigger backtrace call arch_trigger_all_cpu_backtrace() takes a boolean on arm platforms. So, the trigger_all_cpu_backtrace() in nmi.h results in compilation error. Fix it. Change-Id: I9a1045333115ab1726f85e360ef0e302486341c4 Signed-off-by: Srinivas Ramana --- include/linux/nmi.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include/linux') diff --git a/include/linux/nmi.h b/include/linux/nmi.h index 9aeddb80cfd3..dbda77dc510c 100644 --- a/include/linux/nmi.h +++ b/include/linux/nmi.h @@ -41,7 +41,7 @@ static inline void hardlockup_detector_disable(void) {} #ifdef arch_trigger_all_cpu_backtrace static inline bool trigger_all_cpu_backtrace(void) { - #if defined(CONFIG_ARM) || defined(CONFIG_ARM64) + #if defined(CONFIG_ARM64) arch_trigger_all_cpu_backtrace(); #else arch_trigger_all_cpu_backtrace(true); @@ -51,7 +51,7 @@ static inline bool trigger_all_cpu_backtrace(void) } static inline bool trigger_allbutself_cpu_backtrace(void) { - #if defined(CONFIG_ARM) || defined(CONFIG_ARM64) + #if defined(CONFIG_ARM64) arch_trigger_all_cpu_backtrace(); #else arch_trigger_all_cpu_backtrace(false); -- cgit v1.2.3 From ecc070a294b046153cf0bdb1191c0db18fdf5ed9 Mon Sep 17 00:00:00 2001 From: Minchan Kim Date: Thu, 9 May 2013 16:21:24 +0900 Subject: mm: Per process reclaim These day, there are many platforms avaiable in the embedded market and they are smarter than kernel which has very limited information about working set so they want to involve memory management more heavily like android's lowmemory killer and ashmem or recent many lowmemory notifier. One of the simple imagine scenario about userspace's intelligence is that platform can manage tasks as forground and backgroud so it would be better to reclaim background's task pages for end-user's *responsibility* although it has frequent referenced pages. This patch adds new knob "reclaim under proc//" so task manager can reclaim any target process anytime, anywhere. It could give another method to platform for using memory efficiently. It can avoid process killing for getting free memory, which was really terrible experience because I lost my best score of game I had ever after I switch the phone call while I enjoyed the game. Reclaim file-backed pages only. echo file > /proc/PID/reclaim Reclaim anonymous pages only. echo anon > /proc/PID/reclaim Reclaim all pages echo all > /proc/PID/reclaim Change-Id: Iabdb7bc2ef3dc4d94e3ea005fbe18f4cd06739ab Signed-off-by: Minchan Kim Patch-mainline: linux-mm @ 9 May 2013 16:21:24 [vinmenon@codeaurora.org: trivial merge conflict fixes, and minor tweak of the commit msg] Signed-off-by: Vinayak Menon --- include/linux/rmap.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include/linux') diff --git a/include/linux/rmap.h b/include/linux/rmap.h index ddda2ac3446e..7536f000c77c 100644 --- a/include/linux/rmap.h +++ b/include/linux/rmap.h @@ -10,6 +10,10 @@ #include #include +extern int isolate_lru_page(struct page *page); +extern void putback_lru_page(struct page *page); +extern unsigned long reclaim_pages_from_list(struct list_head *page_list); + /* * The anon_vma heads a list of private "related" vmas, to scan if * an anonymous page pointing to this anon_vma needs to be unmapped: -- cgit v1.2.3 From 06de050ac6a250930f5b95dc153744d64dbc13c4 Mon Sep 17 00:00:00 2001 From: Minchan Kim Date: Thu, 9 May 2013 16:21:27 +0900 Subject: mm: Enhance per process reclaim to consider shared pages Some pages could be shared by several processes. (ex, libc) In case of that, it's too bad to reclaim them from the beginnig. This patch causes VM to keep them on memory until last task try to reclaim them so shared pages will be reclaimed only if all of task has gone swapping out. This feature doesn't handle non-linear mapping on ramfs because it's very time-consuming and doesn't make sure of reclaiming and not common. Change-Id: I7e5f34f2e947f5db6d405867fe2ad34863ca40f7 Signed-off-by: Sangseok Lee Signed-off-by: Minchan Kim Patch-mainline: linux-mm @ 9 May 2013 16:21:27 [vinmenon@codeaurora.org: trivial merge conflict fixes + changes to make the patch work with 3.18 kernel] Signed-off-by: Vinayak Menon --- include/linux/rmap.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'include/linux') diff --git a/include/linux/rmap.h b/include/linux/rmap.h index 7536f000c77c..e72b85737a99 100644 --- a/include/linux/rmap.h +++ b/include/linux/rmap.h @@ -12,7 +12,8 @@ extern int isolate_lru_page(struct page *page); extern void putback_lru_page(struct page *page); -extern unsigned long reclaim_pages_from_list(struct list_head *page_list); +extern unsigned long reclaim_pages_from_list(struct list_head *page_list, + struct vm_area_struct *vma); /* * The anon_vma heads a list of private "related" vmas, to scan if @@ -180,7 +181,8 @@ int page_referenced(struct page *, int is_locked, #define TTU_ACTION(x) ((x) & TTU_ACTION_MASK) -int try_to_unmap(struct page *, enum ttu_flags flags); +int try_to_unmap(struct page *, enum ttu_flags flags, + struct vm_area_struct *vma); /* * Used by uprobes to replace a userspace page safely @@ -236,6 +238,7 @@ int page_mapped_in_vma(struct page *page, struct vm_area_struct *vma); */ struct rmap_walk_control { void *arg; + struct vm_area_struct *target_vma; int (*rmap_one)(struct page *page, struct vm_area_struct *vma, unsigned long addr, void *arg); int (*done)(struct page *page); @@ -259,7 +262,7 @@ static inline int page_referenced(struct page *page, int is_locked, return 0; } -#define try_to_unmap(page, refs) SWAP_FAIL +#define try_to_unmap(page, refs, vma) SWAP_FAIL static inline int page_mkclean(struct page *page) { -- cgit v1.2.3 From 172a53173c8eb06e46a00affb80dca1ba4239d60 Mon Sep 17 00:00:00 2001 From: Rajendra Nayak Date: Mon, 14 Dec 2015 11:47:10 +0530 Subject: clk: qcom: rpmcc: Add rpm clock data for msm8996 Add all RPM clock data for msm8996 family of devices ToDo: Adapt to changes needed for RPM over GLINK against RPM over SMD that the driver currently supports Change-Id: Ib095af601a4f03d866cf94c8e277d04630abb42b Signed-off-by: Rajendra Nayak Signed-off-by: Taniya Das --- include/linux/soc/qcom/smd-rpm.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include/linux') diff --git a/include/linux/soc/qcom/smd-rpm.h b/include/linux/soc/qcom/smd-rpm.h index 2a53dcaeeeed..ebdabd669d93 100644 --- a/include/linux/soc/qcom/smd-rpm.h +++ b/include/linux/soc/qcom/smd-rpm.h @@ -26,6 +26,10 @@ struct qcom_smd_rpm; #define QCOM_SMD_RPM_SMPB 0x62706d73 #define QCOM_SMD_RPM_SPDM 0x63707362 #define QCOM_SMD_RPM_VSA 0x00617376 +#define QCOM_SMD_RPM_MMAXI_CLK 0x69786d6d +#define QCOM_SMD_RPM_IPA_CLK 0x617069 +#define QCOM_SMD_RPM_CE_CLK 0x6563 +#define QCOM_SMD_RPM_AGGR_CLK 0x72676761 int qcom_rpm_smd_write(struct qcom_smd_rpm *rpm, int state, -- cgit v1.2.3