<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rt-thread.git/components/drivers/pic/pic.c, branch v5.2.1-beta</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/rt-thread.git/atom/components/drivers/pic/pic.c?h=v5.2.1-beta</id>
<link rel='self' href='http://cgit.235523.xyz/rt-thread.git/atom/components/drivers/pic/pic.c?h=v5.2.1-beta'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/'/>
<updated>2025-02-11T06:58:18Z</updated>
<entry>
<title>[DM] Replace spinlock static init by RT_DEFINE_SPINLOCK</title>
<updated>2025-02-11T06:58:18Z</updated>
<author>
<name>GuEe-GUI</name>
<email>2991707448@qq.com</email>
</author>
<published>2025-02-10T06:19:30Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=f50607628192b7ad1828e811bba238993b9afd55'/>
<id>urn:sha1:f50607628192b7ad1828e811bba238993b9afd55</id>
<content type='text'>
Signed-off-by: GuEe-GUI &lt;2991707448@qq.com&gt;
</content>
</entry>
<entry>
<title>[DM/FIXUP] Fixup PIC ktime depends</title>
<updated>2024-12-13T02:39:20Z</updated>
<author>
<name>GuEe-GUI</name>
<email>2991707448@qq.com</email>
</author>
<published>2024-12-11T09:42:34Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=ec4f375bbc8f4baf88c99d0464842f67a79b3def'/>
<id>urn:sha1:ec4f375bbc8f4baf88c99d0464842f67a79b3def</id>
<content type='text'>
Signed-off-by: GuEe-GUI &lt;2991707448@qq.com&gt;
</content>
</entry>
<entry>
<title>feat: smp_call: added signaling call_req</title>
<updated>2024-11-03T02:08:45Z</updated>
<author>
<name>Shell</name>
<email>smokewood@qq.com</email>
</author>
<published>2024-10-31T03:57:04Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=2f6d98bfcb4a280f396bda0ea412df10834689d5'/>
<id>urn:sha1:2f6d98bfcb4a280f396bda0ea412df10834689d5</id>
<content type='text'>
This patch introduces `rt_smp_call_request` API to handle queued
requests across cores with user provided data buffer, which provides a
way to request IPI through a non-blocking pattern.

It also resolved several issues in the old implementation:
- Multiple requests from different cores can not be queued in the work
  object of the target core.
- Data racing on `rt_smp_work` of same core. If multiple requests came
  in turns, or if the call is used by the target cpu, while a new
  request is coming, the value will be overwrite.
- Memory vulnerability. The rt_smp_event is allocated on stack, though
  the caller may not wait until the call is done.
- API naming problem. Actually we don't provide a way to issue an IPI to
  ANY core in mask. What the API do is aligned to MANY pattern.
- FUNC_IPI registering to PIC.

Changes:
- Declared and configured the new `RT_SMP_CALL_IPI` to support
  functional IPIs for task requests across cores.
- Replaced the single `rt_smp_work` array with `call_req_cores` to
  manage per-core call requests safely.
- Added `_call_req_take` and `_call_req_release` functions for atomic
  handling of request lifetimes, preventing data race conditions.
- Replaced single event handling with a queue-based approach
  (`call_queue`) for efficient multi-request processing per core.
- Introduced `rt_smp_call_ipi_handler` to process queued requests,
  reducing IPI contention by only sending new requests when needed.
- Implemented `_smp_call_remote_request` to handle remote requests
  with specific flags, enabling more flexible core-to-core task
  signaling.
- Refined `rt_smp_call_req_init` to initialize and track requests
  with atomic usage flags, mitigating potential memory vulnerabilities.

Signed-off-by: Shell &lt;smokewood@qq.com&gt;
</content>
</entry>
<entry>
<title>[FEATURE/PIC] support PIC cancel (only in debug)</title>
<updated>2024-09-19T13:14:42Z</updated>
<author>
<name>GuEe-GUI</name>
<email>2991707448@qq.com</email>
</author>
<published>2024-09-11T04:59:55Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=94e49755af3fe7b66f7da531502f3cc5e1ad71b0'/>
<id>urn:sha1:94e49755af3fe7b66f7da531502f3cc5e1ad71b0</id>
<content type='text'>
PIC may free because some wrongs in debug.
We should remove in PIC list or there are
some undefined behavior will happen.

