Skip to content

Conversation

@htl5241
Copy link
Contributor

@htl5241 htl5241 commented Jun 3, 2025

拉取/合并请求描述:(PR description)

[

为什么提交这份PR (why to submit this PR)

你的解决方案是什么 (what is your solution)

请提供验证的bsp和config (provide the config and bsp)

  • BSP:
  • .config:
  • action:

]

当前拉取/合并请求的状态 Intent for your PR

必须选择一项 Choose one (Mandatory):

  • 本拉取/合并请求是一个草稿版本 This PR is for a code-review and is intended to get feedback
  • 本拉取/合并请求是一个成熟版本 This PR is mature, and ready to be integrated into the repo

代码质量 Code Quality:

我在这个拉取/合并请求中已经考虑了 As part of this pull request, I've considered the following:

  • 已经仔细查看过代码改动的对比 Already check the difference between PR and old code
  • 代码风格正确,包括缩进空格,命名及其他风格 Style guide is adhered to, including spacing, naming and other styles
  • 没有垃圾代码,代码尽量精简,不包含#if 0代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up
  • 所有变更均有原因及合理的,并且不会影响到其他软件组件代码或BSP All modifications are justified and not affect other components or BSP
  • 对难懂代码均提供对应的注释 I've commented appropriately where code is tricky
  • 代码是高质量的 Code in this PR is of high quality
  • 已经使用formatting 等源码格式化工具确保格式符合RT-Thread代码规范 This PR complies with RT-Thread code specification
  • 如果是新增bsp, 已经添加ci检查到.github/workflows/bsp_buildings.yml 详细请参考链接BSP自查

@github-actions github-actions bot added Kernel PR has src relate code tools labels Jun 3, 2025
@htl5241
Copy link
Contributor Author

htl5241 commented Jun 3, 2025

test.zip
任务丢失测试代码

@htl5241
Copy link
Contributor Author

htl5241 commented Jun 3, 2025

这个代码因为修改幅度比较大,所以整个文件做了格式化操作。还有已经过了测试,稳定性没问题。

@htl5241
Copy link
Contributor Author

htl5241 commented Jun 3, 2025

因为调度代码被执行的比较频繁,所以做了性能优化,cortex-m4在100mhz 下性能最低提升15%

@htl5241
Copy link
Contributor Author

htl5241 commented Jun 3, 2025

你们可以先跑这个文件的稳定性,完全没问题在拉入。我已经测试了10多天了。

@supperthomas
Copy link
Member

supperthomas commented Jun 3, 2025

不同的PR,可以用不同的分支名称,不需要放到一起。
新的PR开始之前,先基于origin/master上进行创建修改分支。

@Rbb666
Copy link
Member

Rbb666 commented Jun 3, 2025

CI有编译报错,请先解决下:

image

代码可以用:formatting 脚本格式化下

rt_ubase_t highest_ready_priority;

to_thread = _scheduler_get_highest_priority_thread(&highest_ready_priority);
_scheduler_update_highest_priority();
Copy link
Member

Choose a reason for hiding this comment

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

这里为什么需要先更新最高优先级的任务?什么情况下,需要手动更新这个?

@htl5241
Copy link
Contributor Author

htl5241 commented Jun 3, 2025

CI有编译报错,请先解决下:

image

代码可以用:formatting 脚本格式化下

ok

@htl5241
Copy link
Contributor Author

htl5241 commented Jun 3, 2025

CI有编译报错,请先解决下:

image

代码可以用:formatting 脚本格式化下

我测试了famatting 和clang-format效果一样

@htl5241 htl5241 requested a review from Guozhanxin June 5, 2025 12:04
@github-actions
Copy link

github-actions bot commented Jun 10, 2025

📌 Code Review Assignment

🏷️ Tag: kernel

Path: src
Reviewers: GorrayLi

Changed Files (Click to expand)
  • src/scheduler_up.c

📊 Current Review Status (Last Updated: 2025-06-11 05:07 UTC)

  • GorrayLi Pending Review

📝 Review Instructions

  1. 维护者可以通过单击此处来刷新审查状态: 🔄 刷新状态
    Maintainers can refresh the review status by clicking here: 🔄 Refresh Status

  2. 确认审核通过后评论 LGTM/lgtm
    Comment LGTM/lgtm after confirming approval

  3. PR合并前需至少一位维护者确认
    PR must be confirmed by at least one maintainer before merging

ℹ️ 刷新CI状态操作需要具备仓库写入权限。
ℹ️ Refresh CI status operation requires repository Write permission.

@GorrayLi
Copy link
Contributor

GorrayLi commented Jun 10, 2025

建议先描述一下本次PR要解决什么问题,以及解决方案是什么?以便reviewer能更容易理解修改代码的意图。@htl5241

@htl5241 htl5241 closed this Jun 10, 2025
@htl5241
Copy link
Contributor Author

htl5241 commented Jun 10, 2025

建议先描述一下本次PR要解决什么问题,以及解决方案是什么?以便reviewer能更容易理解修改代码的意图。@htl5241

不停的新建任务,退出任务,就会丢失任务。还有就是优化性能,这次pr性能提升很多。

@htl5241
Copy link
Contributor Author

htl5241 commented Jun 10, 2025

建议先描述一下本次PR要解决什么问题,以及解决方案是什么?以便reviewer能更容易理解修改代码的意图。@htl5241

还有就是你看这个pr都描述了,还有其他维护人员留了两行字就不见了。

@htl5241 htl5241 reopened this Jun 10, 2025
#include <rtdbg.h>

rt_list_t rt_thread_priority_table[RT_THREAD_PRIORITY_MAX];
rt_list_t rt_thread_priority_table[RT_THREAD_PRIORITY_MAX];
Copy link
Contributor

Choose a reason for hiding this comment

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

多余空格请去掉。

extern volatile rt_atomic_t rt_interrupt_nest;
static rt_int16_t rt_scheduler_lock_nest;
rt_uint8_t rt_current_priority;
static rt_int16_t rt_scheduler_lock_nest;
Copy link
Contributor

Choose a reason for hiding this comment

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

同上,去掉多余空格。

{
#if RT_THREAD_PRIORITY_MAX > 32
RT_SCHED_PRIV(thread).number = RT_SCHED_PRIV(thread).current_priority >> 3; /* 5bit */
RT_SCHED_PRIV(thread).number = RT_SCHED_PRIV(thread).current_priority >> 3; /* 5bit */
Copy link
Contributor

Choose a reason for hiding this comment

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

同上,去掉多余空格。

RT_SCHED_PRIV(thread).high_mask = 1L << (RT_SCHED_PRIV(thread).current_priority & 0x07); /* 3bit */
RT_SCHED_PRIV(thread).high_mask =
1L
<< (RT_SCHED_PRIV(thread).current_priority & 0x07); /* 3bit */
Copy link
Contributor

Choose a reason for hiding this comment

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

这行代码不必要分成三行。

RT_SCHED_PRIV(thread).number_mask = 0;
#if RT_THREAD_PRIORITY_MAX > 32
RT_SCHED_PRIV(thread).number = 0;
RT_SCHED_PRIV(thread).number = 0;
Copy link
Contributor

Choose a reason for hiding this comment

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

同上,空格问题。


/* tick init */
RT_SCHED_PRIV(thread).init_tick = tick;
RT_SCHED_PRIV(thread).init_tick = tick;
Copy link
Contributor

Choose a reason for hiding this comment

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

同上,空格问题。

if (critical_level != rt_scheduler_lock_nest)
{
int dummy = 1;
int dummy = 1;
Copy link
Contributor

Choose a reason for hiding this comment

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

同上,不必要的空格。

@htl5241
Copy link
Contributor Author

htl5241 commented Jun 10, 2025

clang-format.zip
这个是我从kernel 复制过来的,稍微微调了一下参数。

@htl5241 htl5241 requested a review from GorrayLi June 10, 2025 13:45
@GorrayLi
Copy link
Contributor

image
CI有报错,请修复。

@GorrayLi
Copy link
Contributor

建议先描述一下本次PR要解决什么问题,以及解决方案是什么?以便reviewer能更容易理解修改代码的意图。@htl5241

不停的新建任务,退出任务,就会丢失任务。还有就是优化性能,这次pr性能提升很多。

  1. “丢失任务”的具体现象是什么?是删除后(有残留)无法再创建?
  2. “性能提升”具体指的是哪方面的性能提升?

{
if (rt_thread_self())
{
if (rt_thread_self()) {
Copy link
Contributor

Choose a reason for hiding this comment

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

根据rt_thread的编码规范,花括号应独占一行。这里需要回退。


for (offset = 0; offset < RT_THREAD_PRIORITY_MAX; offset ++)
{
for (offset = 0; offset < RT_THREAD_PRIORITY_MAX; ++offset) {
Copy link
Contributor

Choose a reason for hiding this comment

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

同上,花括号独占一行。

{
need_insert_from_thread = 1;
}
if (rt_scheduler_lock_nest == 0 && rt_thread_ready_priority_group) {
Copy link
Contributor

Choose a reason for hiding this comment

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

花括号独占一行。

need_insert_from_thread = RT_FALSE;
curr_thread = rt_thread_self();

if ((RT_SCHED_CTX(curr_thread).stat & RT_THREAD_STAT_MASK) == RT_THREAD_RUNNING) {
Copy link
Contributor

@GorrayLi GorrayLi Jun 11, 2025

Choose a reason for hiding this comment

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

花括号独占一行,代码中其它同样的情况请一并修改。

@htl5241
Copy link
Contributor Author

htl5241 commented Jun 11, 2025

建议先描述一下本次PR要解决什么问题,以及解决方案是什么?以便reviewer能更容易理解修改代码的意图。@htl5241

不停的新建任务,退出任务,就会丢失任务。还有就是优化性能,这次pr性能提升很多。

1. “丢失任务”的具体现象是什么?是删除后(有残留)无法再创建?

2. “性能提升”具体指的是哪方面的性能提升?

你们如果不接收我也没必要和你们来回扯皮,给你们复现的程序自己去测试。

@htl5241
Copy link
Contributor Author

htl5241 commented Jun 11, 2025

给复现程序了,自己不去复现,性能也不去做测试,只卡你能不能融入主线。还有就是项目这样那样限制你格式,那就提供能用的clang-format。所以说国内的开源项目特抽象。

@htl5241
Copy link
Contributor Author

htl5241 commented Jun 11, 2025

scheduler_up.zip
这个是修改后的文件,性能提升不提升,自己去做测试。

@htl5241 htl5241 closed this Jun 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Kernel PR has src relate code tools

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants