系统相关
首页 > 系统相关> > OK6410A 开发板 (八) 123 linux-5.11 OK6410A rootfs中留给开发者的内存访问接口

OK6410A 开发板 (八) 123 linux-5.11 OK6410A rootfs中留给开发者的内存访问接口

作者:互联网

与内存相关的文件系统

我们如果想用rootfs中的文件来观测内存或更改内存行为
则需要观测的文件所属的文件系统 为  内核文件系统
// https://blog.csdn.net/u011011827/article/details/119322870 中的 "linux 真实文件系统分类"
相关的文件系统有以下几种  sysfs,procfs,rootfs,devtmpfs,debugfs
可以从 /proc/filesystems中查看 当前的linux系统中注册了哪些 系统,在从中根据经验挑选出 内核文件系统

可以 利用 mount 来查看 这些文件系统挂载到哪个目录(挂载点)了
如果没有挂载,可以尝试用mount 命令挂载


与内存相关的文件系统大概有以下几种
	1. sysfs
	2. procfs
	3. debugfs
	4. udevfs

具体的文件

只读文件
	pagetypeinfo
	meminfo
	buddyinfo
	slabinfo
	vmallocinfo
	zoneinfo
	vmstat
	cmdline
		// "mem = xxx" , 表示 bootloader 留给linux 的内存大小(即linux管理的内存大小)为 xxx
可写文件
/proc/sys/vm
	drop_caches:
		sync && echo 1 > /proc/sys/vm/drop_caches
			0:0是系统默认值,默认情况下表示不释放内存,由操作系统自动管理
			1:释放页缓存
			2:释放dentries和inodes
			3:释放所有缓存

/sys/kernel 下的 mm slab 目录 


slab下有
	/sys/kernel/slab/task_struct // task_struct 是一个slab 的名称


udevfs 下的 kmsg // 被挂载到了 /dev ,等价于 dmesg  
	// layout 关键字 中 有 内核虚拟内存布局
// tracing 相关
/sys/kernel/debug# tree |grep mem 
│   ├── memory_bandwidth
│   │   ├── huge_memory
│   │   ├── kmem
│   │   │   ├── kmem_cache_alloc
│   │   │   ├── kmem_cache_alloc_node
│   │   │   ├── kmem_cache_free
│   │   │   ├── extlog_mem_event
│   │   │   ├── memory_failure_event
│   │   │   ├── sys_enter_get_mempolicy
│   │   │   ├── sys_enter_membarrier
│   │   │   ├── sys_enter_memfd_create
│   │   │   ├── sys_enter_set_mempolicy
│   │   │   ├── sys_exit_get_mempolicy
│   │   │   ├── sys_exit_membarrier
│   │   │   ├── sys_exit_memfd_create
│   │   │   ├── sys_exit_set_mempolicy
│   │   │   ├── mm_vmscan_memcg_reclaim_begin
│   │   │   ├── mm_vmscan_memcg_reclaim_end
│   │   │   ├── mm_vmscan_memcg_softlimit_reclaim_begin
│   │   │   ├── mm_vmscan_memcg_softlimit_reclaim_end
├── vmmemctl
│   ├── pat_memtype_list
    ├── reject_kmemcache_fail

标签:mm,linux,文件系统,开发板,sys,5.11,内存,OK6410A,挂载
来源: https://blog.csdn.net/u011011827/article/details/122361991