<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rt-thread.git/components/drivers/pic/pic-gic-common.c, branch copilot/create-dfs2-documentation</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-gic-common.c?h=copilot%2Fcreate-dfs2-documentation</id>
<link rel='self' href='http://cgit.235523.xyz/rt-thread.git/atom/components/drivers/pic/pic-gic-common.c?h=copilot%2Fcreate-dfs2-documentation'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/'/>
<updated>2025-07-11T23:16:25Z</updated>
<entry>
<title>[DM/PIC] Config IPI by RT_MAX_IPI</title>
<updated>2025-07-11T23:16:25Z</updated>
<author>
<name>GuEe-GUI</name>
<email>2991707448@qq.com</email>
</author>
<published>2025-07-11T01:26:13Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=30ab08c7c9f80bca1bd8aa4e5caa6d423b087cc1'/>
<id>urn:sha1:30ab08c7c9f80bca1bd8aa4e5caa6d423b087cc1</id>
<content type='text'>
Signed-off-by: GuEe-GUI &lt;2991707448@qq.com&gt;
</content>
</entry>
<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>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>[fix]fix compile err in pic-gic (#9015)</title>
<updated>2024-05-31T09:33:34Z</updated>
<author>
<name>zms123456</name>
<email>85141075+zmshahaha@users.noreply.github.com</email>
</author>
<published>2024-05-31T09:33:34Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=ef184d2157f8f72ab4b934a49e73df4c87e40bd5'/>
<id>urn:sha1:ef184d2157f8f72ab4b934a49e73df4c87e40bd5</id>
<content type='text'>
fix compile err in pic-gic</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>
<entry>
<title>[components][drivers]add pic-gic (#8388)</title>
<updated>2024-02-29T01:39:56Z</updated>
<author>
<name>zms123456</name>
<email>85141075+zmshahaha@users.noreply.github.com</email>
</author>
<published>2024-02-29T01:39:56Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=195f94ef1dc9ae48de16902e2ff1646ce0cffb57'/>
<id>urn:sha1:195f94ef1dc9ae48de16902e2ff1646ce0cffb57</id>
<content type='text'>
</content>
</entry>
</feed>
