{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":806040072,"defaultBranch":"main","name":"android_paper_scripts","ownerLogin":"sticpaper","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2024-05-26T07:47:43.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/77153731?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1716709937.0","currentOid":""},"activityList":{"items":[{"before":"34d9387ebf25fe9656aa5d64f7670cd720b18570","after":"5a2c73445b4b674265fba21ce7dd94b11e31b63c","ref":"refs/heads/main","pushedAt":"2024-05-26T09:12:50.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Aquarius223","name":null,"path":"/Aquarius223","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47409494?s=80&v=4"},"commit":{"message":"idlemaint: Start Urgent GC based on device codename\n\n* On some Xiaomi devices using HyperOS, IdleMaint was modified and\n failed to trigger F2FS GC normally. Eventually, the invalid segment\n grew over time, thus affecting (lowering) I/O performance.\n\n* Work log of IdleMaint on Xiaomi HyperOS:\n 05-26 680 32085 D vold : idle maintenance started\n 05-26 680 32085 D vold : current trim thread id is 508608687280\n 05-26 680 32085 D vold : Starting trim of /metadata\n 05-26 680 32085 I vold : Trimmed 0 bytes on /metadata in 0ms\n 05-26 680 32085 D vold : Starting trim of /data\n 05-26 680 32085 I vold : Trimmed 174071808 bytes on /data in 9576ms\n 05-26 680 32085 D vold : Starting trim of /mnt/vendor/persist\n 05-26 680 32085 I vold : Trimmed 43614208 bytes on /mnt/vendor/persist in 19ms\n 05-26 680 32085 D vold : Starting trim of /mnt/vendor/spunvm\n 05-26 680 32085 W vold : Failed to open /mnt/vendor/spunvm: Permission denied\n 05-26 680 32085 W vold : Can't find the node of pending_discard/sys/fs/f2fs/dm-49: No such file or directory\n 05-26 680 32085 W vold : CLD is not supported on current device!\n 05-26 680 32085 D vold : Start Dev GC on /sys/devices/platform/soc/1d84000.ufshc/manual_gc\n 05-26 680 32085 W vold : Reading manual_gc failed in /sys/devices/platform/soc/1d84000.ufshc/manual_gc: No such file or directory\n 05-26 680 32085 D vold : Stop Dev GC on /sys/devices/platform/soc/1d84000.ufshc/manual_gc\n 05-26 680 32085 W vold : Stop Dev GC failed on /sys/devices/platform/soc/1d84000.ufshc/manual_gc: Permission denied\n 05-26 680 32085 D vold : idle maintenance completed\n\n* F2FS Status information:\n =====[ partition info(dm-49). #0, RW, CP: Good]=====\n [SB: 1] [CP: 2] [SIT: 4] [NAT: 116] [SSA: 107] [MAIN: 54341(OverProv:1192 Resv:108)]\n\n Current Time Sec: 12384 / Mounted Time Sec: 4\n\n Utilization: 37% (10280866 valid blocks, 15469102 discard blocks)\n - Node: 107529 (Inode: 98609, Other: 8920)\n - Data: 10173337\n - Inline_xattr Inode: 4504\n - Inline_data Inode: 1\n - Inline_dentry Inode: 1220\n - Compressed Inode: 156, Blocks: 0\n - Orphan/Append/Update Inode: 9, 0, 0\n\n Main area: 54341 segs, 54341 secs 54341 zones\n - COLD data: 32896, 32896, 32896\n - WARM data: 43402, 43402, 43402\n - HOT data: 7827, 7827, 7827\n - Dir dnode: 7818, 7818, 7818\n - File dnode: 7825, 7825, 7825\n - Indir nodes: 5336, 5336, 5336\n - Pinned file: 6358 6358 6358\n - ATGC data: 17722 17722 17722\n\n - Valid: 17935\n - Dirty: 18093\n - Prefree: 0\n - Free: 18313 (18313)\n\n sync_file calls: 40323\n - cp reason counts\n - non regular 1627\n - compressed 5\n - wrong pino 2\n - parent dir xattr set 148\n CP calls: 1565 (BG: 10)\n - cp blocks : 7499\n - sit blocks : 8971\n - nat blocks : 19858\n - ssa blocks : 4533\n CP merge (Queued: 0, Issued: 1798, Total: 1798, Cur time: 3(ms), Peak time: 106(ms))\n GC calls: 9 (BG: 9) (Boost: 0)\n - data segments : 7 (7)\n - node segments : 2 (2)\n Try to move 682 blocks (BG: 682)\n - data blocks : 679 (679)\n - node blocks : 3 (3)\n Skipped : atomic write 0 (0)\n BG skip : IO: 194, Other: 0\n\n Extent Cache (Read):\n - Hit Count: L1-1:152807 L1-2:11530 L2:8130\n - Hit Ratio: 17% (172467 / 1013247)\n - Inner Struct Count: tree: 3068(0), node: 356\n\n Extent Cache (Block Age):\n - Allocated Data Blocks: 368664\n - Hit Count: L1:252428 L2:28752\n - Hit Ratio: 50% (281180 / 553551)\n - Inner Struct Count: tree: 3721(0), node: 82\n\n Balancing F2FS Async:\n - DIO (R: 0, W: 0)\n - IO_R (Data: 0, Node: 0, Meta: 0\n - IO_W (CP: 0, Data: 0, Flush: ( 0 0 1), Discard: ( 0 4724)) cmd: 14452 undiscard:1962930\n - inmem: 0, atomic IO: 0 (Max. 2), volatile IO: 0 (Max. 0)\n - compress: 0, hit: 0\n - nodes: 2 in 3781\n - dents: 1 in dirs: 1 ( 12)\n - datas: 229 in files: 0\n - quota datas: 0 in quota files: 2\n - meta: 0 in 895\n - imeta: 3\n - NATs: 3/ 1063\n - SITs: 3/ 54341\n - free_nids: 1285/ 13404147\n - alloc_nids: 0\n\n Distribution of User Blocks: [ valid | invalid | free ]\n [------------------|----------------|----------------]\n\n IPU: 68329 blocks\n SSR: 677 blocks in 53 segments\n LFS: 1491805 blocks in 2916 segments\n\n BDF: 92, avg. vblocks: 60\n\n Memory: 35328 KB\n - static: 14357 KB\n - cached all: 2266 KB\n - read extent cache: 288 KB\n - block age extent cache: 325 KB\n - paged : 18704 KB\n\nChange-Id: I4ff88b516d4aafdd37369f0db7bd3032b57ce96d","shortMessageHtmlLink":"idlemaint: Start Urgent GC based on device codename"}},{"before":"8a7119d76d54f79ea9771a0c0434423cecac129e","after":"34d9387ebf25fe9656aa5d64f7670cd720b18570","ref":"refs/heads/main","pushedAt":"2024-05-26T09:11:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Aquarius223","name":null,"path":"/Aquarius223","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47409494?s=80&v=4"},"commit":{"message":"idlemaint: Use different Urgent GC modes based on device codename\n\n* On some Xiaomi devices using HyperOS, IdleMaint was modified and\n failed to trigger F2FS GC normally. Eventually, the invalid segment\n grew over time, thus affecting (lowering) I/O performance.\n\n* Work log of IdleMaint on Xiaomi HyperOS:\n 05-26 680 32085 D vold : idle maintenance started\n 05-26 680 32085 D vold : current trim thread id is 508608687280\n 05-26 680 32085 D vold : Starting trim of /metadata\n 05-26 680 32085 I vold : Trimmed 0 bytes on /metadata in 0ms\n 05-26 680 32085 D vold : Starting trim of /data\n 05-26 680 32085 I vold : Trimmed 174071808 bytes on /data in 9576ms\n 05-26 680 32085 D vold : Starting trim of /mnt/vendor/persist\n 05-26 680 32085 I vold : Trimmed 43614208 bytes on /mnt/vendor/persist in 19ms\n 05-26 680 32085 D vold : Starting trim of /mnt/vendor/spunvm\n 05-26 680 32085 W vold : Failed to open /mnt/vendor/spunvm: Permission denied\n 05-26 680 32085 W vold : Can't find the node of pending_discard/sys/fs/f2fs/dm-49: No such file or directory\n 05-26 680 32085 W vold : CLD is not supported on current device!\n 05-26 680 32085 D vold : Start Dev GC on /sys/devices/platform/soc/1d84000.ufshc/manual_gc\n 05-26 680 32085 W vold : Reading manual_gc failed in /sys/devices/platform/soc/1d84000.ufshc/manual_gc: No such file or directory\n 05-26 680 32085 D vold : Stop Dev GC on /sys/devices/platform/soc/1d84000.ufshc/manual_gc\n 05-26 680 32085 W vold : Stop Dev GC failed on /sys/devices/platform/soc/1d84000.ufshc/manual_gc: Permission denied\n 05-26 680 32085 D vold : idle maintenance completed\n\n* F2FS Status information:\n =====[ partition info(dm-49). #0, RW, CP: Good]=====\n [SB: 1] [CP: 2] [SIT: 4] [NAT: 116] [SSA: 107] [MAIN: 54341(OverProv:1192 Resv:108)]\n\n Current Time Sec: 12384 / Mounted Time Sec: 4\n\n Utilization: 37% (10280866 valid blocks, 15469102 discard blocks)\n - Node: 107529 (Inode: 98609, Other: 8920)\n - Data: 10173337\n - Inline_xattr Inode: 4504\n - Inline_data Inode: 1\n - Inline_dentry Inode: 1220\n - Compressed Inode: 156, Blocks: 0\n - Orphan/Append/Update Inode: 9, 0, 0\n\n Main area: 54341 segs, 54341 secs 54341 zones\n - COLD data: 32896, 32896, 32896\n - WARM data: 43402, 43402, 43402\n - HOT data: 7827, 7827, 7827\n - Dir dnode: 7818, 7818, 7818\n - File dnode: 7825, 7825, 7825\n - Indir nodes: 5336, 5336, 5336\n - Pinned file: 6358 6358 6358\n - ATGC data: 17722 17722 17722\n\n - Valid: 17935\n - Dirty: 18093\n - Prefree: 0\n - Free: 18313 (18313)\n\n sync_file calls: 40323\n - cp reason counts\n - non regular 1627\n - compressed 5\n - wrong pino 2\n - parent dir xattr set 148\n CP calls: 1565 (BG: 10)\n - cp blocks : 7499\n - sit blocks : 8971\n - nat blocks : 19858\n - ssa blocks : 4533\n CP merge (Queued: 0, Issued: 1798, Total: 1798, Cur time: 3(ms), Peak time: 106(ms))\n GC calls: 9 (BG: 9) (Boost: 0)\n - data segments : 7 (7)\n - node segments : 2 (2)\n Try to move 682 blocks (BG: 682)\n - data blocks : 679 (679)\n - node blocks : 3 (3)\n Skipped : atomic write 0 (0)\n BG skip : IO: 194, Other: 0\n\n Extent Cache (Read):\n - Hit Count: L1-1:152807 L1-2:11530 L2:8130\n - Hit Ratio: 17% (172467 / 1013247)\n - Inner Struct Count: tree: 3068(0), node: 356\n\n Extent Cache (Block Age):\n - Allocated Data Blocks: 368664\n - Hit Count: L1:252428 L2:28752\n - Hit Ratio: 50% (281180 / 553551)\n - Inner Struct Count: tree: 3721(0), node: 82\n\n Balancing F2FS Async:\n - DIO (R: 0, W: 0)\n - IO_R (Data: 0, Node: 0, Meta: 0\n - IO_W (CP: 0, Data: 0, Flush: ( 0 0 1), Discard: ( 0 4724)) cmd: 14452 undiscard:1962930\n - inmem: 0, atomic IO: 0 (Max. 2), volatile IO: 0 (Max. 0)\n - compress: 0, hit: 0\n - nodes: 2 in 3781\n - dents: 1 in dirs: 1 ( 12)\n - datas: 229 in files: 0\n - quota datas: 0 in quota files: 2\n - meta: 0 in 895\n - imeta: 3\n - NATs: 3/ 1063\n - SITs: 3/ 54341\n - free_nids: 1285/ 13404147\n - alloc_nids: 0\n\n Distribution of User Blocks: [ valid | invalid | free ]\n [------------------|----------------|----------------]\n\n IPU: 68329 blocks\n SSR: 677 blocks in 53 segments\n LFS: 1491805 blocks in 2916 segments\n\n BDF: 92, avg. vblocks: 60\n\n Memory: 35328 KB\n - static: 14357 KB\n - cached all: 2266 KB\n - read extent cache: 288 KB\n - block age extent cache: 325 KB\n - paged : 18704 KB\n\nChange-Id: I4ff88b516d4aafdd37369f0db7bd3032b57ce96d","shortMessageHtmlLink":"idlemaint: Use different Urgent GC modes based on device codename"}},{"before":"dd58e0b6dfafa3c368d92df452be1c2ff5069ed2","after":"8a7119d76d54f79ea9771a0c0434423cecac129e","ref":"refs/heads/main","pushedAt":"2024-05-26T08:49:35.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Aquarius223","name":null,"path":"/Aquarius223","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47409494?s=80&v=4"},"commit":{"message":"idlemaint: Add UrgentGC function that writes to GC_Urgent node\n\n* Idea based on (\"Add functions to handle idle maintenance\")\n - (\"android_system_vold\" commit: a370c14f75e97e131b06662f)\n runIdleMaint is equivalent with:\n 1. echo 1 > /sys/fs/f2fs/sdX/gc_urgent\n 2. wait until /sys/fs/f2fs/sdX/dirty_segments\n <= threshold or timeout\n 3. echo 0 > /sys/fs/f2fs/sdX/gc_urgent\n\n* Urgent GC timeout is set to 8 minutes (60x8 = 480).\n\nChange-Id: I35c7bf8a3789773b4463f2b23933f25decf54a41","shortMessageHtmlLink":"idlemaint: Add UrgentGC function that writes to GC_Urgent node"}},{"before":"2c360a88ea0eaefada685b6f218abcf901c0d60c","after":"dd58e0b6dfafa3c368d92df452be1c2ff5069ed2","ref":"refs/heads/main","pushedAt":"2024-05-26T08:47:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Aquarius223","name":null,"path":"/Aquarius223","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47409494?s=80&v=4"},"commit":{"message":"idlemaint: Add Urgent GC function that writes to GC_Urgent node\n\n* Idea based on (\"Add functions to handle idle maintenance\")\n - (\"android_system_vold\" commit: a370c14f75e97e131b06662f)\n runIdleMaint is equivalent with:\n 1. echo 1 > /sys/fs/f2fs/sdX/gc_urgent\n 2. wait until /sys/fs/f2fs/sdX/dirty_segments\n <= threshold or timeout\n 3. echo 0 > /sys/fs/f2fs/sdX/gc_urgent\n\n* Urgent GC timeout is set to 8 minutes (60x8 = 480).\n\nChange-Id: I35c7bf8a3789773b4463f2b23933f25decf54a41","shortMessageHtmlLink":"idlemaint: Add Urgent GC function that writes to GC_Urgent node"}},{"before":"5a5892db5cfc3f8a3a1424fe7d369e3ef2fb11f6","after":"2c360a88ea0eaefada685b6f218abcf901c0d60c","ref":"refs/heads/main","pushedAt":"2024-05-26T08:36:25.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Aquarius223","name":null,"path":"/Aquarius223","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47409494?s=80&v=4"},"commit":{"message":"idlemaint: Add a trigger GC function based on Android IdleMaint\n\n* Manually trigger Android IdleMaint to trigger F2FS urgent GC mode\n* At the same time, add a conditional judgment:\n - if there are too few dirty segments, end the script directly.\n* Waiting for results: (if gc_urgent is 0) then IdleMaint ends.\n* To prevent multiple executions in a short period of time,\n add a counting and waiting function, and wait until gc_urgent ends\n before automatically ending the script file.\n\n https://android-review.googlesource.com/c/platform/system/vold/+/1936286\n https://android-review.googlesource.com/c/platform/frameworks/base/+/1936378\n\nChange-Id: Ib9659f44af413ff18334094c5927a5d2ecda5d6e","shortMessageHtmlLink":"idlemaint: Add a trigger GC function based on Android IdleMaint"}},{"before":"2ee5efdb8565aaf860e9b0aca41366bd667c90a2","after":"5a5892db5cfc3f8a3a1424fe7d369e3ef2fb11f6","ref":"refs/heads/main","pushedAt":"2024-05-26T08:35:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Aquarius223","name":null,"path":"/Aquarius223","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47409494?s=80&v=4"},"commit":{"message":"idlemaint: Add a trigger GC function based on Android IdleMaint\n\n* Manually trigger Android IdleMaint to trigger F2FS urgent GC mode\n* At the same time, add a conditional judgment:\n - if there are too few dirty segments, end the script directly.\n* Waiting for results: (if gc_urgent is 0) then IdleMaint ends.\n* To prevent multiple executions in a short period of time,\n add a counting and waiting function, and wait until gc_urgent ends\n before automatically ending the script file.\n\n* Idea: (android_vold) https://android-review.googlesource.com/c/platform/system/vold/+/1936286\n Idea: (android_framework) https://android-review.googlesource.com/c/platform/frameworks/base/+/1936378\n\nChange-Id: I63547bd822ef3109309b657150f93bfc7e4a4b2b","shortMessageHtmlLink":"idlemaint: Add a trigger GC function based on Android IdleMaint"}},{"before":"b0005b4426490e52027e1ead33937cbfa1adc1c5","after":"2ee5efdb8565aaf860e9b0aca41366bd667c90a2","ref":"refs/heads/main","pushedAt":"2024-05-26T08:09:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Aquarius223","name":null,"path":"/Aquarius223","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47409494?s=80&v=4"},"commit":{"message":"idlemaint: Added function to print basic info of Data volume\n\n* Print Dirty segments info (\"/sys/fs/f2fs/dm-0/dirty_segments\")\n* Print Free segments info (\"/sys/fs/f2fs/dm-0/free_segments\")\n\nChange-Id: Ib61e4cebbf3a37d0354418a99e295bea4df67b16","shortMessageHtmlLink":"idlemaint: Added function to print basic info of Data volume"}},{"before":"8d1450085c2d3fb07347f38e365d6c94f090229d","after":"b0005b4426490e52027e1ead33937cbfa1adc1c5","ref":"refs/heads/main","pushedAt":"2024-05-26T08:04:01.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Aquarius223","name":null,"path":"/Aquarius223","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47409494?s=80&v=4"},"commit":{"message":"idlemaint: Add running (execution) environment check function\n\n* If not executed with Root, end this script.\n* If the Data partition is not F2FS, end this script.\n\nChange-Id: I4de78fdfb424fedae33653932209ce75d57ec9c9","shortMessageHtmlLink":"idlemaint: Add running (execution) environment check function"}},{"before":"4cb14919b62ccdd6afb7adb14b01ffb4025ad09f","after":"8d1450085c2d3fb07347f38e365d6c94f090229d","ref":"refs/heads/main","pushedAt":"2024-05-26T08:02:25.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Aquarius223","name":null,"path":"/Aquarius223","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47409494?s=80&v=4"},"commit":{"message":"idlemaint: Add running (execution) environment check function\n\n* If not executed with Root, end this script.\n* If the Data partition is not F2FS, end this script.\n\nChange-Id: I4de78fdfb424fedae33653932209ce75d57ec9c9","shortMessageHtmlLink":"idlemaint: Add running (execution) environment check function"}},{"before":null,"after":"4cb14919b62ccdd6afb7adb14b01ffb4025ad09f","ref":"refs/heads/main","pushedAt":"2024-05-26T07:52:17.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Aquarius223","name":null,"path":"/Aquarius223","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47409494?s=80&v=4"},"commit":{"message":"Initialize an empty Git repository\n\nChange-Id: I23a09b0dc220720feccdaaff35b2db509b12253c","shortMessageHtmlLink":"Initialize an empty Git repository"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEVBGfewA","startCursor":null,"endCursor":null}},"title":"Activity ยท sticpaper/android_paper_scripts"}