Signed-off-by: GuEe-GUI &lt;2991707448@qq.com&gt;
</content>
</entry>
<entry>
<title>[FIXUP/PIC] pirq's child handler should lock less</title>
<updated>2024-09-19T13:14:42Z</updated>
<author>
<name>GuEe-GUI</name>
<email>2991707448@qq.com</email>
</author>
<published>2024-09-11T04:56:28Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=04cdbc647c28b04d21ddb50fe80210dec30b5927'/>
<id>urn:sha1:04cdbc647c28b04d21ddb50fe80210dec30b5927</id>
<content type='text'>
When call the child handler, the PIC ops needn't
lock again.
Critical zone protection by PIC implementers.

Signed-off-by: GuEe-GUI &lt;2991707448@qq.com&gt;
</content>
</entry>
<entry>
<title>[FIXUP/PIC] set interrupt status when do traps</title>
<updated>2024-09-19T13:14:42Z</updated>
<author>
<name>GuEe-GUI</name>
<email>2991707448@qq.com</email>
</author>
<published>2024-09-11T04:55:31Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=55b40b5164b8583b66122be2d62f141daee776b3'/>
<id>urn:sha1:55b40b5164b8583b66122be2d62f141daee776b3</id>
<content type='text'>
Signed-off-by: GuEe-GUI &lt;2991707448@qq.com&gt;
</content>
</entry>
<entry>
<title>[PIC/FIXUP] pirq reinit fail</title>
<updated>2024-09-19T13:14:42Z</updated>
<author>
<name>GuEe-GUI</name>
<email>2991707448@qq.com</email>
</author>
<published>2024-09-11T04:54:03Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=584f4b869d0cb57d7ee625f3c255dffa4649d205'/>
<id>urn:sha1:584f4b869d0cb57d7ee625f3c255dffa4649d205</id>
<content type='text'>
don't reinit pirq's list if cascade

Signed-off-by: GuEe-GUI &lt;2991707448@qq.com&gt;
</content>
</entry>
<entry>
<title>[components][ktime]support period ktime timeout and multiple ktimer_hrtimer (#8972)</title>
<updated>2024-06-23T14:08:54Z</updated>
<author>
<name>zms123456</name>
<email>85141075+zmshahaha@users.noreply.github.com</email>
</author>
<published>2024-06-23T14:08:54Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=22b5e5fd7b80403d2c58c8361d3678eb7f21df68'/>
<id>urn:sha1:22b5e5fd7b80403d2c58c8361d3678eb7f21df68</id>
<content type='text'>
* support period time

* enable multiple ktimer

* mv set delay_cnt to hrtimer_start

* add ktime debug info

* change current_irq_begin to local var

* fix bug: setting current timer and setting timeout in driver aren't atomicly

* create-&gt;init

* refactoring ktime</content>
</entry>
<entry>
<title>[DM/feature] Implement PIC irq state { get; set } (#9006)</title>
<updated>2024-05-31T09:37:39Z</updated>
<author>
<name>GUI</name>
<email>39894654+GuEe-GUI@users.noreply.github.com</email>
</author>
<published>2024-05-31T09:37:39Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=1d614a819d0d204b6061cac49daa168047b45903'/>
<id>urn:sha1:1d614a819d0d204b6061cac49daa168047b45903</id>
<content type='text'>
* [DM/feature] Implement PIC irq state { get; set }

There are some common state for irq:
1. Pending: IRQ was triggered, but software not ACK.
2. Active: IRQ was ACK, but not EOI.
3. Masked: IRQ was masked or umasked.

Signed-off-by: GuEe-GUI &lt;2991707448@qq.com&gt;

* [DM/pic] Support IRQ state { get; set } for ARM GICv2/v3

Signed-off-by: GuEe-GUI &lt;2991707448@qq.com&gt;

---------

Signed-off-by: GuEe-GUI &lt;2991707448@qq.com&gt;</content>
</entry>
<entry>
<title> [PIC] Make affinity helper interface (#8995)</title>
<updated>2024-05-28T01:55:24Z</updated>
<author>
<name>GUI</name>
<email>39894654+GuEe-GUI@users.noreply.github.com</email>
</author>
<published>2024-05-28T01:55:24Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=de352aee62e55ec2bc0b142355c14f7895e4bd78'/>
<id>urn:sha1:de352aee62e55ec2bc0b142355c14f7895e4bd78</id>
<content type='text'>
* [PIC] Make affinity helper interface

Signed-off-by: GuEe-GUI &lt;2991707448@qq.com&gt;

* [PIC/GIC] Fixup GIC affinity init

GICv2 is not support if current CPU is not startup,
but RT-Thread SMP is startup after the devices init
in the `main` thread.

This patch fixup the cpumask to init once and check
the init status in affinity interface.

Signed-off-by: GuEe-GUI &lt;2991707448@qq.com&gt;

---------

Signed-off-by: GuEe-GUI &lt;2991707448@qq.com&gt;</content>
</entry>
</feed>
