Skip to content

[BUG] 内核多处地方把本应为usec的值,当成了nsec来处理。并且gettimeofday有问题。 #623

@fslongjin

Description

@fslongjin

比如这玩意:
https://code.dragonos.org.cn/xref/DragonOS/kernel/src/time/mod.rs?r=840045af94ea3391f29e87e968db5d9c48316981#48

围绕timespec以及Duration、Instant等结构体,涉及的一系列代码,都把它当成了nsec。而根据linux的规定,这个是usec。从而导致用户程序使用gettimeofday获取到的时间有问题,并且内核的一些行为也有点奇怪。

这一行代码:

https://code.dragonos.org.cn/xref/DragonOS/kernel/src/time/timekeeping.rs?r=5b59005f930266d0e9c0092373e894826150f862&mo=5751&fi=201#183

应当加上delta值,但是没加上。导致用户程序获取的时间精度是秒。

然后update_wall_time函数估计也有点问题。

@houmkh 去年你写time的时候,跟我说到的奇怪的问题,估计是因为这个原因?

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions