精华内容
下载资源
问答
  • 1) Own Hardware requiring Killer Network Drivers 2) Install said drivers (i.e. Killer Control Center) 3) Connect to any MTA server with anticheat enabled 4) Immediately after connecting or after a few...
  • Low memory Killer

    2019-04-21 16:20:07
    drivers/staging/android/lowmemorykiller.c 控制节点 sys/module/lowmemorykiller/parameters/ adj adj_max_shift cost debug_level enable_adaptive_lmk enable_lmk lmk_fast_run minfree ...

    Low memory Killer

    • 代码位置

    drivers/staging/android/lowmemorykiller.c

    • 控制节点

    sys/module/lowmemorykiller/parameters/

    adj

    adj_max_shift

    cost

    debug_level

    enable_adaptive_lmk

    enable_lmk

    lmk_fast_run

    minfree

    oom_reaper

    vmpressure_file_min

    • 各个进程的omm_adj

    /proc/<PID>/omm_adj

    /proc/<PID>/omm_score

    /proc/<PID>/omm_score_adj

    • 各个安卓进程的ADJ

      • code path:

        android/platform/frameworks/base/services/core/java/com/android/server/am/ProcessList.java

      • 进程分类

        1. 前台进程

          用户当前操作所必需的进程。如果一个进程满足以下任一条件,即视为前台进程:

          • 托管用户正在交互的 Activity(已调用 ActivityonResume() 方法)
          • 托管某个 Service,后者绑定到用户正在交互的 Activity
          • 托管正在“前台”运行的 Service(服务已调用 startForeground()
          • 托管正执行一个生命周期回调的 ServiceonCreate()onStart()onDestroy()
          • 托管正执行其 onReceive() 方法的 BroadcastReceiver

          通常,在任意给定时间前台进程都为数不多。只有在内存不足以支持它们同时继续运行这一万不得已的情况下,系统才会终止它们。 此时,设备往往已达到内存分页状态,因此需要终止一些前台进程来确保用户界面正常响应。

        2. 可见进程

          没有任何前台组件、但仍会影响用户在屏幕上所见内容的进程。 如果一个进程满足以下任一条件,即视为可见进程如后台播放音乐:

          • 托管不在前台、但仍对用户可见的 Activity(已调用其 onPause() 方法)。例如,如果前台 Activity 启动了一个对话框,允许在其后显示上一 Activity,则有可能会发生这种情况。
          • 托管绑定到可见(或前台)Activity 的 Service

          可见进程被视为是极其重要的进程,除非为了维持所有前台进程同时运行而必须终止,否则系统不会终止这些进程。

        3. 服务进程

          正在运行已使用 startService() 方法启动的服务且不属于上述两个更高类别进程的进程。尽管服务进程与用户所见内容没有直接关联,但是它们通常在执行一些用户关心的操作(例如,在后台播放音乐或从网络下载数据)。因此,除非内存不足以维持所有前台进程和可见进程同时运行,否则系统会让服务进程保持运行状态。

        4. 后台进程

          包含目前对用户不可见的 Activity 的进程(已调用 Activity 的 onStop() 方法)。这些进程对用户体验没有直接影响,系统可能随时终止它们,以回收内存供前台进程、可见进程或服务进程使用。 通常会有很多后台进程在运行,因此它们会保存在 LRU (最近最少使用)列表中,以确保包含用户最近查看的 Activity 的进程最后一个被终止。如果某个 Activity 正确实现了生命周期方法,并保存了其当前状态,则终止其进程不会对用户体验产生明显影响,因为当用户导航回该 Activity 时,Activity 会恢复其所有可见状态。 有关保存和恢复状态的信息,请参阅 Activity文档。

        5. 空进程

          不含任何活动应用组件的进程。保留这种进程的的唯一目的是用作缓存,以缩短下次在其中运行组件所需的启动时间。 为使总体系统资源在进程缓存和底层内核缓存之间保持平衡,系统往往会终止这些进程。

      • android 的ADj分类

        ADJ值越小则优先度越高,例如INVALID和NATIVE的ADJ值在Android 8.0中为-10000和-1000,优先度最高,系统不会去关闭它。紧随其后的是SYSTEM,ADJ值为-900。小于零的ADJ,Low memory Killer是杀不到的。

        android 8.0即以上的分类

        ADJ值 类型
        -10000 INVALID 未定义
        -1000 NATIVE 本机持有的特殊代码
        -900 SYSTEM
        -800 PERSISTENT_PROC 系统持续进程(电话)
        -700 PERSISTENT_SERVICE 系统服务进程
        0 FOREGROUND_APP 前台应用
        100 VISIBLE_APP 可见应用
        200 PERCEPTIBLE_APP 后台应用
        300 BACKUP_APP 备份进程
        400 HEAVY_WEIGHT_APP 重量级后台进程
        500 SERVICE 服务进程
        600 HOME_APP 主进程
        700 PREVIOUS_APP 上一个进程
        800 SERVICE_B 旧的服务进程B列表
        900 CACHED_APP_MIN
        906 CACHED_APP_MAX
        1001 UNKNOWN
        99(PERCEPTIBLE_APP_ADJ - VISIBLE_APP_ADJ - 1) VISIBLE_APP_LAYER_MAX

        android 8.0以下的ADJ

        ADJ级别 取值 解释
        UNKNOWN_ADJ 16 一般指将要会缓存进程,无法获取确定值
        CACHED_APP_MAX_ADJ 15 不可见进程的adj最大值
        CACHED_APP_MIN_ADJ 9 不可见进程的adj最小值
        SERVICE_B_AD 8 B List中的Service(较老的、使用可能性更小)
        PREVIOUS_APP_ADJ 7 上一个App的进程(往往通过按返回键)
        HOME_APP_ADJ 6 Home进程
        SERVICE_ADJ 5 服务进程(Service process)
        HEAVY_WEIGHT_APP_ADJ 4 后台的重量级进程,system/rootdir/init.rc文件中设置
        BACKUP_APP_ADJ 3 备份进程
        PERCEPTIBLE_APP_ADJ 2 可感知进程,比如后台音乐播放
        VISIBLE_APP_ADJ 1 可见进程(Visible process)
        FOREGROUND_APP_ADJ 0 前台进程(Foreground process)
        PERSISTENT_SERVICE_ADJ -11 关联着系统或persistent进程
        PERSISTENT_PROC_ADJ -12 系统persistent进程,比如telephony
        SYSTEM_ADJ -16 系统进程
        NATIVE_ADJ -17 native进程(不被系统管理)

        参考网站:

        ANDROID 8.0 : 进程模型浅析(一)

        Android进程调度之adj算法

    展开全文
  • lowmemorykiller学习

    2019-01-12 15:01:55
    驱动文件位置kernel\drivers\staging\android lowmemorykiller.c shell@sp9820e_2h10:/sys/module/lowmemorykiller/parameters $ cat adj cat adj 0,58,176,411,529,1000 shell@sp9820e_2h10:/sys/module/...

    驱动文件位置kernel\drivers\staging\android  lowmemorykiller.c

    shell@sp9820e_2h10:/sys/module/lowmemorykiller/parameters $ cat adj
    cat adj
    0,58,176,411,529,1000
    shell@sp9820e_2h10:/sys/module/lowmemorykiller/parameters $ cat minfree
    cat minfree
    3072,4608,6144,7168,8704,10240

    adj值对应的进程号,minfree中数值的单位是内存中的页面数量,一般情况下一个页面是4KB

    展开全文
  • Android lowmemorykiller

    2014-03-25 17:51:00
    drivers/staging/android/lowmemorykiller.c lowmemorykiller 在系统空闲内存不足时, 根据一定机制选择某个进程, 然后杀死它. 1. register_shrinker(&lowmem_shrinker); 向 shrinker 注册一个回调. 当内核...

    drivers/staging/android/lowmemorykiller.c

     

    lowmemorykiller 在系统空闲内存不足时, 根据一定机制选择某个进程, 然后杀死它.

     

    1. register_shrinker(&lowmem_shrinker); 向 shrinker 注册一个回调. 当内核线程尝试回收系统内存页时, 会逐个回调已注册的 shrinker. 调用时机涉及到内存管理一块, 暂不关心.

     

    2. 有两个数组: int lowmem_adj[6] 和 int lowmem_minfree[6] .

    lowmem_adj[6] 存储 oom_score_adj阀值.

    lowmem_minfree[6] 存储 剩余空闲内存的阀值.

    数组序号表示等级, 这两个数组中各等级值一一对应. 两个数组值都在 /sys/ 下导出了相应读写节点, 改写其中的值可以调整 lowmemkiller 的行为.

    /sys/module/lowmemorykiller/parameters/adj

    /sys/module/lowmemorykiller/parameters/minfree

    注意一点, 向 /sys/module/lowmemorykiller/parameters/adj 文件写入时, 会调用 lowmem_autodetect_oom_adj_values() 把 oom_adj 值转化成 oom_score_adj 值, 存放到 lowmem_adj[6] 中.

    task_struct -> signal_struct 中有 oom_adj, oom_score_adj, oom_score_adj_min 几个和 oom 相关的记录.

     

    3. lowmem_shrinker() 被调用时, 才开始了真正的行为. 其中依次做了几件事:

    1). 取得系统剩余内存放到 other_free, other_file 中. 然后再与 lowmem_minfree[] 数组中各等级比较, 如果lowmem_minfree[i] 刚好大于 other_free 和 other_file , 则 min_score_adj = lowmem_adj[i] 为此次遍历的最低 score.

    2). 遍历所有进程, 把进程的 p->singal->oom_score_adj 与 min_score_adj 比较, 如果进程的 oom_score_adj < minscore_adj, 则此进程不满足条件, 不会被杀死. 继续处理下一个进程.

    如果进程的 oom_score_adj >= min_score_adj, 还要取进程占用的内存大小 get_mm_rss(). 对于oom_score_adj 满足条件且 score 相同的两个进程, 取占用内存大的放入 selected 中.

    3). 最后, 一次遍历选出一个进程 selected . 向该进程发送 SIGKILL 信号, 并且告诉进程是由于内存原因(TIF_MEMDIE)而杀死它.

     

    init.rc 中有相关操作:

    write /proc/1/oom_adj -16

    令 init 的 oom_adj 为-16, 则其永远不会被 lowmemkiller 杀死.

     

    转载于:https://www.cnblogs.com/sammei/p/3623726.html

    展开全文
  • I changed network-manager, changed the killer drivers, so on and so forth, for days. I then found a lot of threads of people with similar issues, and they ultimately ended up having to change their ...
  • diff --git a/drivers/staging/android/lowmemorykiller.c b/drivers/staging/android/lowmemorykiller.c — a/drivers/staging/android/lowmemorykiller.c +++ b/drivers/staging/android/lowmemorykiller.c @@ -...

    diff --git a/drivers/staging/android/lowmemorykiller.c b/drivers/staging/android/lowmemorykiller.c
    — a/drivers/staging/android/lowmemorykiller.c
    +++ b/drivers/staging/android/lowmemorykiller.c
    @@ -408,7 +408,17 @@
         for_each_process(tsk) {
             struct task_struct *p;
             short oom_score_adj;

    +        
    +        //lowmem_print(1,“mtk jump lowmemorykiller_1 tsk->comm=%s”,tsk->comm);
    +        /* begin /
    +        if((strstr(tsk->comm,“emui:screenshot”)!=NULL)
    +            {
    +             lowmem_print(1,“lowmemorykiller jump kill ‘emui:screenshot’ \n”);
    +             continue;
    +             }
    +        /
    end */
    +      
             if (tsk->flags & PF_KTHREAD)
                 continue;

    展开全文
  • kernel/common/drivers/staging/Android/lowmemorykiller.c 一. 概述 Android的设计理念之一,便是应用程序退出,但进程还会继续存在系统以便再次启动时提高响应时间. 这样的设计会带来一个问题, 每个进...
  • 1、先安装无线驱动,可以参考... https://wikidevi.com/wiki/Rivet_Networks_Killer_Wireless-AC_1525 https://wireless.wiki.kernel.org/en/users/drivers/at
  • 核心源码 关键类 路径 lmkd.c system/core/lmkd/lmkd.c lmkd.rc system/core/lmkd/lmkd.rc ...lowmemorykiller.c kernel-3.18/drivers/staging/android/lowmemorykiller.c ProcessList...
  • 项目中遇到recovery升级系统zip包的时候因为内存不足被kill掉的情况,可通过修改内核的drivers/staging/android/lowmemorykiller.c #ifdef CONFIG_MP_CMA_PATCH_DELAY_FREE extern void set_delay_free_min_mem(int...
  • frameworks/base/services/core/java/...platform/system/core/lmkd/lmkd.c kernel/common/drivers/staging/Android/lowmemorykiller.c 一. 概述Android的设计理念之一,便是应用程序退出,但进程还会继续存...
  • <strong>Setup:</strong> Killer E2400 Gigabit Ethernet <strong>Board:</strong> Nucleo_H743ZI clocked from HSI 64 MHz <pre><code> sudo ping -i 0.01 192.0.2.1 -c 1000 --- 192.0.2.1 ping statistics --- ...
  • <div><p>palemoon browser is showing ad-blocker wrarning on ...<p>I have ublock installed on firefox and palemoon, and the page is coming up well in firefox, but is ...reek/anti-adblock-killer</p></div>
  • Low Memory Killer drivers/staging/android/lowmemorykiller.c   回收和管理内存 mm/ashmem.c   Android PMEM 提供连续的物理内存区域 drivers/misc/pmem.c
  • 从lowmemorykiller.c位于drivers/staging/android也可知道,属于Android专有,没有进入Linux kernel的mainline。 lmkd,即Low Memory Killer Daemon,基于memory子系统和Kernel lowmemoryki...
  • 从lowmemorykiller.c位于drivers/staging/android也可知道,属于Android专有,没有进入Linux kernel的mainline。 lmkd,即Low Memory Killer Daemon,基于memory子系统和Kernel lowmemorykil...
  • Android内存管理、监测剖析

    千次阅读 2014-04-11 00:35:32
    Android内存管理机制: Android内存管理主要有:LowMemory Killer机制,Ashmem,PMEM/ION及Native内存和Dalvik内存管理... 源码位置drivers/staging/Android/lowmemorykiller.c Android是一个多任务系统,也就是说
  • android内核

    2013-07-11 11:23:58
    Android的Low Memory Killer根据需要(当系统物理内存短缺时)杀死进程释放其内存,源代码在drivers/staging/android/lowmemorykiller.c。据说它提供了比标准linux内核的OOM机制更灵活的低内存状态下的管理。 ...
  • <div><p>If FUSE_FALLOCATE is called passing a length of 0 it returns an error. Since allocating 0 bytes is expected to just do nothing, it is better to ...virtio-win/kvm-guest-drivers-windows</p></div>
  • Why you removed adapters?

    2020-12-25 18:58:32
    <div><p>So, how to use this ... I come from cycle.js and this is really killer-feature for me as well as better effects handling (drivers)</p><p>该提问来源于开源项目:recyclejs/recycle</p></div>
  • 转自:ubuntu 16.04 安装killer e2400网卡驱动 问题:安装完ubuntu16.04.1之后想设置固定ip,butifconfig只能看到lo,找不到正常的网卡,而且系统是离线环境。 sudo modprobe alx echo 1969 e0b1 | sudo tee /sys/...
  • Android系统架构

    2017-09-04 16:03:51
    Android系统架构(一)Linux Kernel(/kernel,/bootable,/devices)Android内核 对Linux内核进行了增强,增加了一些面向...源代码位于 drivers/staging/ android/lowmemorykiller.c 匿名共享内存(Ashmem),mm/ashmem
  • 不让某个应用被kill

    2018-12-07 17:52:40
    alps/kernel-4.9 / drivers/staging/android/lowmemorykiller.c  selected_oom_score_adj = min_score_adj;  rcu_read_lock();  for_each_process(tsk) {  struct task_struct *p;  short ...
  • android process die的原因分析介绍

    千次阅读 2018-07-06 10:09:13
    1:低内存查杀LMK(low memory killer)当我们要退出一个进程时只能按返回键,而该进程并没有真正的关闭,进程依然是存在于内存之中.这样设计的目的是为了下次能快速启动.当然,随着系统运行时间的增长,内存会越来越少,...
  • 完美Radmin

    2007-09-30 15:26:45
    准备工具 Rock免杀工具; IcoSprite图标更改器; Killer15杀杀毒软件防火墙工具; ...SC.exe服务添加删除更改工具;...AdmDll.dll、Raddrv.dll、R_server(这个不用说了吧,Radmin的服务端)。...drivers\目...
  • Proxy Hook

    2020-11-22 09:05:40
    <div><p>I have been looking into this project as a possible solution for downloaded selenium and specific drivers for my enterprises web applications. But one of the killer is the inability to use ...
  • CVE-2019-18808: 1777418: CVE-2019-18808 kernel: memory leak in ccp_run_sha_cmd() function in drivers/crypto/ccp/ccp-ops.c A memory leak in the ccp_run_sha_cmd() function in drivers/crypto/ccp/ccp-ops...
  • <p>When calculating and planning to build a batch myself, it looks like the relay and the PSU are really cost drivers. Have you had a look into alternative components? <p>For the PSU the HLK-PM03 ...

空空如也

空空如也

1 2
收藏数 40
精华内容 16
关键字:

driverskiller