Coder Social home page Coder Social logo

Comments (13)

tiann avatar tiann commented on June 25, 2024

两个选择:

  1. 提供开机卡第一屏的 pstore 日志
  2. 用最新的代码二分查找具体是哪一行或者哪个部分导致

from kernelsu.

Seshiria avatar Seshiria commented on June 25, 2024

两个选择:

  1. 提供开机卡第一屏的 pstore 日志
  2. 用最新的代码二分查找具体是哪一行或者哪个部分导致

这是使用 efbc07f 构建的内核,开机卡第一屏幕时候的logcat:
logfile.txt

from kernelsu.

tiann avatar tiann commented on June 25, 2024

用这个 646b6f7 再试下,顺便把你那堆插件关掉

from kernelsu.

Seshiria avatar Seshiria commented on June 25, 2024

用这个 646b6f7 再试下,顺便把你那堆插件关掉

同样卡在第一屏,已移除全部模块,log:logfile2.txt

from kernelsu.

tiann avatar tiann commented on June 25, 2024

iterate_dir 死锁了,你可以尝试把高版本内核的移植过去,比如 https://elixir.bootlin.com/linux/v4.9.337/source/fs/readdir.c#L24

from kernelsu.

Seshiria avatar Seshiria commented on June 25, 2024

iterate_dir 死锁了,你可以尝试把高版本内核的移植过去,比如 https://elixir.bootlin.com/linux/v4.9.337/source/fs/readdir.c#L24

我看了一下4.14与4.4内核的iterate_dir逻辑好像都是一样的,缺少功能iterate_shared

而且对比最后一个正常启动 9403c8f 和第一个不能正常启动 9a04211 的提交,do_update_uid 方法并没有发生改变

from kernelsu.

tiann avatar tiann commented on June 25, 2024

改了那么多还叫没改变…

from kernelsu.

twu2 avatar twu2 commented on June 25, 2024

你 0.9.3 提示不支援時, 可以安裝 0.9.2 的 Manager 試試. 我同樣 4.4 的 kernel, 直接裝 0.9.3 的 Manager 會不支援, 換成 0.9.2 的就可以 (再升級到 0.9.3 一樣可以)
#1683

from kernelsu.

tiann avatar tiann commented on June 25, 2024

如果改动比较麻烦,你可以尝试在 search_manager 前禁用抢占

from kernelsu.

tiann avatar tiann commented on June 25, 2024
diff --git a/kernel/throne_tracker.c b/kernel/throne_tracker.c
index b931b60..cf198ef 100644
--- a/kernel/throne_tracker.c
+++ b/kernel/throne_tracker.c
@@ -1,3 +1,4 @@
+#include "linux/preempt.h"
 #include <linux/err.h>
 #include <linux/fs.h>
 #include <linux/list.h>
@@ -189,8 +190,10 @@ void search_manager(const char *path, int depth, struct list_head *uid_data)
                return;
        }

+       preempt_disable();
        iterate_dir(file, &ctx.ctx);
        filp_close(file, NULL);
+       preempt_enable();
 }

 static bool is_uid_exist(uid_t uid, char *package, void *data)

可以这么试试

from kernelsu.

Seshiria avatar Seshiria commented on June 25, 2024
diff --git a/kernel/throne_tracker.c b/kernel/throne_tracker.c
index b931b60..cf198ef 100644
--- a/kernel/throne_tracker.c
+++ b/kernel/throne_tracker.c
@@ -1,3 +1,4 @@
+#include "linux/preempt.h"
 #include <linux/err.h>
 #include <linux/fs.h>
 #include <linux/list.h>
@@ -189,8 +190,10 @@ void search_manager(const char *path, int depth, struct list_head *uid_data)
                return;
        }

+       preempt_disable();
        iterate_dir(file, &ctx.ctx);
        filp_close(file, NULL);
+       preempt_enable();
 }

 static bool is_uid_exist(uid_t uid, char *package, void *data)

可以这么试试

合并于 351f5c8 日志是 :logfile10.txt

同样还是卡第一屏

from kernelsu.

tiann avatar tiann commented on June 25, 2024

同样是 4.4 的内核,有的设备是可以正常工作的,所以这是你这个内核的问题;它调用 iterate_dir 可能会死锁;建议你换内核或者用0.9.0 版本。

from kernelsu.

Sinclair19 avatar Sinclair19 commented on June 25, 2024

我这边相同的设备,相同的lineage内核用kprobe集成工作是正常的,包括最新的0.9.4
https://github.com/Sinclair19/android_kernel_oneplus_msm8998/tree/lineage-21-f2fs

from kernelsu.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.