Commit Graph
21 Commits
Author SHA1 Message Date
Shell 9386411d13 feat: mm: added affinity pages allocator
This patch introduces a tagged pages allocator to address the existing problems
of page aliasing on specific platforms and the requirement of page coloring.
It implements an affinity-id aware page manager by separating the runtime page
list into two types: a normal single linked-list and a multi-dimensional affinity-list.

Changes:
- Introduced tagged pages allocator and managing algorithm for affinity pages list
- Modified components to support affinity-id list management
- Updated page allocation and freeing functions to handle tagged pages
- Added configuration options for page affinity block size and debugging
- Modified mmap and elf loading to respect affinity settings
- Enhanced page list management to support multi-dimensional affinity-list

Signed-off-by: Shell <smokewood@qq.com>
2025-02-25 11:26:30 +08:00
heyuanjie87 d3d33ff983 [dfs]mmap的文件在关闭后释放file指针 (#9917)
* [dfs]mmap的文件在关闭后释放file指针
2025-02-09 15:55:30 +08:00
zms123456 0ae537e531 [components][dfs]separate dfs fs data structure ops (#9205)
separate dfs fs data structure ops
2025-01-14 14:17:00 +08:00
Shell b63b388d1f feat: add support for dfs remount functionality
This patch introduces a remount feature for the DFS, allowing for the
modification of mount parameters without unmounting the filesystem,
the remount functionality helps modify certain mount flags (like `MS_RDONLY`) without
requiring an unmount, providing more control over mounted filesystems in the system.

The updates is essential for user space init proc to cleanup the runtime
resource, ensuring clean handling of cached data and enhancing system
robustness during power down processing.

Changes:
- Defined new constants for remount flags in `dfs_fs.h`.
- Added the `dfs_remount()` function in `dfs_fs.c` to handle remount operations.
- Introduced a check for unsupported flags and handle error conditions such as invalid paths
  or non-directory targets.
- Updated the `dfs_mnt` structure in `dfs_mnt.h` to include a read-only flag (`MNT_RDONLY`).
- The `dfs_remount()` function allows changing the read-only status of a mounted filesystem.
- Added `MNT_LAZY_UMNT` and `MNT_RDONLY` flags to `dfs_mnt` structure.
- Introduced `dfs_mnt_setflags` function for dynamic flag management.
- Updated `dfs_remount` to utilize `dfs_mnt_setflags` for flag setting.
- Enhanced unmount operations with `dfs_mnt_umount_iter` and lazy unmounting.
- Added `dfs_pcache_clean` to handle cache cleanup for read-only mounts.
- Improved error reporting in `dfs_umount` for better user feedback.
- Refactored `sys_mount` to streamline parameter handling and support remounts.
- Introduced `_cp_from_usr_string` helper for user-space string operations.
- Updated internal APIs to ensure consistency in reference count management.

Signed-off-by: Shell <smokewood@qq.com>
2025-01-06 19:34:16 +08:00
Shell 944f3d05b5 feat: add system reboot and process teardown support
The patch introduces support for system reboot functionality and process teardown,
allowing for a clean shutdown and unmounting of the root filesystem. This is
necessary for ensuring a proper system shutdown process, especially when dealing
with resource cleanup and ensuring that all processes have exited before system
shutdown.

Changes:
- Added `lwp_teardown()` function to handle process cleanup and system teardown.
- Introduced `lwp_pid_wait_for_empty()` to wait for process ID table emptiness
  before proceeding with shutdown.
- Updated `dfs_mnt_unref()` to trigger callbacks when unmounting a filesystem.
- Added new reboot types (`RB_AUTOBOOT`, `RB_POWER_OFF`) and implemented their
  corresponding actions, including cleanup of processes and unmounting root
  filesystem.
- Extended `sys_reboot()` to handle reboot and power off types with appropriate
  callbacks for process and filesystem teardown.
- Introduced callback mechanism for root filesystem unmount notifications.

Signed-off-by: Shell <smokewood@qq.com>
2025-01-06 19:34:16 +08:00
Shell 2cbd5889d1 fixup: dfsv2: seq: aligned proto of lseek to manual
In manual, the prototype of lseek is

`off_t lseek(int fd, off_t offset, int whence);`

where the return type is `off_t` but not ssize_t.

Signed-off-by: Shell <smokewood@qq.com>
2024-09-14 13:30:53 -04:00
geniusgogo 651f23a604 [dfsv2] add dfs pwrite pread 2024-04-09 22:26:58 -04:00
Shellandxqyjlj 83e95bdff4 sync smart & dfs (#8672)
Signed-off-by: xqyjlj <xqyjlj@126.com>
Signed-off-by: Shell <smokewood@qq.com>
Co-authored-by: xqyjlj <xqyjlj@126.com>
2024-03-28 23:42:56 +08:00
Shell 3237efd089 fixup d1s (#8671)
Signed-off-by: Shell <smokewood@qq.com>
2024-03-25 20:29:56 +08:00
Shell bef4bbd50a [dfs] fixup bugs in dfs_dentry_lookup (#8612)
Signed-off-by: Shell <smokewood@qq.com>
2024-03-15 14:57:38 +08:00
geniusgogo 6b22a0a2b7 dfsv2 code tidy. (#8374) 2023-12-16 18:06:47 +08:00
geniusgogo 304ce5919c sync update dfs v2. (#8336) 2023-12-12 18:05:39 +08:00
geniusgogo 74925f43ed fix dfs path name overflow. (#8305) 2023-11-28 17:16:21 +08:00
rcitachi c06f4e98fc [SAL] Update SAL,Add socketpair sendmsg recvmsg function (#8293) 2023-11-28 13:56:06 +08:00
geniusgogo ecd29fda60 Sync dfs lwp (#8123) 2023-10-17 13:07:59 +08:00
xiao-mang 5d16042765 add sys_utimensat (#8124) 2023-10-13 19:21:49 +08:00
geniusgogo 69d94315b8 update dfs (#7887) 2023-08-02 13:59:43 +08:00
xiao-mang befa951451 modify some function prototypes of the dfs_file_ops structure and the function declarations based on it (#7849) 2023-07-24 09:12:35 +08:00
Bernard Xiong 99e80f8d33 [dfs] Add DFS v2.0 (#7606) 2023-06-10 21:35:25 +08:00
Bernard Xiong 9600b75b55 [DFS] prepare for dfs_v2.0 (#7200)
* [DFS] prepare for dfs_v2. dfs_fd -> dfs_file; dfs_fnode -> dfs_vnode.

* [BSP] fix code analysis warning

* [smart] fix the pointer overflow.

* code format

* [smart] fix the lwp->lwp_obj checking.
2023-04-08 22:25:51 +08:00
Bernard Xiong 23955edf53 [DFS] add Kconfig for dfs-v2.0 (#7156)
* [DFS] add Kconfig for dfs-v2.0

* [DFS] Optimize the SConscript.

* [dfs] move old dfs to dfs/dfs_v1
2023-04-04 15:02:56 +08:00