Skip to content

Conversation

donjuanplatinum
Copy link
Contributor

No description provided.

@dragonosbot
Copy link
Contributor

r? @fslongjin

dragonosbot has assigned @fslongjin.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@dragonosbot dragonosbot added A-fs Area: 文件系统 S-等待审查 Status: 等待assignee以及相关方的审查。 labels May 19, 2024
@github-actions github-actions bot added the enhancement New feature or request label May 19, 2024
@yuyi2439
Copy link
Contributor

fmt一下

@donjuanplatinum
Copy link
Contributor Author

fmt一下

好的

Copy link
Member

@fslongjin fslongjin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dragonosbot author

groups: usize,

///是否是内核进程
kthread: usize,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这个地方通过PCB的那个标志位就能够判断了,而不是单独加这样的一个字段。

uid: [usize; 4],

///组id
gid: [usize; 4],
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

为什么是四个usize?

@@ -604,6 +604,28 @@ pub struct ProcessControlBlock {
pid: Pid,
/// 当前进程的线程组id(这个值在同一个线程组内永远不变)
tgid: Pid,
/// Numa Groud Id
ngid: Pid,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这种东西可能会变的话,那应该要放到basic info或者调度的那个schedule info里面

umask: usize,

///跟踪进程PID
tracer_pid: Pid,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这种目前没实现的,PCB里面就根本不用加。

ngid: Pid,

///进程默认权限掩码
umask: usize,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

同样的道理,目前没实现的内容不用加,因为他还跟其他机制有关。

gid: [usize; 4],

///文件描述符数量
fdsize: usize,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这个数量也是可以直接获取的,完全没必要存储

@dragonosbot dragonosbot added S-等待作者修改 Status: 这正在等待作者的一些操作(例如代码更改或更多信息)。 and removed S-等待审查 Status: 等待assignee以及相关方的审查。 labels May 19, 2024
@donjuanplatinum donjuanplatinum requested a review from fslongjin May 19, 2024 16:06
@dragonosbot dragonosbot added S-等待审查 Status: 等待assignee以及相关方的审查。 and removed S-等待作者修改 Status: 这正在等待作者的一些操作(例如代码更改或更多信息)。 labels May 19, 2024
Copy link
Member

@fslongjin fslongjin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

看得出你的用心,不过你应该是对rust的一些常见的代码规范不太熟悉,可以去看一下rust语言圣经里面的一些惯用法,目前这个代码还是太偏c的味道了哈哈哈

pub fn size(&self) -> usize {
let mut index: usize = 0;
let mut size: usize = 0;
while self.fds[index].is_some() {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这样子写是不符合rust的代码规范的,可以让gpt教你改一下。Rust 一般不循环数组下标

pdata.append(
&mut format!("\nPpid:\t{}", pcb.basic().ppid().into())
.as_bytes()
.to_owned(),
);

//fdsize
pdata.append(&mut format!("\nFDSize:\t{}", pcb.fdsize()).into());
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

注释斜杠后面要加空格

@dragonosbot dragonosbot added S-等待作者修改 Status: 这正在等待作者的一些操作(例如代码更改或更多信息)。 and removed S-等待审查 Status: 等待assignee以及相关方的审查。 labels May 19, 2024
@donjuanplatinum donjuanplatinum requested a review from fslongjin May 19, 2024 22:47
@dragonosbot dragonosbot added S-等待审查 Status: 等待assignee以及相关方的审查。 and removed S-等待作者修改 Status: 这正在等待作者的一些操作(例如代码更改或更多信息)。 labels May 19, 2024
@fslongjin
Copy link
Member

r? @GnoCiYeH
麻烦看看这个&测一下哈哈哈。我目测感觉好像还行

@donjuanplatinum donjuanplatinum requested a review from GnoCiYeH May 23, 2024 15:10
@donjuanplatinum donjuanplatinum requested a review from fslongjin May 24, 2024 14:22
Copy link
Member

@chiichen chiichen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

提个小建议,PR的时候可以简单描述一下自己的工作做了什么内容,向内核提交的更改最好有测试用例和运行结果展示,比如这里的改动,就可以是cat一个profs里的一个进程,然后输出一些信息

/// # 返回值
///
/// 若进程是内核进程则返回true 否则返回false
pub fn kthread(&self) -> bool {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

命名为is_kthread比较好

@@ -681,6 +692,7 @@ impl ProcessControlBlock {
let cwd = ProcessManager::current_pcb().basic().cwd();
(Self::generate_pid(), ppid, cwd)
};
let ngid = Pid(0);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这个创建了在哪里会用到吗

@donjuanplatinum donjuanplatinum requested a review from chiichen May 27, 2024 15:52
@donjuanplatinum
Copy link
Contributor Author

为procfs增加是否是kthread的显示
增加返回进程已经占用的文件描述符数量

@fslongjin fslongjin merged commit 3d4cd85 into DragonOS-Community:master May 28, 2024
@donjuanplatinum donjuanplatinum deleted the procfs-1 branch May 29, 2024 11:54
chiichen added a commit that referenced this pull request Sep 2, 2024
* docs(sched):调度子系统文档即cfs文档 (#807)

* 调度子系统文档以及cfs文档

* fix(net): Fix TCP Unresponsiveness and Inability to Close Connections (#791)

* fix(net): Improve stability. 为RawSocket与UdpSocket实现close时调用close方法,符合smoltcp的行为。为SocketInode实现drop,保证程序任何情况下退出时都能正确close对应socket, 释放被占用的端口。

* fix(net): Correct socket close behavior.

* fix: disable mm debug log to prevent system lockup due to thingbuf issue (#808)

* 添加支持gentoo系统的一键安装脚本 (#809)

* feat(driver/pci): add pci bus into sysfs (#792)

把pci设备加入sysfs

* doc: Add Gentoo Linux In build_system.md (#810)

* 增加安装文档中的Gentoo Linux提示

* doc: add v0.1.10 changelog (#813)

* 完成v0.1.10 changelog

* fix(driver/apic_timer): 修复local apic timer初始化顺序导致的在某些云服务器上无法收到中断的bug (#815)

* chore: move setup_arch_post timepoint to before clocksource_boot_finish (#820)

This commit adjusts the timing of the setup_arch_post event to occur before the clocksource_boot_finish event, allowing the time subsystem to properly register architecture-specific clock sources.

* feat(log): 将内核日志统一为新的logger (#814)

* fix(log): 修复pr #814 的问题 (#821)

* feat(driver/pci): 完善pci root结构体,增加portio的pci配置空间访问 (#818)

* feat(driver/pci): 完善pci root结构体,增加portio的pci配置空间访问

* 增加rust sparse稀疏索引选项 (#826)

* fix(time):修复了issue #816 (#830)

* chore(tools): add the gentoo grub_auto_install support (#827)

* 20240524 3:40

* 20240527 0010

* 修复mmap未延迟分配内存的问题

* feat(procfs): update procfs (#831)

为procfs增加是否是kthread的显示
增加返回进程已经占用的文件描述符数量

* Revert "Merge branch 'patch-add-file-mapping' into patch-fix-mmap"

This reverts commit 8eb687c, reversing
changes made to 33e9f0b.

* 20240528 1800

* Revert "Revert "Merge branch 'patch-add-file-mapping' into patch-fix-mmap""

This reverts commit 9261cb7.

* feat(mm): 修复mmap未延迟分配内存的问题 (#837)

* 20240524 3:40

* 20240527 0010

* 修复mmap未延迟分配内存的问题

* Revert "Merge branch 'patch-add-file-mapping' into patch-fix-mmap"

This reverts commit 8eb687c, reversing
changes made to 33e9f0b.

* update-20240529-0347

* fix(driver): fix memory security problem in tty device ioctl (#833)

* add soft link to musl-gcc

* fix the tty_ioctl

* modified

* modified

* update 20240604 0233

* feat(user): user management tool (#825)

* 用户管理工具

* 重构

* 改为多个bin文件入口

* bin文件的usage显示自身程序名而非固定程序名

* update 20240606 1800

* update 20240607 0200

* update 20240617 1747

* 重写页面保护标志的构造逻辑

* update20240620 1726

* 添加Riscv64的protection_map

* 简单实现fat文件系统的文件映射,添加msync系统调用

* trait FileSystem增加统一接口

* MountFS实现文件映射相关接口

* 格式化代码

* feat(time): Add syscall support for utime* (#838)

* feat(vfs): Add syscall support for utime*

impl sys_utimensat
impl sys_utimes
add utimensat test
fix some warning

* fix(vfs): Verify pointer validity

* fix: remove bad cfg

* pagecache存储方式由HashMap改为XArray

* 修复mprotect系统调用未正确设置vm_flags的错误 (#847)

* fix(time): modify update wall time (#836)

更改了时间子系统的update_wall_time函数,通过读取当前周期数,计算delta值进行更新,而不是通过传入delta值进行更新

* chore: 调整triagebot.toml以适应新的组织架构 (#848)

* doc: 完善README.md (#849)

* doc: 完善README.md

* chore: 更新sphinx相关配置,适应read the docs的更新 (#850)

根据read the docs在7月15日blog,进行此修改

https://about.readthedocs.com/blog/2024/07/addons-by-default/

* feat(driver/net): 实现Loopback网卡接口 (#845)

* 初步实现loopback设备

* fix: build-scripts和tools目录下的make check指定工具链版本 (#861)

* fix: tcp poll没有正确处理posix socket的listen状态的问题 (#859)

* 使用读写锁包装Page结构体

* chore: 将工具链更新到2024-07-23 (#864)

* chore: 将工具链更新到2024-07-23

* PageCache由存放物理地址改为直接存放页面

* 优化protection_map的初始化方式

* feat(fs): add eventfd syscall support (#858)

* feat(fs): add eventfd syscall support

* refactor: 删除过时的va-pa转换函数,改为统一使用MMArch (#862)

* 添加shrink_list方法释放页面

* 默认nightly-2024-07-23 & config改为config.toml (#872)

* fix: 修复由于升级到2024-07-23工具链之后,某些机器上面内核运行一直fault的问题。 (#870)

* fix: 修复由于升级到2024-07-23工具链之后,某些机器上面内核运行一直fault的问题。

* 添加页面回收机制

* 添加页面回收内核线程

* feat(cred): 初步实现Cred (#846)

* 初步实现Cred

* 添加seteuid和setegid

* 添加cred测试程序

* 修改Cred::fscmp返回结果为CredFsCmp枚举

* 完善root用户相关信息

* fix: 修复键盘码解析器没能正确处理类似ctrl C的控制字符的问题 (#877)

* fix: 修复键盘码解析器没能正确处理类似ctrl C的控制字符的问题

* fix: 解决ntty潜在的panic问题

* 缺页中断使用的锁修改为irq_save; 添加脏页回写机制

* 优化代码结构,添加部分注释

* ci: enable ci workflow on branches other than master (#891)

* 修复unlink、unlinkat系统调用的路径错误 (#892)

* fix: socket shutdown wrong implement (#893)

* feat: 增加tokio异步运行时支持 (#894)

* fix the EventFdFlags error

* feat: support tokio (Single thread version)

Fix deadlock issue on closing file.
Add function for PipeInode and EventFdInode.

* 优化PageCache的创建

* fix: pipe 读取/写入阻塞时,无法kill进程的问题 (#889)

* 将入口点改为链接器;修正链接器加载地址

* 修复合并错误

* 修复do_cow_page死锁问题

* 将PageFaultMessage中的地址对齐

* auxv添加随机数指针;修复AtType序号错误

* 简单实现用户栈的16字节对齐

* 通过check fmt

* 完善用户栈的字节对齐机制

* 通过riscv64编译

* 修改测试程序路径

* 添加动态库libgcc_s.so.1

---------

Co-authored-by: GnoCiYeH <[email protected]>
Co-authored-by: Samuel Dai <[email protected]>
Co-authored-by: LoGin <[email protected]>
Co-authored-by: donjuanplatinum <[email protected]>
Co-authored-by: 曾俊 <[email protected]>
Co-authored-by: Mingtao Huang <[email protected]>
Co-authored-by: BrahmaMantra <[email protected]>
Co-authored-by: laokengwt <[email protected]>
Co-authored-by: Jomo <[email protected]>
Co-authored-by: linfeng <[email protected]>
Co-authored-by: SMALLC <[email protected]>
Co-authored-by: linfeng <[email protected]>
Co-authored-by: Chiichen <[email protected]>
Co-authored-by: Samuel Dai <[email protected]>
BrahmaMantra pushed a commit to BrahmaMantra/DragonOS that referenced this pull request Dec 9, 2024
为procfs增加是否是kthread的显示
增加返回进程已经占用的文件描述符数量
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-fs Area: 文件系统 enhancement New feature or request S-等待审查 Status: 等待assignee以及相关方的审查。
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants