| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
timerfd: notify application of system relatime changes refs : https://man7.org/linux/man-pages/man2/timerfd_create.2.html If the associated clock is either CLOCK_REALTIME or CLOCK_REALTIME_ALARM, the timer is absolute (TFD_TIMER_ABSTIME), and the flag TFD_TIMER_CANCEL_ON_SET was specified when calling timerfd_settime(), then read(2) fails with the error ECANCELED if the real-time clock undergoes a discontinuous change. (This allows the reading application to discover such discontinuous changes to the clock.) examples code: { int nevents = epoll_wait(epollfd, events, N_ANDROID_TIMERFDS, -1); if (nevents < 0) { return nevents; } int result = 0; for (int i = 0; i < nevents; i++) { uint32_t alarm_idx = events[i].data.u32; uint64_t unused; ssize_t err = read(fds[alarm_idx], &unused, sizeof(unused)); if (err < 0 && errno != EAGAIN) { if (errno == ECANCELED) { //get time changed } else { return err; } } else { //.... } } } Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com> | 2 个月前 | |
timerfd: notify application of system relatime changes refs : https://man7.org/linux/man-pages/man2/timerfd_create.2.html If the associated clock is either CLOCK_REALTIME or CLOCK_REALTIME_ALARM, the timer is absolute (TFD_TIMER_ABSTIME), and the flag TFD_TIMER_CANCEL_ON_SET was specified when calling timerfd_settime(), then read(2) fails with the error ECANCELED if the real-time clock undergoes a discontinuous change. (This allows the reading application to discover such discontinuous changes to the clock.) examples code: { int nevents = epoll_wait(epollfd, events, N_ANDROID_TIMERFDS, -1); if (nevents < 0) { return nevents; } int result = 0; for (int i = 0; i < nevents; i++) { uint32_t alarm_idx = events[i].data.u32; uint64_t unused; ssize_t err = read(fds[alarm_idx], &unused, sizeof(unused)); if (err < 0 && errno != EAGAIN) { if (errno == ECANCELED) { //get time changed } else { return err; } } else { //.... } } } Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com> | 2 个月前 | |
sched: migrate to SPDX identifier Most tools used for compliance and SBOM generation use SPDX identifiers This change brings us a step closer to an easy SBOM generation. Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com> Signed-off-by: ligd <liguiding1@xiaomi.com> | 2 个月前 | |
perf: add perf_setup() support backtrace: 0 0x006212d2 in spin_lock_notrace (lock=0x405d8108 <g_perf+24>) at /home/wangzhi/disk/project/specific product-rc04/nuttx/include/nuttx/spinlock.h:161 1 spin_lock_irqsave_notrace (lock=0x405d8108 <g_perf+24>) at /home/wangzhi/disk/project/specific product-rc04/nuttx/include/nuttx/spinlock.h:420 2 spin_lock_irqsave (lock=0x405d8108 <g_perf+24>) at /home/wangzhi/disk/project/specific product-rc04/nuttx/include/nuttx/spinlock.h:468 3 perf_gettime () at clock/clock_perf.c:91 4 0x00619958 in nxsched_critmon_csection (tcb=0x402977d0 <g_idletcb>, state=true, caller=caller@entry=0x61f653 <wd_start_abstick+82>) at sched/sched_critmonitor.c:269 5 0x00613274 in enter_critical_section () at irq/irq_csection.c:121 6 0x0061f652 in wd_start_abstick (wdog=wdog@entry=0x405d80f0 <g_perf>, ticks=<optimised out>, wdentry=0x6213d1 <perf_update>, arg=1079869680) at wdog/wd_start.c:292 7 0x0061f8d6 in wd_start (wdog=wdog@entry=0x405d80f0 <g_perf>, delay=<optimised out>, wdentry=wdentry@entry=0x6213d1 <perf_update>, arg=1079869680) at wdog/wd_start.c:390 8 0x006213b0 in perf_gettime () at clock/clock_perf.c:103 9 0x0063876e in note_common (tcb=tcb@entry=0x402977d0 <g_idletcb>, note=note@entry=0x410a9f70, length=length@entry=26 '\032', type=type@entry=1 '\001') at note/note_driver.c:212 10 0x006389d2 in sched_note_start (tcb=tcb@entry=0x402977d0 <g_idletcb>) at note/note_driver.c:752 11 0x00611ef2 in nx_start () at init/nx_start.c:813 Resolve: let the perf_gettime() don't call wd_start() Signed-off-by: ligd <liguiding1@xiaomi.com> | 2 个月前 | |
sched/wdog: Revert to critical-sections. This commit reverted wdog to critical-sections. Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com> Signed-off-by: ligd <liguiding1@xiaomi.com> | 2 个月前 | |
clock_getres:add check for clock_id A call to clock_getres() when clock_id does not specify a known clock shall return -1 and set errno to EINVAL. Signed-off-by: tengshuangshuang <tengshuangshuang@xiaomi.com> | 2 个月前 | |
sched/clock: Fix clock_gettime if clock_id is invalid. This commit corrected the return value of the clock_gettime if clock_id is invalid. Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com> | 2 个月前 | |
perf: add perf_setup() support backtrace: 0 0x006212d2 in spin_lock_notrace (lock=0x405d8108 <g_perf+24>) at /home/wangzhi/disk/project/specific product-rc04/nuttx/include/nuttx/spinlock.h:161 1 spin_lock_irqsave_notrace (lock=0x405d8108 <g_perf+24>) at /home/wangzhi/disk/project/specific product-rc04/nuttx/include/nuttx/spinlock.h:420 2 spin_lock_irqsave (lock=0x405d8108 <g_perf+24>) at /home/wangzhi/disk/project/specific product-rc04/nuttx/include/nuttx/spinlock.h:468 3 perf_gettime () at clock/clock_perf.c:91 4 0x00619958 in nxsched_critmon_csection (tcb=0x402977d0 <g_idletcb>, state=true, caller=caller@entry=0x61f653 <wd_start_abstick+82>) at sched/sched_critmonitor.c:269 5 0x00613274 in enter_critical_section () at irq/irq_csection.c:121 6 0x0061f652 in wd_start_abstick (wdog=wdog@entry=0x405d80f0 <g_perf>, ticks=<optimised out>, wdentry=0x6213d1 <perf_update>, arg=1079869680) at wdog/wd_start.c:292 7 0x0061f8d6 in wd_start (wdog=wdog@entry=0x405d80f0 <g_perf>, delay=<optimised out>, wdentry=wdentry@entry=0x6213d1 <perf_update>, arg=1079869680) at wdog/wd_start.c:390 8 0x006213b0 in perf_gettime () at clock/clock_perf.c:103 9 0x0063876e in note_common (tcb=tcb@entry=0x402977d0 <g_idletcb>, note=note@entry=0x410a9f70, length=length@entry=26 '\032', type=type@entry=1 '\001') at note/note_driver.c:212 10 0x006389d2 in sched_note_start (tcb=tcb@entry=0x402977d0 <g_idletcb>) at note/note_driver.c:752 11 0x00611ef2 in nx_start () at init/nx_start.c:813 Resolve: let the perf_gettime() don't call wd_start() Signed-off-by: ligd <liguiding1@xiaomi.com> | 2 个月前 | |
sched/misc: remove the name in X_NOTIFIER_INIT macro Make the notify head declare more common. Signed-off-by: buxiasen <buxiasen@xiaomi.com> | 2 个月前 | |
perf: add noinstrument_function to up_perf_gettime and related functions Add noinstrument_function attribute to up_perf_gettime and its helper functions (like cp15_pmu_rdccr) across all architectures. These functions are called by perf_gettime which is used in the instrument callback path, and must not be instrumented to avoid infinite recursion when CONFIG_ARCH_INSTRUMENT_ALL is enabled. Signed-off-by: yezhonghui <yezhonghui@xiaomi.com> | 2 个月前 | |
clock: change realtime2absticks() to function Signed-off-by: ligd <liguiding1@xiaomi.com> | 2 个月前 | |
timerfd: notify application of system relatime changes refs : https://man7.org/linux/man-pages/man2/timerfd_create.2.html If the associated clock is either CLOCK_REALTIME or CLOCK_REALTIME_ALARM, the timer is absolute (TFD_TIMER_ABSTIME), and the flag TFD_TIMER_CANCEL_ON_SET was specified when calling timerfd_settime(), then read(2) fails with the error ECANCELED if the real-time clock undergoes a discontinuous change. (This allows the reading application to discover such discontinuous changes to the clock.) examples code: { int nevents = epoll_wait(epollfd, events, N_ANDROID_TIMERFDS, -1); if (nevents < 0) { return nevents; } int result = 0; for (int i = 0; i < nevents; i++) { uint32_t alarm_idx = events[i].data.u32; uint64_t unused; ssize_t err = read(fds[alarm_idx], &unused, sizeof(unused)); if (err < 0 && errno != EAGAIN) { if (errno == ECANCELED) { //get time changed } else { return err; } } else { //.... } } } Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com> | 2 个月前 | |
seqlock: Better implementation of the seqlock. This commit provided a better implementation of the seqlock, which ensure the functional correctness and provide better performance. Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com> | 2 个月前 | |
sched/clock: call up_timer_gettime() to get higher resolution Signed-off-by: ligd <liguiding1@xiaomi.com> | 2 个月前 | |
timerfd: notify application of system relatime changes refs : https://man7.org/linux/man-pages/man2/timerfd_create.2.html If the associated clock is either CLOCK_REALTIME or CLOCK_REALTIME_ALARM, the timer is absolute (TFD_TIMER_ABSTIME), and the flag TFD_TIMER_CANCEL_ON_SET was specified when calling timerfd_settime(), then read(2) fails with the error ECANCELED if the real-time clock undergoes a discontinuous change. (This allows the reading application to discover such discontinuous changes to the clock.) examples code: { int nevents = epoll_wait(epollfd, events, N_ANDROID_TIMERFDS, -1); if (nevents < 0) { return nevents; } int result = 0; for (int i = 0; i < nevents; i++) { uint32_t alarm_idx = events[i].data.u32; uint64_t unused; ssize_t err = read(fds[alarm_idx], &unused, sizeof(unused)); if (err < 0 && errno != EAGAIN) { if (errno == ECANCELED) { //get time changed } else { return err; } } else { //.... } } } Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com> | 2 个月前 | |
sched: migrate to SPDX identifier Most tools used for compliance and SBOM generation use SPDX identifiers This change brings us a step closer to an easy SBOM generation. Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com> Signed-off-by: ligd <liguiding1@xiaomi.com> | 2 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 |