kernelsu: Prevent Termux crashing phone via devpts#10
Open
danielzgtg wants to merge 650 commits intocrdroidandroid:16.0from
Open
kernelsu: Prevent Termux crashing phone via devpts#10danielzgtg wants to merge 650 commits intocrdroidandroid:16.0from
danielzgtg wants to merge 650 commits intocrdroidandroid:16.0from
Conversation
* Taken as of HEAD 8b3b0f2a448982699cfd8f529e86d474a58c8214
("ANDROID: Pixel: Add missing symbol to symbol list")
* Place it in a subfolder, to avoid conflicts when merging upstream
Change-Id: If00e90a06ec5b234c9eb4032d6b6fa5c98fb6055
Signed-off-by: Cyber Knight <cyberknight755@gmail.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Change-Id: Ib4ce3f6d34ca5ea0c52bec99618a16ae74180f55 Signed-off-by: Cyber Knight <cyberknight755@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Change-Id: Iacf1391b8b076efc260290d8e19bb12dff9cfac6 Signed-off-by: Cyber Knight <cyberknight755@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Cyber Knight <cyberknight755@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
* Doesn't work here Change-Id: Id4eeec26ee7d48db4bf8d0d8b1c8a364c915711f Signed-off-by: Cyber Knight <cyberknight755@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Currently, if a USB request that was queued by Raw Gadget is interrupted (via a signal), wait_for_completion_interruptible returns -ERESTARTSYS. Raw Gadget then attempts to propagate this value to userspace as a return value from its ioctls. However, when -ERESTARTSYS is returned by a syscall handler, the kernel internally restarts the syscall. This doesn't allow userspace applications to interrupt requests queued by Raw Gadget (which is required when the emulated device is asked to switch altsettings). It also violates the implied interface of Raw Gadget that a single ioctl must only queue a single USB request. Instead, make Raw Gadget do what GadgetFS does: check whether the request was interrupted (dequeued with status == -ECONNRESET) and report -EINTR to userspace. Bug: 254441685 Fixes: f2c2e71 ("usb: gadget: add raw-gadget interface") Cc: stable <stable@kernel.org> Signed-off-by: Andrey Konovalov <andreyknvl@gmail.com> Link: https://lore.kernel.org/r/0db45b1d7cc466e3d4d1ab353f61d63c977fbbc5.1698350424.git.andreyknvl@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit e8033bde451eddfb9b1bbd6e2d848c1b5c277222) Signed-off-by: Lee Jones <joneslee@google.com> Change-Id: If8724001949230e99e44dfb8b65c545e573a2ca0 Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
The uvc_format_desc, GUID defines and the uvc_format_by_guid helper is also useful for the uvc gadget stack. This patch moves them to a common header. Tested-by: Daniel Scally <dan.scally@ideasonboard.com> Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com> Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de> Link: https://lore.kernel.org/r/20220909221335.15033-3-m.grzeschik@pengutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 6b028df7d466a5f7c0263a46256c9bdc42debd9f) arakesh: resolved minor conflicts in drivers/media/usb/uvc/uvc_driver.c and drivers/media/usb/uvc/uvcvideo.h Bug: 259171206 Change-Id: I37b839850896fff279159fca93a50f4788184354 Signed-off-by: Avichal Rakesh <arakesh@google.com>
… v4l2-common The functions uvc_simplify_fraction and uvc_fraction_to_interval are generic helpers which are also useful for other v4l2 drivers. This patch moves them to v4l2-common. Tested-by: Daniel Scally <dan.scally@ideasonboard.com> Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com> Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de> Link: https://lore.kernel.org/r/20220909221335.15033-2-m.grzeschik@pengutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 6ba8b8d45335180523df8f1b6cd1c995a3dbf560) arakesh: resolved minor conflicts in include/media/v4l2-common.h and drivers/media/v4l2-core/v4l2-common.c Bug: 259171206 Change-Id: I17eea1ef6788ba98599b1d8a12499147ebef7d60 Signed-off-by: Avichal Rakesh <arakesh@google.com> Signed-off-by: Cyber Knight <cyberknight755@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Change-Id: I16dd2ad679fbacb8332248222e5d7483ec088f01 Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Bug: 117152549 Change-Id: Icebd2544eb4e1230a2f8b0334818b6148c8e9bd1 Signed-off-by: Wei Wang <wvw@google.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
The msm_performance module is only used by QCOM perfd, so remove it. Test: reboot, basic operation Bug: 74924977 Change-Id: I765d43cdb2d6faba829717a811a64ccce6eb7ffd Signed-off-by: Rick Yiu <rickyiu@google.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
This doesn't work, so there's no point in keeping it enabled. Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com> Change-Id: I9536119374fa80881eea2de20b62314a9398d28b Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Disable QC customized config to align upstream behavior Bug: 158449887 Test: boot Signed-off-by: Martin Liu <liumartin@google.com> Change-Id: I015219b9be587fd4bd89adc6f15450569b842074 Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
- The patches for SPF is either broken or unfinished. - Disable the SPF until it has been fixed in upcoming upstream changes. - Enabling SPF induces following call trace. [ 1.387822] WARNING: CPU: 6 PID: 1 at include/linux/mm.h:1507 free_pgtables+0xf8/0x12c [ 1.387831] CPU: 6 PID: 1 Comm: init Tainted: G S 4.19.288-perf-@fda9487a crdroidandroid#1 [ 1.387833] Hardware name: Qualcomm Technologies, Inc. Gauguin (DT) [ 1.387836] pstate: 20400005 (nzCv daif +PAN -UAO) [ 1.387838] pc : free_pgtables+0xf8/0x12c [ 1.387842] lr : exit_mmap+0xfc/0x1c8 [ 1.387844] sp : ffffff801005baf0 [ 1.387846] x29: ffffff801005baf0 x28: ffffffceebce2500 [ 1.387848] x27: ffffff8010058000 x26: 0000000000000001 [ 1.387850] x25: ffffffa567457878 x24: ffffffceebda81c0 [ 1.387853] x23: 0000000000200000 x22: ffffffceebda80e0 [ 1.387855] x21: ffffff801005bb30 x20: 0000000000000000 [ 1.387857] x19: 0000000000000000 x18: 0000000000000008 [ 1.387859] x17: 4e46ff73686d682e x16: 0000800000000000 [ 1.387861] x15: 0000007ff2825fc8 x14: ffffffffffffffff [ 1.387863] x13: 0000000000000001 x12: 00000000ffffffc8 [ 1.387865] x11: ffffffceec91e000 x10: 00000000000001fe [ 1.387867] x9 : ffffffceebda81e1 x8 : 0000000000000000 [ 1.387869] x7 : 0000000000000038 x6 : ffffffceecbdce30 [ 1.387871] x5 : 00000000001bffc8 x4 : 0000000000000000 [ 1.387872] x3 : 0000000000000000 x2 : 0000000000000000 [ 1.387874] x1 : ffffffceebda80e0 x0 : ffffff801005bb30 [ 1.387877] Call trace: [ 1.387879] free_pgtables+0xf8/0x12c [ 1.387881] exit_mmap+0xfc/0x1c8 [ 1.387884] mmput+0x40/0xd8 [ 1.387889] flush_old_exec+0x620/0x750 [ 1.387892] load_elf_binary+0x2c4/0xa28 [ 1.387895] search_binary_handler+0x80/0x10c [ 1.387897] exec_binprm+0x4c/0x160 [ 1.387899] __do_execve_file+0x3fc/0x554 [ 1.387902] __arm64_sys_execve+0x48/0x58 [ 1.387905] el0_svc_common+0x88/0xf8 [ 1.387908] el0_svc_handler+0x60/0x78 [ 1.387911] el0_svc+0x8/0x380 [ 1.387912] ---[ end trace 11e8de453eec4872 ]--- Change-Id: Ie4384d721b285f90153804bd0d62c52aef1b1e73 Signed-off-by: hridaya <info.hridayaprajapati@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Change-Id: Iae7e7abf62af73dc337ceab487ffe6a4d4ef7721 Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Change-Id: Ic91409309634b8ac3a411bf82c5de421da8fedd4 Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Qualcomm's LLCC controller does not have an error IRQ line and instead polls to check memory banks for errors every 5 seconds, which is inefficient and will add to system jitter. The generic Kryo CPU cache controller does have error IRQ lines so it doesn't need to use polling, but EDAC in general is fairly useless in its current state anyway because Google disabled the option to panic on uncorrectable error. Let's follow their decision and just disable EDAC entirely, as well as its placeholder RAS dependency. Change-Id: I236df9ca7b43a3a5090b5ae303eed933d7f9db94 Signed-off-by: Danny Lin <danny@kdrag0n.dev> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
* Debug dumps are heavy and relatively slow down the CPU. Change-Id: If2ff1de3945956ae127998af3a8de366e883ec6c Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
The event timer driver is accessed directly from CPU idle and is not RT-friendly. Since the event timer is only used by the old MDSS driver, just remove it since it's unused on sm6150. Change-Id: Idfea73f4b05bcaa41ffb0ceeb73de2eb8757110e Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Change-Id: I16944e66227b45c6af80ab981b457d76b0ab3133 Signed-off-by: Juhyung Park <qkrwngud825@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
CONFIG_QCOM_MEMORY_DUMP_V2 is not set This can prove to be useful in staging state but not in production. Change-Id: I0433698419c94850e2b2b78d1c784494cbb1b09b Signed-off-by: Divyanshu-Modi <divyan.m05@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Even with the arm64 optimized implementation, these refcount checks are slow enough to show up on perf top. Disable them. Change-Id: I60ad116eba833d50000084f957dec33b45ddd448 Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
This causes load spikes when the per-CPU partial caches are filled and need to be drained, which is bad for maintaining low latency. Change-Id: Id45a4d6c93fce63015c5b401c010945c03046fdf Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Change-Id: I50b179fe2f16f7c457c44e183b4e34d5684c2bb4 Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Change-Id: I122683f1e0a4b9554ce179c372daf159b8658c0b Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Change-Id: I7d439285752fa01a0d0ce5c3418f26a06b68131b Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Fix: E IptablesRestoreController: ------- ERROR ------- E IptablesRestoreController: Warning: Extension CONNMARK is not supported, missing kernel module? Change-Id: I60aeaa4223c214657dc855f4647d0f4dbe17bfbe
Make: export ARCH=arm64 make lineage_sm8150_defconfig make savedefconfig Change-Id: I33ade2eb74a66ac08103df9b778e3b62221c4b94
There's no reason why the absence of debugfs should cause the GPU driver to break. Fix it. Change-Id: I3c7e8ba241e154e4cc7d1338ffeef42a66347593 Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
The read_from_bdev_async is not called on atomic context. So GFP_NOIO is available rather than GFP_ATOMIC. If there were reclaimable pages with GFP_NOIO, we can avoid allocation failure and page fault failure. Link: https://lkml.kernel.org/r/20210908005241.28062-1-jaewon31.kim@samsung.com Signed-off-by: Jaewon Kim <jaewon31.kim@samsung.com> Reported-by: Yong-Taek Lee <ytk.lee@samsung.com> Acked-by: Minchan Kim <minchan@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
zram_table_entry::flags stores object size in the lower bits and zram pageflags in the upper bits. However, for some reason, we use 24 lower bits, while maximum zram object size is PAGE_SIZE, which requires PAGE_SHIFT bits (up to 16 on arm64). This wastes 24 - PAGE_SHIFT bits that we can use for additional zram pageflags instead. Also add a BUILD_BUG_ON() to alert us should we run out of bits in zram_table_entry::flags. Link: https://lkml.kernel.org/r/20220912152744.527438-1-senozhatsky@chromium.org Signed-off-by: Sergey Senozhatsky <senozhatsky@chromium.org> Reviewed-by: Brian Geffon <bgeffon@google.com> Acked-by: Minchan Kim <minchan@kernel.org> Cc: Nitin Gupta <ngupta@vflare.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
In certain scenarios I2C writes fail with ENOTCONN errors, but succeed if retried shortly after. Change-Id: Ie151caca66298e5361c2d932206165f9be08d3a6 | AOSP Signed-off-by: danielml <daniel@danielml.es>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
KernelSU requires struct seccomp to have atomic_t filter_count , but this field is missing on NON-GKI kernels. Adding the field fixes build errors such as: error: no member named 'filter_count' in 'struct seccomp' Reference: tiann/KernelSU#2708 Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Sometimes we want to opportunistically get a ref to a cred in an rcu_read_lock protected section. get_task_cred() does this, and NFS does as similar thing with its own credential structures. To prepare for NFS converting to use 'struct cred' more uniformly, define get_cred_rcu(), and use it in get_task_cred(). Signed-off-by: NeilBrown <neilb@suse.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com> [neobuddy89: Backport for KernelSU-Next] Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com> Change-Id: Ie8dfc33f2beac76429b1d2eb005ae1d0f25824b3
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
seq_put_decimal_ull_w(m, str, val, width) prints a decimal number with a
specified minimal field width.
It is equivalent of seq_printf(m, "%s%*d", str, width, val), but it
works much faster.
== test_smaps.py
num = 0
with open("/proc/1/smaps") as f:
for x in xrange(10000):
data = f.read()
f.seek(0, 0)
==
== Before patch ==
$ time python test_smaps.py
real 0m4.593s
user 0m0.398s
sys 0m4.158s
== After patch ==
$ time python test_smaps.py
real 0m3.828s
user 0m0.413s
sys 0m3.408s
$ perf -g record python test_smaps.py
== Before patch ==
- 79.01% 3.36% python [kernel.kallsyms] [k] show_smap.isra.33
- 75.65% show_smap.isra.33
+ 48.85% seq_printf
+ 15.75% __walk_page_range
+ 9.70% show_map_vma.isra.23
0.61% seq_puts
== After patch ==
- 75.51% 4.62% python [kernel.kallsyms] [k] show_smap.isra.33
- 70.88% show_smap.isra.33
+ 24.82% seq_put_decimal_ull_w
+ 19.78% __walk_page_range
+ 12.74% seq_printf
+ 11.08% show_map_vma.isra.23
+ 1.68% seq_puts
[akpm@linux-foundation.org: fix drivers/of/unittest.c build]
Link: http://lkml.kernel.org/r/20180212074931.7227-1-avagin@openvz.org
Signed-off-by: Andrei Vagin <avagin@openvz.org>
Cc: Alexey Dobriyan <adobriyan@gmail.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
seq_put_hex_ll() prints a number in hexadecimal notation and works
faster than seq_printf().
== test.py
num = 0
with open("/proc/1/maps") as f:
while num < 10000 :
data = f.read()
f.seek(0, 0)
num = num + 1
==
== Before patch ==
$ time python test.py
real 0m1.561s
user 0m0.257s
sys 0m1.302s
== After patch ==
$ time python test.py
real 0m0.986s
user 0m0.279s
sys 0m0.707s
$ perf -g record python test.py:
== Before patch ==
- 67.42% 2.82% python [kernel.kallsyms] [k] show_map_vma.isra.22
- 64.60% show_map_vma.isra.22
- 44.98% seq_printf
- seq_vprintf
- vsnprintf
+ 14.85% number
+ 12.22% format_decode
5.56% memcpy_erms
+ 15.06% seq_path
+ 4.42% seq_pad
+ 2.45% __GI___libc_read
== After patch ==
- 47.35% 3.38% python [kernel.kallsyms] [k] show_map_vma.isra.23
- 43.97% show_map_vma.isra.23
+ 20.84% seq_path
- 15.73% show_vma_header_prefix
10.55% seq_put_hex_ll
+ 2.65% seq_put_decimal_ull
0.95% seq_putc
+ 6.96% seq_pad
+ 2.94% __GI___libc_read
[avagin@openvz.org: use unsigned int instead of int where it is suitable]
Link: http://lkml.kernel.org/r/20180214025619.4005-1-avagin@openvz.org
[avagin@openvz.org: v2]
Link: http://lkml.kernel.org/r/20180117082050.25406-1-avagin@openvz.org
Link: http://lkml.kernel.org/r/20180112185812.7710-1-avagin@openvz.org
Signed-off-by: Andrei Vagin <avagin@openvz.org>
Cc: Alexey Dobriyan <adobriyan@gmail.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Patch series "cleanups and refactor of /proc/pid/smaps*". The recent regression in /proc/pid/smaps made me look more into the code. Especially the issues with smaps_rollup reported in [1] as explained in Patch 4, which fixes them by refactoring the code. Patches 2 and 3 are preparations for that. Patch 1 is me realizing that there's a lot of boilerplate left from times where we tried (unsuccessfuly) to mark thread stacks in the output. Originally I had also plans to rework the translation from /proc/pid/*maps* file offsets to the internal structures. Now the offset means "vma number", which is not really stable (vma's can come and go between read() calls) and there's an extra caching of last vma's address. My idea was that offsets would be interpreted directly as addresses, which would also allow meaningful seeks (see the ugly seek_to_smaps_entry() in tools/testing/selftests/vm/mlock2.h). However loff_t is (signed) long long so that might be insufficient somewhere for the unsigned long addresses. So the result is fixed issues with skewed /proc/pid/smaps_rollup results, simpler smaps code, and a lot of unused code removed. [1] https://marc.info/?l=linux-mm&m=151927723128134&w=2 This patch (of 4): Commit b764375 ("procfs: mark thread stack correctly in proc/<pid>/maps") introduced differences between /proc/PID/maps and /proc/PID/task/TID/maps to mark thread stacks properly, and this was also done for smaps and numa_maps. However it didn't work properly and was ultimately removed by commit b18cb64 ("fs/proc: Stop trying to report thread stacks"). Now the is_pid parameter for the related show_*() functions is unused and we can remove it together with wrapper functions and ops structures that differ for PID and TID cases only in this parameter. Link: http://lkml.kernel.org/r/20180723111933.15443-2-vbabka@suse.cz Signed-off-by: Vlastimil Babka <vbabka@suse.cz> Reviewed-by: Alexey Dobriyan <adobriyan@gmail.com> Cc: Daniel Colascione <dancol@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
To prepare for handling /proc/pid/smaps_rollup differently from /proc/pid/smaps factor out vma mem stats gathering from show_smap() - it will be used by both. Link: http://lkml.kernel.org/r/20180723111933.15443-3-vbabka@suse.cz Signed-off-by: Vlastimil Babka <vbabka@suse.cz> Reviewed-by: Alexey Dobriyan <adobriyan@gmail.com> Cc: Daniel Colascione <dancol@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
To prepare for handling /proc/pid/smaps_rollup differently from /proc/pid/smaps factor out from show_smap() printing the parts of output that are common for both variants, which is the bulk of the gathered memory stats. [vbabka@suse.cz: add const, per Alexey] Link: http://lkml.kernel.org/r/b45f319f-cd04-337b-37f8-77f99786aa8a@suse.cz Link: http://lkml.kernel.org/r/20180723111933.15443-4-vbabka@suse.cz Signed-off-by: Vlastimil Babka <vbabka@suse.cz> Reviewed-by: Alexey Dobriyan <adobriyan@gmail.com> Cc: Daniel Colascione <dancol@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
The /proc/pid/smaps_rollup file is currently implemented via the m_start/m_next/m_stop seq_file iterators shared with the other maps files, that iterate over vma's. However, the rollup file doesn't print anything for each vma, only accumulate the stats. There are some issues with the current code as reported in [1] - the accumulated stats can get skewed if seq_file start()/stop() op is called multiple times, if show() is called multiple times, and after seeks to non-zero position. Patch [1] fixed those within existing design, but I believe it is fundamentally wrong to expose the vma iterators to the seq_file mechanism when smaps_rollup shows logically a single set of values for the whole address space. This patch thus refactors the code to provide a single "value" at offset 0, with vma iteration to gather the stats done internally. This fixes the situations where results are skewed, and simplifies the code, especially in show_smap(), at the expense of somewhat less code reuse. [1] https://marc.info/?l=linux-mm&m=151927723128134&w=2 [vbabka@suse.c: use seq_file infrastructure] Link: http://lkml.kernel.org/r/bf4525b0-fd5b-4c4c-2cb3-adee3dd95a48@suse.cz Link: http://lkml.kernel.org/r/20180723111933.15443-5-vbabka@suse.cz Signed-off-by: Vlastimil Babka <vbabka@suse.cz> Reported-by: Daniel Colascione <dancol@google.com> Reviewed-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Consolidate the pkey handling by providing a common empty definition of vma_pkey() in pkeys.h when CONFIG_ARCH_HAS_PKEYS=n. This also removes another entanglement of pkeys.h and asm/mmu_context.h. Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Reviewed-by: Ram Pai <linuxram@us.ibm.com> Reviewed-by: Dave Hansen <dave.hansen@intel.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Add an empty arch_pkeys_enabled() in linux/pkeys.h for the CONFIG_ARCH_HAS_PKEYS=n case. Split out of a patch by Ram Pai <linuxram@us.ibm.com>. Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Reviewed-by: Dave Hansen <dave.hansen@intel.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Report separate components (anon, file, and shmem) for PSS in smaps_rollup. This helps understand and tune the memory manager behavior in consumer devices, particularly mobile devices. Many of them (e.g. chromebooks and Android-based devices) use zram for anon memory, and perform disk reads for discarded file pages. The difference in latency is large (e.g. reading a single page from SSD is 30 times slower than decompressing a zram page on one popular device), thus it is useful to know how much of the PSS is anon vs. file. All the information is already present in /proc/pid/smaps, but much more expensive to obtain because of the large size of that procfs entry. This patch also removes a small code duplication in smaps_account, which would have gotten worse otherwise. Also updated Documentation/filesystems/proc.txt (the smaps section was a bit stale, and I added a smaps_rollup section) and Documentation/ABI/testing/procfs-smaps_rollup. [semenzato@chromium.org: v5] Link: http://lkml.kernel.org/r/20190626234333.44608-1-semenzato@chromium.org Link: http://lkml.kernel.org/r/20190626180429.174569-1-semenzato@chromium.org Signed-off-by: Luigi Semenzato <semenzato@chromium.org> Acked-by: Yu Zhao <yuzhao@chromium.org> Cc: Sonny Rao <sonnyrao@chromium.org> Cc: Yu Zhao <yuzhao@chromium.org> Cc: Brian Geffon <bgeffon@chromium.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
dentry name can be evaluated later, right before calling into VFS. Also, spend less time under ->mmap_sem. Link: http://lkml.kernel.org/r/20171110163034.GA2534@avx2 Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
- This is a heavily modified version of susfs v1.5.12 - It does not comply with the upstream offical susfs v1.5.12 - sus_mount functionality still remain in v1.5.5 as backporting it to the latest version will result a mount detection leak in some apps/detectors - Increase susfs_open_redirect UID limit to <11000 - susfs magic mount support is still implemented and enabled - sus_map is implemented and complied with the upstream v1.5.12 codebase This commit requires a bunch of backports commits from v4.19 and v5.x to make sus_map working: 0a8cbf3725edbacc5f1ead33eeae7e4d78823b5a proc: less memory for /proc/*/map_files readdir 37ae2444584654f6785f2cc49181f05af788c9b2 mm: smaps: split PSS into components 49a5115e11350ee68f6a5fbd56b3e817bf9e5aac fs/task_mmu: add pkeys header 6f94042bed51121f8f28a5e572cda20c21fed2e1 mm/pkeys: Add an empty arch_pkeys_enabled() bbd5aec12b32097a71dc6a0097194a18f3ee9a17 mm/pkeys, powerpc, x86: Provide an empty vma_pkey() in linux/pkeys.h 849ca8ce954d9dbb082dcf83c98af861e98e5635 mm: /proc/pid/smaps_rollup: convert to single value seq_file 6071a482c8e603be25895cc2cac5f0eab61c4051 mm: /proc/pid/smaps: factor out common stats printing 03fd2fbe9c40da8128cec5c69ef54755c0f38c6c mm: /proc/pid/smaps: factor out mem stats gathering 95f8be4c8a86a491a1c2ac9bfe470aef9e1baa8f mm: /proc/pid/*maps remove is_pid and related wrappers 27956d255e3b012372951dd6131e07c106d2daae procfs: add seq_put_hex_ll to speed up /proc/pid/maps 7f2847d02cdc4491b5ee6d4a0043854cbd6c7a1a proc: add seq_put_decimal_ull_width to speed up /proc/pid/smaps For KernelSU side patches for this commit you need the sidex15's KernelSU-Next fork: https://github.com/sidex15/KernelSU-Next/tree/n3x7g3n-kernel Or if you want to patch on your own here's the commit patch of susfs in the KernelSU-Next: sidex15/KernelSU-Next@13b1dfd Co-authored-by: simonpunk <simonpunk2016@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
This is a modfied version of susfs v1.5.12 for n3x7g3n kernel Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
…rough kernel module parameter - /sys/module/kernelsu/parameters/expected_manager_* Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
* kernel: replace renameat hook with fsnotify * kernel: fix compile * kernel: fix compile below 6.0 --------- Co-authored-by: weishu <twsxtd@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Co-authored-by: TwinbornPlate75 <42514046+TwinbornPlate75@users.noreply.github.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
ShevT
pushed a commit
that referenced
this pull request
Feb 11, 2026
Like other csets, init_css_set's dfl_cgrp is initialized when the cset gets linked. init_css_set gets linked in cgroup_init(). This has been fine till now but the recently added basic CPU usage accounting may end up accessing dfl_cgrp of init before cgroup_init() leading to the following oops. SELinux: Initializing. BUG: unable to handle kernel NULL pointer dereference at 00000000000000b0 IP: account_system_index_time+0x60/0x90 PGD 0 P4D 0 Oops: 0000 [#1] SMP Modules linked in: CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.14.0-rc2-00003-g041cd64 #10 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS +1.9.3-20161025_171302-gandalf 04/01/2014 task: ffffffff81e10480 task.stack: ffffffff81e00000 RIP: 0010:account_system_index_time+0x60/0x90 RSP: 0000:ffff880011e03cb8 EFLAGS: 00010002 RAX: ffffffff81ef8800 RBX: ffffffff81e10480 RCX: 0000000000000003 RDX: 0000000000000000 RSI: 00000000000f4240 RDI: 0000000000000000 RBP: ffff880011e03cc0 R08: 0000000000010000 R09: 0000000000000000 R10: 0000000000000020 R11: 0000003b9aca0000 R12: 000000000001c100 R13: 0000000000000000 R14: ffffffff81e10480 R15: ffffffff81e03cd8 FS: 0000000000000000(0000) GS:ffff880011e00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00000000000000b0 CR3: 0000000001e09000 CR4: 00000000000006b0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: <IRQ> account_system_time+0x45/0x60 account_process_tick+0x5a/0x140 update_process_times+0x22/0x60 tick_periodic+0x2b/0x90 tick_handle_periodic+0x25/0x70 timer_interrupt+0x15/0x20 __handle_irq_event_percpu+0x7e/0x1b0 handle_irq_event_percpu+0x23/0x60 handle_irq_event+0x42/0x70 handle_level_irq+0x83/0x100 handle_irq+0x6f/0x110 do_IRQ+0x46/0xd0 common_interrupt+0x9d/0x9d Fix it by statically initializing init_css_set.dfl_cgrp so that init's default cgroup is accessible from the get-go. Fixes: 041cd64 ("cgroup: Implement cgroup2 basic CPU usage accounting") Reported-by: “kbuild-all@01.org” <kbuild-all@01.org> Signed-off-by: Tejun Heo <tj@kernel.org> Change-Id: Ia754e3d34561ff09db126712e1a40d993b28f5d9 (cherry picked from commit 3868314) Bug: 154548692 Signed-off-by: Marco Ballesio <balejs@google.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is a hotfix to stop Termux from crashing the entire phone.
Old KernelSU versions adjusted
/dev/ptsSELinux contexts to allowpm list usersto work directly. Users who need that command should now usescript /dev/null -c 'pm list users'as root as a workaround.scriptcomes with Termux.adb shell pm list usersstill works by default. The proper long-term solution is to update KernelSU, or at least cherry-pick tiann/KernelSU#2886 .I am reasonably confident that this will fix the crash, while I am figuring out how to compile the kernel.