* [PATCH 00/11] docs/zh_CN: add core api and openrisc translation
@ 2021-04-06 13:01 Yanteng Si
2021-04-06 13:02 ` [PATCH 01/11] docs/zh_CN: add core-api irq concepts.rst translation Yanteng Si
` (9 more replies)
0 siblings, 10 replies; 34+ messages in thread
From: Yanteng Si @ 2021-04-06 13:01 UTC (permalink / raw)
To: Jonathan Corbet
Cc: Alex Shi, Alex Shi, Huacai Chen, Jiaxun Yang, Harry Wei,
linux-doc, realpuyuwang, siyanteng01, Wu XiangCheng, Yanteng Si
This series of patches translates core-api/irq/* and openrisc/* into
Chinese
Yanteng Si(11):
docs/zh_CN: add core-api irq concepts.rst translation
docs/zh_CN: add core-api irq irq-affinity.rst translation
docs/zh_CN: add core-api/irq/irq-domain.rst translation
docs/zh_CN: add core-api irq irqflags-tracing.rst
docs/zh_CN: add core-api irq index.rst translation
docs/zh_CN: add core-api/index.rst translation
docs/zh_CN: add translation to zh_CN index
docs/zh_CN: add openrisc openrisc_port.rst translation
docs/zh_CN: add openrisc/todo.rst translation
docs/zh_CN: add openrisc/index.rst translation
docs/zh_CN: add translation to zh_CN index
Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
---
Documentation/translations/zh_CN/core-api/index.rst | 126 ++++++++++++++
Documentation/translations/zh_CN/core-api/irq/concepts.rst | 24 ++++++++++++++
Documentation/translations/zh_CN/core-api/irq/index.rst | 19 ++++++++++++++
Documentation/translations/zh_CN/core-api/irq/irq-affinity.rst | 73 ++++++++++++++
Documentation/translations/zh_CN/core-api/irq/irq-domain.rst | 228 ++++++++++++++
Documentation/translations/zh_CN/core-api/irq/irqflags-tracing.rst | 45 ++++++++++++++
Documentation/translations/zh_CN/index.rst | 2 ++++++++++++++
Documentation/translations/zh_CN/openrisc/index.rst | 27 ++++++++++++++
Documentation/translations/zh_CN/openrisc/openrisc_port.rst | 124 ++++++++++++++
Documentation/translations/zh_CN/openrisc/todo.rst | 20 ++++++++++++++
10 files changed, 688 insertions(+)
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH 01/11] docs/zh_CN: add core-api irq concepts.rst translation
2021-04-06 13:01 [PATCH 00/11] docs/zh_CN: add core api and openrisc translation Yanteng Si
@ 2021-04-06 13:02 ` Yanteng Si
2021-04-06 15:12 ` Wu X.C.
2021-04-06 13:02 ` [PATCH 02/11] docs/zh_CN: add core-api irq irq-affinity.rst translation Yanteng Si
` (8 subsequent siblings)
9 siblings, 1 reply; 34+ messages in thread
From: Yanteng Si @ 2021-04-06 13:02 UTC (permalink / raw)
To: Jonathan Corbet
Cc: Alex Shi, Alex Shi, Huacai Chen, Jiaxun Yang, Harry Wei,
linux-doc, realpuyuwang, siyanteng01, Wu XiangCheng, Yanteng Si
This patch translates Documentation/core-api/irq/concepts.rst into Chinese.
Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
---
.../zh_CN/core-api/irq/concepts.rst | 24 +++++++++++++++++++
1 file changed, 24 insertions(+)
create mode 100644 Documentation/translations/zh_CN/core-api/irq/concepts.rst
diff --git a/Documentation/translations/zh_CN/core-api/irq/concepts.rst b/Documentation/translations/zh_CN/core-api/irq/concepts.rst
new file mode 100644
index 000000000000..b8b98a196a5d
--- /dev/null
+++ b/Documentation/translations/zh_CN/core-api/irq/concepts.rst
@@ -0,0 +1,24 @@
+.. include:: ../../disclaimer-zh_CN.rst
+
+:Original: :doc:`../../../../core-api/irq/concepts`
+:Translator: Yanteng Si <siyanteng@loongson.cn>
+
+.. _cn_concepts.rst:
+
+
+===============
+什么是IRQ?
+===============
+
+一个来自设备的中断请求就是一个IRQ。
+目前,它们可以通过一个引脚或通过一个数据包进入。
+多个设备可以连接到同一个引脚,从而共享一个IRQ。
+
+IRQ编号是用来描述硬件中断源的内核标识符。通常它是一个到全局irq_desc数组的索引,
+但是除了在linux/interrupt.h中实现的之外,其它细节是体系结构特征相关的。
+
+IRQ编号是对机器上可能的中断源的枚举。通常枚举的是系统中所有中断控制器的输入引脚
+编号。在ISA(工业标准体系结构)的情况下所枚举的是两个i8259中断控制器的16个输入引脚。
+
+体系结构可以给IRQ号赋予额外的含义,在涉及到硬件手动配置的情况下,我们鼓励这样做。
+ISA IRQ是赋予这种额外含义的一个典型例子。
--
2.27.0
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 02/11] docs/zh_CN: add core-api irq irq-affinity.rst translation
2021-04-06 13:01 [PATCH 00/11] docs/zh_CN: add core api and openrisc translation Yanteng Si
2021-04-06 13:02 ` [PATCH 01/11] docs/zh_CN: add core-api irq concepts.rst translation Yanteng Si
@ 2021-04-06 13:02 ` Yanteng Si
2021-04-06 15:35 ` Wu X.C.
2021-04-06 13:02 ` [PATCH 03/11] docs/zh_CN: add core-api/irq/irq-domain.rst translation Yanteng Si
` (7 subsequent siblings)
9 siblings, 1 reply; 34+ messages in thread
From: Yanteng Si @ 2021-04-06 13:02 UTC (permalink / raw)
To: Jonathan Corbet
Cc: Alex Shi, Alex Shi, Huacai Chen, Jiaxun Yang, Harry Wei,
linux-doc, realpuyuwang, siyanteng01, Wu XiangCheng, Yanteng Si
This patch translates Documentation/core-api/irq/irq-affinity.rst into Chinese.
Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
---
.../zh_CN/core-api/irq/irq-affinity.rst | 73 +++++++++++++++++++
1 file changed, 73 insertions(+)
create mode 100644 Documentation/translations/zh_CN/core-api/irq/irq-affinity.rst
diff --git a/Documentation/translations/zh_CN/core-api/irq/irq-affinity.rst b/Documentation/translations/zh_CN/core-api/irq/irq-affinity.rst
new file mode 100644
index 000000000000..34aaf0d1ddc2
--- /dev/null
+++ b/Documentation/translations/zh_CN/core-api/irq/irq-affinity.rst
@@ -0,0 +1,73 @@
+.. include:: ../../disclaimer-zh_CN.rst
+
+:Original: :doc:`../../../../core-api/irq/irq-affinity`
+:Translator: Yanteng Si <siyanteng@loongson.cn>
+
+.. _cn_irq-affinity.rst:
+
+
+================
+SMP IRQ 亲和性
+================
+
+变更记录:
+ - 作者:最初由Ingo Molnar <mingo@redhat.com>开始撰写
+ - 后期更新维护: Max Krasnyansky <maxk@qualcomm.com>
+
+
+/proc/irq/IRQ#/smp_affinity和/proc/irq/IRQ#/smp_affinity_list指明了给定IRQ源
+允许哪些目标CPU使用。它是被允许的CPU的位掩码(smp_affinity)或cpu列表(smp_affinity_list)。
+它不允许关闭所有的CPU,如果一个IRQ控制器不支持IRQ亲和性,那么所有cpu的默认值将不会发生
+变化。
+
+/proc/irq/default_smp_affinity指明了适用于所有非激活IRQ的默认亲和性掩码。一旦IRQ被
+分配/激活,它的亲和位掩码将被设置为默认掩码。然后可以如上所述改变它。默认掩码是0xffffffffff。
+
+下面是一个先将IRQ44(eth1)限制在CPU0-3上,然后限制在CPU4-7上的例子(这是一个8CPU的SMP box)
+::
+
+ [root@moon 44]# cd /proc/irq/44
+ [root@moon 44]# cat smp_affinity
+ ffffffff
+
+ [root@moon 44]# echo 0f > smp_affinity
+ [root@moon 44]# cat smp_affinity
+ 0000000f
+ [root@moon 44]# ping -f h
+ PING hell (195.4.7.3): 56 data bytes
+ ...
+ --- hell ping statistics ---
+ 6029 packets transmitted, 6027 packets received, 0% packet loss
+ round-trip min/avg/max = 0.1/0.1/0.4 ms
+ [root@moon 44]# cat /proc/interrupts | grep 'CPU\|44:'
+ CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
+ 44: 1068 1785 1785 1783 0 0 0 0 IO-APIC-level eth1
+
+从上面一行可以看出,IRQ44只传递给前四个处理器(0-3)。
+现在让我们把这个IRQ限制在CPU(4-7)。
+
+::
+
+ [root@moon 44]# echo f0 > smp_affinity
+ [root@moon 44]# cat smp_affinity
+ 000000f0
+ [root@moon 44]# ping -f h
+ PING hell (195.4.7.3): 56 data bytes
+ ..
+ --- hell ping statistics ---
+ 2779 packets transmitted, 2777 packets received, 0% packet loss
+ round-trip min/avg/max = 0.1/0.5/585.4 ms
+ [root@moon 44]# cat /proc/interrupts | 'CPU\|44:'
+ CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
+ 44: 1068 1785 1785 1783 1784 1069 1070 1069 IO-APIC-level eth1
+
+这次IRQ44只传递给最后四个处理器。
+即CPU0-3的计数器没有变化。
+
+下面是一个将相同的irq(44)限制在cpus 1024到1031的例子:。
+
+ [root@moon 44]# echo 1024-1031 > smp_affinity_list
+ [root@moon 44]# cat smp_affinity_list
+ 1024-1031
+
+需要注意的是,如果要用位掩码来做这件事,就需要32个为0的位掩码来追踪其相关的一个。
--
2.27.0
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 03/11] docs/zh_CN: add core-api/irq/irq-domain.rst translation
2021-04-06 13:01 [PATCH 00/11] docs/zh_CN: add core api and openrisc translation Yanteng Si
2021-04-06 13:02 ` [PATCH 01/11] docs/zh_CN: add core-api irq concepts.rst translation Yanteng Si
2021-04-06 13:02 ` [PATCH 02/11] docs/zh_CN: add core-api irq irq-affinity.rst translation Yanteng Si
@ 2021-04-06 13:02 ` Yanteng Si
2021-04-07 7:01 ` Wu X.C.
2021-04-06 13:02 ` [PATCH 04/11] docs/zh_CN: add core-api irq irqflags-tracing.rst translation Yanteng Si
` (6 subsequent siblings)
9 siblings, 1 reply; 34+ messages in thread
From: Yanteng Si @ 2021-04-06 13:02 UTC (permalink / raw)
To: Jonathan Corbet
Cc: Alex Shi, Alex Shi, Huacai Chen, Jiaxun Yang, Harry Wei,
linux-doc, realpuyuwang, siyanteng01, Wu XiangCheng, Yanteng Si
This patch translates Documentation/core-api/irq/irq-domain.rst into Chinese.
Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
---
.../zh_CN/core-api/irq/irq-domain.rst | 228 ++++++++++++++++++
1 file changed, 228 insertions(+)
create mode 100644 Documentation/translations/zh_CN/core-api/irq/irq-domain.rst
diff --git a/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst b/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst
new file mode 100644
index 000000000000..03d3b7953e08
--- /dev/null
+++ b/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst
@@ -0,0 +1,228 @@
+.. include:: ../../disclaimer-zh_CN.rst
+
+:Original: :doc:`../../../../core-api/irq/irq-domain`
+:Translator: Yanteng Si <siyanteng@loongson.cn>
+
+.. _cn_irq-domain.rst:
+
+
+===============================================
+irq_domain 中断号映射库。
+===============================================
+
+目前Linux内核的设计使用了一个巨大的数字空间,每个独立的IRQ源都被分配了一个不
+同的数字。
+
+当只有一个中断控制器时,这很简单,但在有多个中断控制器的系统中,内核必须确保每
+个中断控制器都能得到非重复的Linux IRQ号(数字)分配。
+
+注册为唯一的irqchips的中断控制器编号呈现出上升的趋势:例如GPIO控制器等不同
+种类的子驱动程序通过将其中断处理程序建模为irqchips,即实际上是级联中断控制器,
+避免了重新实现与IRQ核心系统相同的回调机制。
+
+在这里,中断号与硬件中断号离散了所有种类的对应关系:而在过去,IRQ号可以选择,
+使它们与硬件IRQ线进入根中断控制器(即实际向CPU发射中断线的组件)相匹配,现
+在这个编号仅仅是一个数字。
+
+出于这个原因,我们需要一种机制将控制器本地中断号(称为硬件irq's)与Linux IRQ
+号分开。
+
+irq_alloc_desc*()和irq_free_desc*()API提供了对irq号的分配,但它们不提供
+任何对控制器本地IRQ(hwirq)号到Linux IRQ号空间的反向映射的支持。
+
+irq_domain 库在 irq_alloc_desc*() API 的基础上增加了 hwirq 和 IRQ 号码
+之间的映射。 相比于中断控制器驱动开放编码自己的反向映射方案,我们更喜欢用
+irq_domain来管理映射。
+
+irq_domain还实现了从抽象的irq_fwspec结构体到hwirq号的转换(到目前为止是
+Device Tree和ACPI GSI),并且可以很容易地扩展以支持其它IRQ拓扑数据源。
+
+irq_domain的用法
+================
+
+中断控制器驱动程序通过以下方式创建并注册一个irq_domain。调用
+irq_domain_add_*() 或 irq_domain_create_*()函数之一(每个映射方法都有不
+同的分配器函数,后面会详细介绍).函数成功后会返回一个指向irq_domain的指针。
+调用者必须向分配器函数提供一个irq_domain_ops结构体。
+
+在大多数情况下,irq_domain在开始时是空的,没有任何hwirq和IRQ号之间的映射。
+通过调用irq_create_mapping()将映射添加到irq_domain中,该函数接受
+irq_domain和一个hwirq号作为参数。 如果hwirq的映射还不存在,那么它将分配
+一个新的Linux irq_desc,将其与hwirq关联起来,并调用.map()回调,这样驱动
+程序就可以执行任何必要的硬件设置。
+
+当接收到一个中断时,应该使用irq_find_mapping()函数从hwirq号中找到
+Linux IRQ号。
+
+在调用irq_find_mapping()之前,至少要调用一次irq_create_mapping()函数,
+以免描述符不能被分配。
+
+如果驱动程序有Linux的IRQ号或irq_data指针,并且需要知道相关的hwirq号(比
+如在irq_chip回调中),那么可以直接从irq_data->hwirq中获得。
+
+irq_domain映射的类型
+============================
+
+从hwirq到Linux irq的反向映射有几种机制,每种机制使用不同的分配函数。应该
+使用哪种反向映射类型取决于用例。 下面介绍每一种反向映射类型:
+
+线性映射
+----------
+
+::
+
+ irq_domain_add_linear()
+ irq_domain_create_linear()
+
+线性反向映射维护了一个固定大小的表,该表以hwirq号为索引。 当一个hwirq被映射
+时,会给hwirq分配一个irq_desc,并将irq号存储在表中。
+
+当最大的hwirq号固定且数量相对较少时,线性图是一个很好的选择(~<256)。 这种
+映射的优点是固定时间查找IRQ号,而且irq_descs只分配给在用的IRQ。 缺点是该表
+必须尽可能大的hwirq号。
+
+irq_domain_add_linear()和irq_domain_create_linear()在功能上是等价的,
+除了第一个参数不同--前者接受一个Open Firmware特定的 `struct device_node` 而
+后者接受一个更通用的抽象 `struct fwnode_handle` 。
+
+大多数驱动应该用于线性映射
+
+树状映射
+----------
+
+::
+
+ irq_domain_add_tree()
+ irq_domain_create_tree()
+
+irq_domain维护着从hwirq号到Linux IRQ的radix的树状映射。 当一个hwirq被映射时,
+一个irq_desc被分配,hwirq被用作radix树的查找键。
+
+如果hwirq号可以非常大,树状映射是一个很好的选择,因为它不需要分配一个和最大hwirq
+号一样大的表。 缺点是,hwirq到IRQ号的查找取决于表中有多少条目。
+
+irq_domain_add_tree()和irq_domain_create_tree()在功能上是等价的,除了第一
+个参数不同--前者接受一个Open Firmware特定的 `struct device_node` ,而后者接受
+一个更通用的抽象 `struct fwnode_handle` 。
+
+很少有驱动应该需要这个映射。
+
+无映射
+--------
+
+::
+
+ irq_domain_add_nomap()
+
+当硬件中的hwirq号是可编程的时候,就可以采用无映射类型。 在这种情况下,最好将
+Linux IRQ号编入硬件本身,这样就不需要映射了。 调用irq_create_direct_mapping()
+会分配一个Linux IRQ号,并调用.map()回调,这样驱动就可以将Linux IRQ号编入硬件中。
+
+大多数驱动程序不能使用这个映射。
+
+传统映射类型
+--------------
+
+::
+
+ irq_domain_add_simple()
+ irq_domain_add_legacy()
+ irq_domain_add_legacy_isa()
+ irq_domain_create_simple()
+ irq_domain_create_legacy()
+
+传统映射是已经为 hwirqs 分配了一系列 irq_descs 的驱动程序的特殊情况。 当驱动程
+序不能立即转换为使用线性映射时,就会使用它。 例如,许多嵌入式系统板卡支持文件使用
+一组用于IRQ号的定义(#define),这些定义被传递给struct设备注册。 在这种情况下,
+不能动态分配Linux IRQ号,应该使用传统映射。
+
+传统映射假设已经为控制器分配了一个连续的IRQ号范围,并且可以通过向hwirq号添加一
+个固定的偏移来计算IRQ号,反之亦然。 缺点是需要中断控制器管理IRQ分配,并且需要为每
+个hwirq分配一个irq_desc,即使它没有被使用。
+
+只有在必须支持固定的IRQ映射时,才应使用传统映射。 例如,ISA控制器将使用传统映射来
+映射Linux IRQ 0-15,这样现有的ISA驱动程序就能得到正确的IRQ号。
+
+大多数使用传统映射的用户应该使用irq_domain_add_simple()或
+irq_domain_create_simple(),只有在系统提供IRQ范围时才会使用传统域,否则将使用
+线性域映射。这个调用的语义是这样的:如果指定了一个IRQ范围,那么 描述符将被即时分配
+给它,如果没有范围被分配,它将不会执行 irq_domain_add_linear() 或
+irq_domain_create_linear(),这意味着 *no* irq 描述符将被分配。
+
+一个简单域的典型用例是,irqchip供应商同时支持动态和静态IRQ分配。
+
+为了避免最终出现使用线性域而没有描述符被分配的情况,确保使用简单域的驱动程序在任何
+irq_find_mapping()之前调用irq_create_mapping()是非常重要的,因为后者实际上
+将用于静态IRQ分配情况。
+
+irq_domain_add_simple()和irq_domain_create_simple()以及
+irq_domain_add_legacy()和irq_domain_create_legacy()在功能上是等价的,只
+是第一个参数不同--前者接受Open Firmware特定的 `struct device_node` ,而后者
+接受一个更通用的抽象 `struct fwnode_handle` 。
+
+Hierarchy IRQ domain
+--------------------
+
+在某些架构上,可能有多个中断控制器参与将一个中断从设备传送到目标CPU。
+让我们来看看x86平台上典型的中断传递路径吧
+::
+
+ Device --> IOAPIC -> Interrupt remapping Controller -> Local APIC -> CPU
+
+涉及到的中断控制器有三个:
+
+1) IOAPIC 控制器
+2) 中断重映射控制器
+3) Local APIC 控制器
+
+为了支持这样的硬件拓扑结构,使软件架构与硬件架构相匹配,为每个中断控制器建立一
+个irq_domain数据结构,并将这些irq_domain组织成层次结构。
+
+在建立irq_domain层次结构时,靠近设备的irq_domain为子域,靠近CPU的
+irq_domain为父域。所以在上面的例子中,将建立如下的层次结构。
+::
+
+ CPU Vector irq_domain (root irq_domain to manage CPU vectors)
+ ^
+ |
+ Interrupt Remapping irq_domain (manage irq_remapping entries)
+ ^
+ |
+ IOAPIC irq_domain (manage IOAPIC delivery entries/pins)
+
+使用irq_domain层次结构的主要接口有四个:
+
+1) irq_domain_alloc_irqs(): 分配IRQ描述符和与中断控制器相关的资源来传递这些中断。
+2) irq_domain_free_irqs(): 释放IRQ描述符和与这些中断相关的中断控制器资源。
+3) irq_domain_activate_irq(): 激活中断控制器硬件以传递中断。
+4) irq_domain_deactivate_irq(): 停用中断控制器硬件,停止传递中断。
+
+为了支持irq_domain层次结构,需要做如下修改:
+
+1) 一个新的字段 `parent` 被添加到irq_domain结构中;它用于维护irq_domain的层次信息。
+2) 一个新的字段 `parent_data` 被添加到irq_data结构中;它用于建立层次结构irq_data以
+ 匹配irq_domain层次结构s。irq_data用于存储irq_domain指针和硬件irq号。
+3) 新的回调被添加到irq_domain_ops结构中,以支持层次结构的irq_domain操作。
+
+在支持分层irq_domain和分层irq_data准备就绪后,为每个中断控制器建立一个irq_domain结
+构,并为每个与IRQ相关联的irq_domain分配一个irq_data结构。现在我们可以再进一步支持堆
+栈式(层次结构)的irq_chip。也就是说,一个irq_chip与层次结构中的每个irq_data相关联。
+一个子irq_chip可以自己或通过与它的父irq_chip合作来实现一个所需的操作。
+
+通过堆栈式的irq_chip,中断控制器驱动只需要处理自己管理的硬件,在需要的时候可以向其父
+irq_chip请求服务。所以我们可以实现更简洁的软件架构。
+
+为了让中断控制器驱动程序支持irq_domain层次结构,它需要做到以下几点:
+
+1) 实现 irq_domain_ops.alloc 和 irq_domain_ops.free
+2) 可选择地实现 irq_domain_ops.activate 和 irq_domain_ops.deactivate.
+3) 可选择地实现一个irq_chip来管理中断控制器硬件。
+4) 不需要实现irq_domain_ops.map和irq_domain_ops.unmap,它们在层次结构
+ irq_domain中是不用的。
+
+irq_domain层次结构绝不是x86特有的,大量用于支持其他架构,如ARM、ARM64等。
+
+调试功能
+=========
+
+通过打开CONFIG_GENERIC_IRQ_DEBUGFS on.ping,IRQ子系统的大部分内部结构都在debugfs中暴露出来。
--
2.27.0
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 04/11] docs/zh_CN: add core-api irq irqflags-tracing.rst translation
2021-04-06 13:01 [PATCH 00/11] docs/zh_CN: add core api and openrisc translation Yanteng Si
` (2 preceding siblings ...)
2021-04-06 13:02 ` [PATCH 03/11] docs/zh_CN: add core-api/irq/irq-domain.rst translation Yanteng Si
@ 2021-04-06 13:02 ` Yanteng Si
2021-04-06 16:13 ` Wu X.C.
2021-04-06 13:02 ` [PATCH 05/11] docs/zh_CN: add core-api irq index.rst translation Yanteng Si
` (5 subsequent siblings)
9 siblings, 1 reply; 34+ messages in thread
From: Yanteng Si @ 2021-04-06 13:02 UTC (permalink / raw)
To: Jonathan Corbet
Cc: Alex Shi, Alex Shi, Huacai Chen, Jiaxun Yang, Harry Wei,
linux-doc, realpuyuwang, siyanteng01, Wu XiangCheng, Yanteng Si
This patch translates Documentation/core-api/irq/irqflags-tracing.rst into Chinese.
Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
---
.../zh_CN/core-api/irq/irqflags-tracing.rst | 46 +++++++++++++++++++
1 file changed, 46 insertions(+)
create mode 100644 Documentation/translations/zh_CN/core-api/irq/irqflags-tracing.rst
diff --git a/Documentation/translations/zh_CN/core-api/irq/irqflags-tracing.rst b/Documentation/translations/zh_CN/core-api/irq/irqflags-tracing.rst
new file mode 100644
index 000000000000..2a3f577ac6b5
--- /dev/null
+++ b/Documentation/translations/zh_CN/core-api/irq/irqflags-tracing.rst
@@ -0,0 +1,45 @@
+.. include:: ../../disclaimer-zh_CN.rst
+
+:Original: :doc:`../../../../core-api/irq/irqflags-tracing`
+:Translator: Yanteng Si <siyanteng@loongson.cn>
+
+.. _cn_irqflags-tracing.rst:
+
+
+=======================
+IRQ-flags状态追踪
+=======================
+
+:Author: 最初由Ingo Molnar <mingo@redhat.com>开始撰写
+
+"irq-flags tracing" 功能可以 "追踪" hardirq和softirq的状态,它让感兴趣的子
+系统有机会了解到到内核中发生的每一个
+hardirqs-off/hardirqs-on、softirqs-off/softirqs-on事件。
+
+CONFIG_TRACE_IRQFLAGS_SUPPORT是通用锁调试代码提供的CONFIG_PROVE_SPIN_LOCKING
+和CONFIG_PROVE_RW_LOCKING所需要的。否则将只有CONFIG_PROVE_MUTEX_LOCKING和
+CONFIG_PROVE_RWSEM_LOCKING在一个架构上被提供--这些都是不在IRQ上下文中使用的
+锁API。(rwsems的一个异常是可以解决的)
+
+架构对这一点的支持当然不属于 "琐碎 "的范畴,因为很多低级的汇编代码都要处理irq-flags
+的状态变化。但是一个架构可以以一种相当直接且无风险的方式启用irq-flags-tracing。
+
+架构如果想支持这个,需要先做一些代码组织上的改变:
+
+- 在他们的arch级Kconfig文件中添加并启用TRACE_IRQFLAGS_SUPPORT。
+
+然后还需要做一些功能上的改变来实现对irq-flags-tracing的支持:
+
+- 在低级入口代码中增加(构建条件)对trace_hardirqs_off()/trace_hardirqs_on()
+ 函数的调用。锁验证器会密切关注 "真实 "的irq-flags是否与 "虚拟 "的irq-flags
+ 状态相匹配,如果两者不匹配,则会大声抱怨(并关闭自己)。通常对于arch支持
+ irq-flags-track的大部分时间都是在这种状态下度过的:看看lockdep的抱怨,试着
+ 找出我们还没有涉及的汇编代码。修复并重复。一旦系统启动,并且在irq-flags跟踪功
+ 能中没有出现lockdep抱怨的情况下,arch支持就完成了。
+
+- 如果该架构有不可屏蔽的中断,那么需要通过lockdep_off()/lockdep_on()将这些中
+ 断从irq跟踪[和锁验证]机制中排除。
+
+ 一般来说,在一个架构中,不完整的irq-flags-tracing实现是没有风险的:lockdep
+ 会检测到这一点,并将自己关闭。即锁验证器仍然可靠。应该不会因为irq-tracing的错
+ 误而崩溃。(除非通过修改不该修改的条件来更改汇编或寄存器而破坏其他代码)
--
2.27.0
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 05/11] docs/zh_CN: add core-api irq index.rst translation
2021-04-06 13:01 [PATCH 00/11] docs/zh_CN: add core api and openrisc translation Yanteng Si
` (3 preceding siblings ...)
2021-04-06 13:02 ` [PATCH 04/11] docs/zh_CN: add core-api irq irqflags-tracing.rst translation Yanteng Si
@ 2021-04-06 13:02 ` Yanteng Si
2021-04-06 15:21 ` Wu X.C.
2021-04-06 13:02 ` [PATCH 06/11] docs/zh_CN: add core-api/index.rst translation Yanteng Si
` (4 subsequent siblings)
9 siblings, 1 reply; 34+ messages in thread
From: Yanteng Si @ 2021-04-06 13:02 UTC (permalink / raw)
To: Jonathan Corbet
Cc: Alex Shi, Alex Shi, Huacai Chen, Jiaxun Yang, Harry Wei,
linux-doc, realpuyuwang, siyanteng01, Wu XiangCheng, Yanteng Si
This patch translates Documentation/core-api/irq/index.rst into Chinese.
Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
---
.../translations/zh_CN/core-api/irq/index.rst | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
create mode 100644 Documentation/translations/zh_CN/core-api/irq/index.rst
diff --git a/Documentation/translations/zh_CN/core-api/irq/index.rst b/Documentation/translations/zh_CN/core-api/irq/index.rst
new file mode 100644
index 000000000000..910ccabf041f
--- /dev/null
+++ b/Documentation/translations/zh_CN/core-api/irq/index.rst
@@ -0,0 +1,19 @@
+.. include:: ../../disclaimer-zh_CN.rst
+
+:Original: :doc:`../../../../core-api/irq/index`
+:Translator: Yanteng Si <siyanteng@loongson.cn>
+
+.. _cn_irq_index.rst:
+
+
+====
+IRQs
+====
+
+.. toctree::
+ :maxdepth: 1
+
+ concepts
+ irq-affinity
+ irq-domain
+ irqflags-tracing
--
2.27.0
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 06/11] docs/zh_CN: add core-api/index.rst translation
2021-04-06 13:01 [PATCH 00/11] docs/zh_CN: add core api and openrisc translation Yanteng Si
` (4 preceding siblings ...)
2021-04-06 13:02 ` [PATCH 05/11] docs/zh_CN: add core-api irq index.rst translation Yanteng Si
@ 2021-04-06 13:02 ` Yanteng Si
2021-04-06 16:39 ` Wu X.C.
2021-04-06 13:02 ` [PATCH 07/11] docs/zh_CN: add translation to zh_CN index Yanteng Si
` (3 subsequent siblings)
9 siblings, 1 reply; 34+ messages in thread
From: Yanteng Si @ 2021-04-06 13:02 UTC (permalink / raw)
To: Jonathan Corbet
Cc: Alex Shi, Alex Shi, Huacai Chen, Jiaxun Yang, Harry Wei,
linux-doc, realpuyuwang, siyanteng01, Wu XiangCheng, Yanteng Si
This patch translates Documentation/core-api/index.rst into Chinese.
add Documentation/translations/zh_CN/core-api/irq/* to zh_CN/core-api/index.rst.
Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
---
.../translations/zh_CN/core-api/index.rst | 126 ++++++++++++++++++
1 file changed, 126 insertions(+)
create mode 100644 Documentation/translations/zh_CN/core-api/index.rst
diff --git a/Documentation/translations/zh_CN/core-api/index.rst b/Documentation/translations/zh_CN/core-api/index.rst
new file mode 100644
index 000000000000..1d0e73b03858
--- /dev/null
+++ b/Documentation/translations/zh_CN/core-api/index.rst
@@ -0,0 +1,126 @@
+.. include:: ../disclaimer-zh_CN.rst
+
+:Original: :doc:`../../../core-api/irq/index`
+:Translator: Yanteng Si <siyanteng@loongson.cn>
+
+.. _cn_core-api_index.rst:
+
+
+======================
+核心API文档
+======================
+
+这是核心内核API手册的开端。 非常感谢为本手册转换(和编写!)的文档!
+
+核心公用程序
+==============
+
+本节有通用文件和 "核心中的核心" 文件。 第一部分是 docbook 时期遗留下
+来的大量 kerneldoc 信息;有朝一日,当有人找到精力去做的时候,真的
+应该把它拆分出来。
+
+Todolist:
+
+ kernel-api
+ workqueue
+ printk-basics
+ printk-formats
+ symbol-namespaces
+
+数据结构和低级公用程序
+=======================================
+
+在整个内核中使用的函数库。
+
+Todolist:
+
+ kobject
+ kref
+ assoc_array
+ xarray
+ idr
+ circular-buffers
+ rbtree
+ generic-radix-tree
+ packing
+ bus-virt-phys-mapping
+ this_cpu_ops
+ timekeeping
+ errseq
+
+并发原语
+======================
+
+Linux如何让一切同时发生。 详情请参阅
+:doc:`/locking/index`
+
+.. toctree::
+ :maxdepth: 1
+
+ irq/index
+
+Todolist:
+
+ refcount-vs-atomic
+ local_ops
+ padata
+ ../RCU/index
+
+低级硬件管理
+=============================
+
+缓存管理,CPU热插拔管理等。
+
+Todolist:
+
+ cachetlb
+ cpu_hotplug
+ memory-hotplug
+ genericirq
+ protection-keys
+
+
+内存管理
+=================
+
+如何在内核中分配和使用内存。请注意,在
+:doc:`/vm/index` 中有更多的内存管理文档。
+
+Todolist:
+
+ memory-allocation
+ unaligned-memory-access
+ dma-api
+ dma-api-howto
+ dma-attributes
+ dma-isa-lpc
+ mm-api
+ genalloc
+ pin_user_pages
+ boot-time-mm
+ gfp_mask-from-fs-io
+
+内核调试的接口
+===============================
+
+Todolist:
+
+ debug-objects
+ tracepoint
+ debugging-via-ohci1394
+
+其它一切文档
+===============
+
+不适合放在其它地方或尚未归类的文件;
+
+Todolist:
+
+ librs
+
+.. only:: subproject and html
+
+ Indices
+ =======
+
+ * :ref:`genindex`
--
2.27.0
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 07/11] docs/zh_CN: add translation to zh_CN index
2021-04-06 13:01 [PATCH 00/11] docs/zh_CN: add core api and openrisc translation Yanteng Si
` (5 preceding siblings ...)
2021-04-06 13:02 ` [PATCH 06/11] docs/zh_CN: add core-api/index.rst translation Yanteng Si
@ 2021-04-06 13:02 ` Yanteng Si
2021-04-06 16:40 ` Wu X.C.
2021-04-06 13:02 ` [PATCH 08/11] docs/zh_CN: add openrisc openrisc_port.rst translation Yanteng Si
` (2 subsequent siblings)
9 siblings, 1 reply; 34+ messages in thread
From: Yanteng Si @ 2021-04-06 13:02 UTC (permalink / raw)
To: Jonathan Corbet
Cc: Alex Shi, Alex Shi, Huacai Chen, Jiaxun Yang, Harry Wei,
linux-doc, realpuyuwang, siyanteng01, Wu XiangCheng, Yanteng Si
This patch add zh_CN/core-api to zh_CN/index.
Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
---
Documentation/translations/zh_CN/index.rst | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/translations/zh_CN/index.rst b/Documentation/translations/zh_CN/index.rst
index 4fdd57417ffb..041a04c8e775 100644
--- a/Documentation/translations/zh_CN/index.rst
+++ b/Documentation/translations/zh_CN/index.rst
@@ -22,6 +22,7 @@
filesystems/index
arm64/index
sound/index
+ core-api/index
目录和表格
----------
--
2.27.0
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 08/11] docs/zh_CN: add openrisc openrisc_port.rst translation
2021-04-06 13:01 [PATCH 00/11] docs/zh_CN: add core api and openrisc translation Yanteng Si
` (6 preceding siblings ...)
2021-04-06 13:02 ` [PATCH 07/11] docs/zh_CN: add translation to zh_CN index Yanteng Si
@ 2021-04-06 13:02 ` Yanteng Si
2021-04-07 7:01 ` Wu X.C.
2021-04-06 13:02 ` [PATCH 09/11] docs/zh_CN: add openrisc/todo.rst translation Yanteng Si
2021-04-06 13:02 ` [PATCH 10/11] docs/zh_CN: add openrisc/index.rst translation Yanteng Si
9 siblings, 1 reply; 34+ messages in thread
From: Yanteng Si @ 2021-04-06 13:02 UTC (permalink / raw)
To: Jonathan Corbet
Cc: Alex Shi, Alex Shi, Huacai Chen, Jiaxun Yang, Harry Wei,
linux-doc, realpuyuwang, siyanteng01, Wu XiangCheng, Yanteng Si
This patch tranlates Documentation/openrisc/openrisc_port.rst into Chinese
Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
---
.../zh_CN/openrisc/openrisc_port.rst | 124 ++++++++++++++++++
1 file changed, 124 insertions(+)
create mode 100644 Documentation/translations/zh_CN/openrisc/openrisc_port.rst
diff --git a/Documentation/translations/zh_CN/openrisc/openrisc_port.rst b/Documentation/translations/zh_CN/openrisc/openrisc_port.rst
new file mode 100644
index 000000000000..77754f2639cf
--- /dev/null
+++ b/Documentation/translations/zh_CN/openrisc/openrisc_port.rst
@@ -0,0 +1,124 @@
+.. include:: ../disclaimer-zh_CN.rst
+
+:Original: :doc:`../../../openrisc/openrisc_port`
+:Translator: Yanteng Si <siyanteng@loongson.cn>
+
+.. _cn_openrisc_port:
+
+==============
+OpenRISC Linux
+==============
+
+这是Linux对OpenRISC类微处理器的移植;具体来说,最早移植目标是32位
+OpenRISC 1000系列(或1k)。
+
+关于OpenRISC处理器和正在进行中的开发的信息:
+
+ ======= =============================
+ 网站 https://openrisc.io
+ 邮箱 openrisc@lists.librecores.org
+ ======= =============================
+
+---------------------------------------------------------------------
+
+OpenRISC工具链和Linux的构建指南
+===================================================
+
+为了构建和运行Linux for OpenRISC,你至少需要一个基本的工具链,或许
+还需要架构模拟器。 这里概述了准备就位这些部分的步骤。
+
+1) 工具链
+
+工具链二进制文件可以从openrisc.io或我们的github发布页面获得。不同
+工具链的构建指南可以在openrisc.io或Stafford的工具链构建和发布脚本
+中找到。
+
+ ========== =================================================
+ 二进制 https://github.com/openrisc/or1k-gcc/releases
+ 工具链 https://openrisc.io/software
+ 构建 https://github.com/stffrdhrn/or1k-toolchain-build
+ ========== =================================================
+
+2) 构建
+
+像往常一样构建Linux内核::
+
+ make ARCH=openrisc CROSS_COMPILE="or1k-linux-" defconfig
+ make ARCH=openrisc CROSS_COMPILE="or1k-linux-"
+
+3) 在FPGA上运行(可选)
+
+OpenRISC社区通常使用FuseSoC来管理构建和编程SoC到FPGA中。 下面是用
+OpenRISC SoC对De0 Nano开发板进行编程的一个例子。 在构建过程中,
+FPGA RTL是从FuseSoC IP核库中下载的代码,并使用FPGA供应商工具构建。
+二进制文件用openocd加载到电路板上。
+
+::
+
+ git clone https://github.com/olofk/fusesoc
+ cd fusesoc
+ sudo pip install -e .
+
+ fusesoc init
+ fusesoc build de0_nano
+ fusesoc pgm de0_nano
+
+ openocd -f interface/altera-usb-blaster.cfg \
+ -f board/or1k_generic.cfg
+
+ telnet localhost 4444
+ > init
+ > halt; load_image vmlinux ; reset
+
+4) 在模拟器上运行(可选)
+
+QEMU是一个处理器仿真器,我们推荐它来模拟OpenRISC平台。 请按照QEMU网
+站上的OpenRISC说明,让Linux在QEMU上运行。 你可以自己构建QEMU,但你的
+Linux发行版可能提供了支持OpenRISC的二进制包。
+
+ ============= ======================================================
+ qemu openrisc https://wiki.qemu.org/Documentation/Platforms/OpenRISC
+ ============= ======================================================
+
+---------------------------------------------------------------------
+
+术语表
+===========
+i
+在代码中,为了将范围限制在或多或少的特定处理器实现上,在符号上使用了以下约定。
+
+========= =======================================
+openrisc: OpenRISC类型处理器
+or1k: OpenRISC 1000系列处理器
+or1200: OpenRISC 1200处理器
+========= =======================================
+
+---------------------------------------------------------------------
+
+历史
+========
+
+18-11-2003 Matjaz Breskvar (phoenix@bsemi.com)
+ 将linux初步移植到OpenRISC或32架构。
+ 所有的核心功能都实现了,并且可以使用。
+
+08-12-2003 Matjaz Breskvar (phoenix@bsemi.com)
+ 彻底改变TLB失误处理。
+ 重写异常处理。
+ 在默认的initrd中实现了sash-3.6的所有功能。
+ 大幅改进的版本。
+
+10-04-2004 Matjaz Breskvar (phoenix@bsemi.com)
+ 大量的bug修复。
+ 支持以太网,http和telnet服务器功能。
+ 可以运行许多标准的linux应用程序。
+
+26-06-2004 Matjaz Breskvar (phoenix@bsemi.com)
+ 移植到2.6.x。
+
+30-11-2004 Matjaz Breskvar (phoenix@bsemi.com)
+ 大量的bug修复和增强功能。
+ 增加了opencores framebuffer驱动。
+
+09-10-2010 Jonas Bonn (jonas@southpole.se)
+ 重大重写,使其与上游的Linux 2.6.36看齐。
--
2.27.0
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 09/11] docs/zh_CN: add openrisc/todo.rst translation
2021-04-06 13:01 [PATCH 00/11] docs/zh_CN: add core api and openrisc translation Yanteng Si
` (7 preceding siblings ...)
2021-04-06 13:02 ` [PATCH 08/11] docs/zh_CN: add openrisc openrisc_port.rst translation Yanteng Si
@ 2021-04-06 13:02 ` Yanteng Si
2021-04-06 16:50 ` Wu X.C.
2021-04-06 13:02 ` [PATCH 10/11] docs/zh_CN: add openrisc/index.rst translation Yanteng Si
9 siblings, 1 reply; 34+ messages in thread
From: Yanteng Si @ 2021-04-06 13:02 UTC (permalink / raw)
To: Jonathan Corbet
Cc: Alex Shi, Alex Shi, Huacai Chen, Jiaxun Yang, Harry Wei,
linux-doc, realpuyuwang, siyanteng01, Wu XiangCheng, Yanteng Si
This patch translates Documentation/openrisc/todo.rst into Chinese.
Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
---
.../translations/zh_CN/openrisc/todo.rst | 20 +++++++++++++++++++
1 file changed, 20 insertions(+)
create mode 100644 Documentation/translations/zh_CN/openrisc/todo.rst
diff --git a/Documentation/translations/zh_CN/openrisc/todo.rst b/Documentation/translations/zh_CN/openrisc/todo.rst
new file mode 100644
index 000000000000..0e5d1c9122f8
--- /dev/null
+++ b/Documentation/translations/zh_CN/openrisc/todo.rst
@@ -0,0 +1,20 @@
+.. include:: ../disclaimer-zh_CN.rst
+
+:Original: :doc:`../../../openrisc/todo`
+:Translator: Yanteng Si <siyanteng@loongson.cn>
+
+.. _cn_openrisc_todo.rst:
+
+===========
+代办事项
+===========
+
+OpenRISC Linux的移植已经完全投入使用,并且从 2.6.35 开始就一直在上游同步。
+然而,还有一些剩余的项目需要在未来几个月内完成。 下面是一个已知的不如意的
+项目列表,即我们的待办事项列表。
+
+- 实现其余的DMA API......dma_map_sg等。
+
+- 完成重命名清理工作......代码中提到了or32,这是架构的一个老名字。 我们
+ 已经确定的名字是or1k,这个改变正在以缓慢积累的方式进行。 目前,or32相当
+ 于or1k。
--
2.27.0
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 10/11] docs/zh_CN: add openrisc/index.rst translation
2021-04-06 13:01 [PATCH 00/11] docs/zh_CN: add core api and openrisc translation Yanteng Si
` (8 preceding siblings ...)
2021-04-06 13:02 ` [PATCH 09/11] docs/zh_CN: add openrisc/todo.rst translation Yanteng Si
@ 2021-04-06 13:02 ` Yanteng Si
2021-04-06 16:56 ` Wu X.C.
9 siblings, 1 reply; 34+ messages in thread
From: Yanteng Si @ 2021-04-06 13:02 UTC (permalink / raw)
To: Jonathan Corbet
Cc: Alex Shi, Alex Shi, Huacai Chen, Jiaxun Yang, Harry Wei,
linux-doc, realpuyuwang, siyanteng01, Wu XiangCheng, Yanteng Si
This patch translates Documentation/openrisc/index.rst into Chinese.
Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
---
.../translations/zh_CN/openrisc/index.rst | 27 +++++++++++++++++++
1 file changed, 27 insertions(+)
create mode 100644 Documentation/translations/zh_CN/openrisc/index.rst
diff --git a/Documentation/translations/zh_CN/openrisc/index.rst b/Documentation/translations/zh_CN/openrisc/index.rst
new file mode 100644
index 000000000000..89432b9cf8e1
--- /dev/null
+++ b/Documentation/translations/zh_CN/openrisc/index.rst
@@ -0,0 +1,27 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+.. include:: ../disclaimer-zh_CN.rst
+
+:Original: :doc:`../../../openrisc/index`
+:Translator: Yanteng Si <siyanteng@loongson.cn>
+
+.. _cn_openrisc_index:
+
+
+=====================
+OpenRISC 体系架构
+=====================
+
+.. toctree::
+ :maxdepth: 2
+
+ openrisc_port
+ todo
+
+
+.. only:: subproject and html
+
+ Indices
+ =======
+
+ * :ref:`genindex`
--
2.27.0
^ permalink raw reply related [flat|nested] 34+ messages in thread
* Re: [PATCH 01/11] docs/zh_CN: add core-api irq concepts.rst translation
2021-04-06 13:02 ` [PATCH 01/11] docs/zh_CN: add core-api irq concepts.rst translation Yanteng Si
@ 2021-04-06 15:12 ` Wu X.C.
2021-04-07 1:20 ` yanteng si
0 siblings, 1 reply; 34+ messages in thread
From: Wu X.C. @ 2021-04-06 15:12 UTC (permalink / raw)
To: Yanteng Si
Cc: Jonathan Corbet, Alex Shi, Alex Shi, Huacai Chen, Jiaxun Yang,
Harry Wei, linux-doc, realpuyuwang, siyanteng01
On Tue, Apr 06, 2021 at 09:02:00PM +0800, Yanteng Si wrote:
> This patch translates Documentation/core-api/irq/concepts.rst into Chinese.
>
> Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
> ---
> .../zh_CN/core-api/irq/concepts.rst | 24 +++++++++++++++++++
> 1 file changed, 24 insertions(+)
> create mode 100644 Documentation/translations/zh_CN/core-api/irq/concepts.rst
>
> diff --git a/Documentation/translations/zh_CN/core-api/irq/concepts.rst b/Documentation/translations/zh_CN/core-api/irq/concepts.rst
> new file mode 100644
> index 000000000000..b8b98a196a5d
> --- /dev/null
> +++ b/Documentation/translations/zh_CN/core-api/irq/concepts.rst
> @@ -0,0 +1,24 @@
> +.. include:: ../../disclaimer-zh_CN.rst
> +
> +:Original: :doc:`../../../../core-api/irq/concepts`
> +:Translator: Yanteng Si <siyanteng@loongson.cn>
> +
> +.. _cn_concepts.rst:
> +
> +
> +===============
> +什么是IRQ?
> +===============
> +
> +一个来自设备的中断请求就是一个IRQ。
Maybe this better?
IRQ(Interrupt ReQuest)指来自设备的中断请求
> +目前,它们可以通过一个引脚或通过一个数据包进入。
> +多个设备可以连接到同一个引脚,从而共享一个IRQ。
> +
> +IRQ编号是用来描述硬件中断源的内核标识符。通常它是一个到全局irq_desc数组的索引,
> +但是除了在linux/interrupt.h中实现的之外,其它细节是体系结构特征相关的。
> +
> +IRQ编号是对机器上可能的中断源的枚举。通常枚举的是系统中所有中断控制器的输入引脚
> +编号。在ISA(工业标准体系结构)的情况下所枚举的是两个i8259中断控制器的16个输入引脚。
> +
> +体系结构可以给IRQ号赋予额外的含义,在涉及到硬件手动配置的情况下,我们鼓励这样做。
> +ISA IRQ是赋予这种额外含义的一个典型例子。
> --
> 2.27.0
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 05/11] docs/zh_CN: add core-api irq index.rst translation
2021-04-06 13:02 ` [PATCH 05/11] docs/zh_CN: add core-api irq index.rst translation Yanteng Si
@ 2021-04-06 15:21 ` Wu X.C.
0 siblings, 0 replies; 34+ messages in thread
From: Wu X.C. @ 2021-04-06 15:21 UTC (permalink / raw)
To: Yanteng Si
Cc: Jonathan Corbet, Alex Shi, Alex Shi, Huacai Chen, Jiaxun Yang,
Harry Wei, linux-doc, realpuyuwang, siyanteng01
On Tue, Apr 06, 2021 at 09:02:04PM +0800, Yanteng Si wrote:
> This patch translates Documentation/core-api/irq/index.rst into Chinese.
>
> Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
Reviewed-by: Wu XiangCheng <bobwxc@email.cn>
> ---
> .../translations/zh_CN/core-api/irq/index.rst | 19 +++++++++++++++++++
> 1 file changed, 19 insertions(+)
> create mode 100644 Documentation/translations/zh_CN/core-api/irq/index.rst
>
> diff --git a/Documentation/translations/zh_CN/core-api/irq/index.rst b/Documentation/translations/zh_CN/core-api/irq/index.rst
> new file mode 100644
> index 000000000000..910ccabf041f
> --- /dev/null
> +++ b/Documentation/translations/zh_CN/core-api/irq/index.rst
> @@ -0,0 +1,19 @@
> +.. include:: ../../disclaimer-zh_CN.rst
> +
> +:Original: :doc:`../../../../core-api/irq/index`
> +:Translator: Yanteng Si <siyanteng@loongson.cn>
> +
> +.. _cn_irq_index.rst:
> +
> +
> +====
> +IRQs
> +====
> +
> +.. toctree::
> + :maxdepth: 1
> +
> + concepts
> + irq-affinity
> + irq-domain
> + irqflags-tracing
> --
> 2.27.0
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 02/11] docs/zh_CN: add core-api irq irq-affinity.rst translation
2021-04-06 13:02 ` [PATCH 02/11] docs/zh_CN: add core-api irq irq-affinity.rst translation Yanteng Si
@ 2021-04-06 15:35 ` Wu X.C.
2021-04-07 2:08 ` yanteng si
0 siblings, 1 reply; 34+ messages in thread
From: Wu X.C. @ 2021-04-06 15:35 UTC (permalink / raw)
To: Yanteng Si
Cc: Jonathan Corbet, Alex Shi, Alex Shi, Huacai Chen, Jiaxun Yang,
Harry Wei, linux-doc, realpuyuwang, siyanteng01
On Tue, Apr 06, 2021 at 09:02:01PM +0800, Yanteng Si wrote:
> This patch translates Documentation/core-api/irq/irq-affinity.rst into Chinese.
>
> Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
> ---
> .../zh_CN/core-api/irq/irq-affinity.rst | 73 +++++++++++++++++++
> 1 file changed, 73 insertions(+)
> create mode 100644 Documentation/translations/zh_CN/core-api/irq/irq-affinity.rst
>
> diff --git a/Documentation/translations/zh_CN/core-api/irq/irq-affinity.rst b/Documentation/translations/zh_CN/core-api/irq/irq-affinity.rst
> new file mode 100644
> index 000000000000..34aaf0d1ddc2
> --- /dev/null
> +++ b/Documentation/translations/zh_CN/core-api/irq/irq-affinity.rst
> @@ -0,0 +1,73 @@
> +.. include:: ../../disclaimer-zh_CN.rst
> +
> +:Original: :doc:`../../../../core-api/irq/irq-affinity`
> +:Translator: Yanteng Si <siyanteng@loongson.cn>
> +
> +.. _cn_irq-affinity.rst:
> +
> +
> +================
> +SMP IRQ 亲和性
> +================
> +
> +变更记录:
> + - 作者:最初由Ingo Molnar <mingo@redhat.com>开始撰写
> + - 后期更新维护: Max Krasnyansky <maxk@qualcomm.com>
> +
> +
> +/proc/irq/IRQ#/smp_affinity和/proc/irq/IRQ#/smp_affinity_list指明了给定IRQ源
> +允许哪些目标CPU使用。它是被允许的CPU的位掩码(smp_affinity)或cpu列表(smp_affinity_list)。
> +它不允许关闭所有的CPU,如果一个IRQ控制器不支持IRQ亲和性,那么所有cpu的默认值将不会发生
关闭 -> 禁止?
> +变化。
> +
> +/proc/irq/default_smp_affinity指明了适用于所有非激活IRQ的默认亲和性掩码。一旦IRQ被
> +分配/激活,它的亲和位掩码将被设置为默认掩码。然后可以如上所述改变它。默认掩码是0xffffffffff。
0xffffffff
eight f
> +
> +下面是一个先将IRQ44(eth1)限制在CPU0-3上,然后限制在CPU4-7上的例子(这是一个8CPU的SMP box)
a empty line
> +::
> +
> + [root@moon 44]# cd /proc/irq/44
> + [root@moon 44]# cat smp_affinity
> + ffffffff
> +
> + [root@moon 44]# echo 0f > smp_affinity
> + [root@moon 44]# cat smp_affinity
> + 0000000f
> + [root@moon 44]# ping -f h
> + PING hell (195.4.7.3): 56 data bytes
> + ...
> + --- hell ping statistics ---
> + 6029 packets transmitted, 6027 packets received, 0% packet loss
> + round-trip min/avg/max = 0.1/0.1/0.4 ms
> + [root@moon 44]# cat /proc/interrupts | grep 'CPU\|44:'
> + CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
> + 44: 1068 1785 1785 1783 0 0 0 0 IO-APIC-level eth1
> +
> +从上面一行可以看出,IRQ44只传递给前四个处理器(0-3)。
> +现在让我们把这个IRQ限制在CPU(4-7)。
> +
> +::
> +
> + [root@moon 44]# echo f0 > smp_affinity
> + [root@moon 44]# cat smp_affinity
> + 000000f0
> + [root@moon 44]# ping -f h
> + PING hell (195.4.7.3): 56 data bytes
> + ..
> + --- hell ping statistics ---
> + 2779 packets transmitted, 2777 packets received, 0% packet loss
> + round-trip min/avg/max = 0.1/0.5/585.4 ms
> + [root@moon 44]# cat /proc/interrupts | 'CPU\|44:'
> + CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
> + 44: 1068 1785 1785 1783 1784 1069 1070 1069 IO-APIC-level eth1
> +
> +这次IRQ44只传递给最后四个处理器。
> +即CPU0-3的计数器没有变化。
> +
> +下面是一个将相同的irq(44)限制在cpus 1024到1031的例子:。
^^^
: -> ::
> +
> + [root@moon 44]# echo 1024-1031 > smp_affinity_list
> + [root@moon 44]# cat smp_affinity_list
> + 1024-1031
> +
> +需要注意的是,如果要用位掩码来做这件事,就需要32个为0的位掩码来追踪其相关的一个。
> --
> 2.27.0
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 04/11] docs/zh_CN: add core-api irq irqflags-tracing.rst translation
2021-04-06 13:02 ` [PATCH 04/11] docs/zh_CN: add core-api irq irqflags-tracing.rst translation Yanteng Si
@ 2021-04-06 16:13 ` Wu X.C.
2021-04-07 3:03 ` yanteng si
0 siblings, 1 reply; 34+ messages in thread
From: Wu X.C. @ 2021-04-06 16:13 UTC (permalink / raw)
To: Yanteng Si
Cc: Jonathan Corbet, Alex Shi, Alex Shi, Huacai Chen, Jiaxun Yang,
Harry Wei, linux-doc, realpuyuwang, siyanteng01
On Tue, Apr 06, 2021 at 09:02:03PM +0800, Yanteng Si wrote:
> This patch translates Documentation/core-api/irq/irqflags-tracing.rst into Chinese.
>
> Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
> ---
> .../zh_CN/core-api/irq/irqflags-tracing.rst | 46 +++++++++++++++++++
> 1 file changed, 46 insertions(+)
> create mode 100644 Documentation/translations/zh_CN/core-api/irq/irqflags-tracing.rst
>
> diff --git a/Documentation/translations/zh_CN/core-api/irq/irqflags-tracing.rst b/Documentation/translations/zh_CN/core-api/irq/irqflags-tracing.rst
> new file mode 100644
> index 000000000000..2a3f577ac6b5
> --- /dev/null
> +++ b/Documentation/translations/zh_CN/core-api/irq/irqflags-tracing.rst
> @@ -0,0 +1,45 @@
> +.. include:: ../../disclaimer-zh_CN.rst
> +
> +:Original: :doc:`../../../../core-api/irq/irqflags-tracing`
> +:Translator: Yanteng Si <siyanteng@loongson.cn>
> +
> +.. _cn_irqflags-tracing.rst:
> +
> +
> +=======================
> +IRQ-flags状态追踪
> +=======================
> +
> +:Author: 最初由Ingo Molnar <mingo@redhat.com>开始撰写
> +
> +"irq-flags tracing" 功能可以 "追踪" hardirq和softirq的状态,它让感兴趣的子
"irq-flags tracing"(中断标志追踪) ?
> +系统有机会了解到到内核中发生的每一个
> +hardirqs-off/hardirqs-on、softirqs-off/softirqs-on事件。
> +
> +CONFIG_TRACE_IRQFLAGS_SUPPORT是通用锁调试代码提供的CONFIG_PROVE_SPIN_LOCKING
> +和CONFIG_PROVE_RW_LOCKING所需要的。否则将只有CONFIG_PROVE_MUTEX_LOCKING和
> +CONFIG_PROVE_RWSEM_LOCKING在一个架构上被提供--这些都是不在IRQ上下文中使用的
> +锁API。(rwsems的一个异常是可以解决的)
> +
> +架构对这一点的支持当然不属于 "琐碎 "的范畴,因为很多低级的汇编代码都要处理irq-flags
quotation marks
“琐碎”
> +的状态变化。但是一个架构可以以一种相当直接且无风险的方式启用irq-flags-tracing。
> +
> +架构如果想支持这个,需要先做一些代码组织上的改变:
> +
> +- 在他们的arch级Kconfig文件中添加并启用TRACE_IRQFLAGS_SUPPORT。
> +
> +然后还需要做一些功能上的改变来实现对irq-flags-tracing的支持:
> +
> +- 在低级入口代码中增加(构建条件)对trace_hardirqs_off()/trace_hardirqs_on()
brackets
(构建条件)
> + 函数的调用。锁验证器会密切关注 "真实 "的irq-flags是否与 "虚拟 "的irq-flags
“真实” “虚拟”
> + 状态相匹配,如果两者不匹配,则会大声抱怨(并关闭自己)。通常对于arch支持
大声抱怨 -> 发出警告 ?
so as followed 抱怨
> + irq-flags-track的大部分时间都是在这种状态下度过的:看看lockdep的抱怨,试着
Maybe this is better
通常维护arch中irq-flags-track的大部分时间...
> + 找出我们还没有涉及的汇编代码。修复并重复。一旦系统启动,并且在irq-flags跟踪功
...还没有搞定的汇编代码,修复并重复。
irq-flags-tracing check this term's translation
> + 能中没有出现lockdep抱怨的情况下,arch支持就完成了。
> +
> +- 如果该架构有不可屏蔽的中断,那么需要通过lockdep_off()/lockdep_on()将这些中
> + 断从irq跟踪[和锁验证]机制中排除。
> +
wrong indent for next paragraph
> + 一般来说,在一个架构中,不完整的irq-flags-tracing实现是没有风险的:lockdep
> + 会检测到这一点,并将自己关闭。即锁验证器仍然可靠。应该不会因为irq-tracing的错
> + 误而崩溃。(除非通过修改不该修改的条件来更改汇编或寄存器而破坏其他代码)
> --
> 2.27.0
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 06/11] docs/zh_CN: add core-api/index.rst translation
2021-04-06 13:02 ` [PATCH 06/11] docs/zh_CN: add core-api/index.rst translation Yanteng Si
@ 2021-04-06 16:39 ` Wu X.C.
2021-04-07 3:30 ` yanteng si
0 siblings, 1 reply; 34+ messages in thread
From: Wu X.C. @ 2021-04-06 16:39 UTC (permalink / raw)
To: Yanteng Si
Cc: Jonathan Corbet, Alex Shi, Alex Shi, Huacai Chen, Jiaxun Yang,
Harry Wei, linux-doc, realpuyuwang, siyanteng01
On Tue, Apr 06, 2021 at 09:02:05PM +0800, Yanteng Si wrote:
> This patch translates Documentation/core-api/index.rst into Chinese.
> add Documentation/translations/zh_CN/core-api/irq/* to zh_CN/core-api/index.rst.
>
> Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
> ---
> .../translations/zh_CN/core-api/index.rst | 126 ++++++++++++++++++
> 1 file changed, 126 insertions(+)
> create mode 100644 Documentation/translations/zh_CN/core-api/index.rst
>
> diff --git a/Documentation/translations/zh_CN/core-api/index.rst b/Documentation/translations/zh_CN/core-api/index.rst
> new file mode 100644
> index 000000000000..1d0e73b03858
> --- /dev/null
> +++ b/Documentation/translations/zh_CN/core-api/index.rst
> @@ -0,0 +1,126 @@
> +.. include:: ../disclaimer-zh_CN.rst
> +
> +:Original: :doc:`../../../core-api/irq/index`
> +:Translator: Yanteng Si <siyanteng@loongson.cn>
> +
> +.. _cn_core-api_index.rst:
> +
> +
> +======================
> +核心API文档
> +======================
> +
> +这是核心内核API手册的开端。 非常感谢为本手册转换(和编写!)的文档!
手册的首页
> +
> +核心公用程序
实用程序
规范用词: 实用程序
英语名: utility program,utility
台湾名: 公用程式,公用常式
见载: 海峡两岸信息科学技术名词
学科: 信息科学技术
公布年度: 2008
> +==============
> +
> +本节有通用文件和 "核心中的核心" 文件。 第一部分是 docbook 时期遗留下
本节包含通用的和“核心中的核心”文档。
> +来的大量 kerneldoc 信息;有朝一日,当有人找到精力去做的时候,真的
> +应该把它拆分出来。
若有人之后有动力的话,应当把它们拆分出来。
> +
> +Todolist:
> +
> + kernel-api
> + workqueue
> + printk-basics
> + printk-formats
> + symbol-namespaces
> +
> +数据结构和低级公用程序
实用程序
> +=======================================
> +
> +在整个内核中使用的函数库。
missing 'functionality'
功能在整个内核中被使用的函数库。
> +
> +Todolist:
> +
> + kobject
> + kref
> + assoc_array
> + xarray
> + idr
> + circular-buffers
> + rbtree
> + generic-radix-tree
> + packing
> + bus-virt-phys-mapping
> + this_cpu_ops
> + timekeeping
> + errseq
> +
> +并发原语
> +======================
> +
> +Linux如何让一切同时发生。 详情请参阅
> +:doc:`/locking/index`
I'm not sure if the path suitable for tanslation dir?
> +
> +.. toctree::
> + :maxdepth: 1
> +
> + irq/index
> +
> +Todolist:
> +
> + refcount-vs-atomic
> + local_ops
> + padata
> + ../RCU/index
> +
> +低级硬件管理
> +=============================
> +
> +缓存管理,CPU热插拔管理等。
> +
> +Todolist:
> +
> + cachetlb
> + cpu_hotplug
> + memory-hotplug
> + genericirq
> + protection-keys
> +
> +
> +内存管理
> +=================
> +
> +如何在内核中分配和使用内存。请注意,在
> +:doc:`/vm/index` 中有更多的内存管理文档。
so as above
> +
> +Todolist:
> +
> + memory-allocation
> + unaligned-memory-access
> + dma-api
> + dma-api-howto
> + dma-attributes
> + dma-isa-lpc
> + mm-api
> + genalloc
> + pin_user_pages
> + boot-time-mm
> + gfp_mask-from-fs-io
> +
> +内核调试的接口
> +===============================
> +
> +Todolist:
> +
> + debug-objects
> + tracepoint
> + debugging-via-ohci1394
> +
> +其它一切文档
maybe remove 一切 ?
> +===============
> +
> +不适合放在其它地方或尚未归类的文件;
> +
> +Todolist:
> +
> + librs
> +
> +.. only:: subproject and html
> +
> + Indices
> + =======
> +
> + * :ref:`genindex`
> --
> 2.27.0
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 07/11] docs/zh_CN: add translation to zh_CN index
2021-04-06 13:02 ` [PATCH 07/11] docs/zh_CN: add translation to zh_CN index Yanteng Si
@ 2021-04-06 16:40 ` Wu X.C.
0 siblings, 0 replies; 34+ messages in thread
From: Wu X.C. @ 2021-04-06 16:40 UTC (permalink / raw)
To: Yanteng Si
Cc: Jonathan Corbet, Alex Shi, Alex Shi, Huacai Chen, Jiaxun Yang,
Harry Wei, linux-doc, realpuyuwang, siyanteng01
On Tue, Apr 06, 2021 at 09:02:06PM +0800, Yanteng Si wrote:
> This patch add zh_CN/core-api to zh_CN/index.
>
> Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
Reviewed-by: Wu XiangCheng <bobwxc@email.cn>
> ---
> Documentation/translations/zh_CN/index.rst | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/Documentation/translations/zh_CN/index.rst b/Documentation/translations/zh_CN/index.rst
> index 4fdd57417ffb..041a04c8e775 100644
> --- a/Documentation/translations/zh_CN/index.rst
> +++ b/Documentation/translations/zh_CN/index.rst
> @@ -22,6 +22,7 @@
> filesystems/index
> arm64/index
> sound/index
> + core-api/index
>
> 目录和表格
> ----------
> --
> 2.27.0
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 09/11] docs/zh_CN: add openrisc/todo.rst translation
2021-04-06 13:02 ` [PATCH 09/11] docs/zh_CN: add openrisc/todo.rst translation Yanteng Si
@ 2021-04-06 16:50 ` Wu X.C.
2021-04-07 6:30 ` yanteng si
0 siblings, 1 reply; 34+ messages in thread
From: Wu X.C. @ 2021-04-06 16:50 UTC (permalink / raw)
To: Yanteng Si
Cc: Jonathan Corbet, Alex Shi, Alex Shi, Huacai Chen, Jiaxun Yang,
Harry Wei, linux-doc, realpuyuwang, siyanteng01
On Tue, Apr 06, 2021 at 09:02:08PM +0800, Yanteng Si wrote:
> This patch translates Documentation/openrisc/todo.rst into Chinese.
>
> Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
> ---
> .../translations/zh_CN/openrisc/todo.rst | 20 +++++++++++++++++++
> 1 file changed, 20 insertions(+)
> create mode 100644 Documentation/translations/zh_CN/openrisc/todo.rst
>
> diff --git a/Documentation/translations/zh_CN/openrisc/todo.rst b/Documentation/translations/zh_CN/openrisc/todo.rst
> new file mode 100644
> index 000000000000..0e5d1c9122f8
> --- /dev/null
> +++ b/Documentation/translations/zh_CN/openrisc/todo.rst
> @@ -0,0 +1,20 @@
> +.. include:: ../disclaimer-zh_CN.rst
> +
> +:Original: :doc:`../../../openrisc/todo`
> +:Translator: Yanteng Si <siyanteng@loongson.cn>
> +
> +.. _cn_openrisc_todo.rst:
> +
> +===========
> +代办事项
??
待办
> +===========
> +
> +OpenRISC Linux的移植已经完全投入使用,并且从 2.6.35 开始就一直在上游同步。
> +然而,还有一些剩余的项目需要在未来几个月内完成。 下面是一个已知的不如意的
不如意 -> 不尽完美 ? decide it by yourself
> +项目列表,即我们的待办事项列表。
missing "that are due for investigation shortly"
> +
> +- 实现其余的DMA API......dma_map_sg等。
Chinses ellipsis U+2026
……
> +
> +- 完成重命名清理工作......代码中提到了or32,这是架构的一个老名字。 我们
……
> + 已经确定的名字是or1k,这个改变正在以缓慢积累的方式进行。 目前,or32相当
> + 于or1k。
> --
> 2.27.0
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 10/11] docs/zh_CN: add openrisc/index.rst translation
2021-04-06 13:02 ` [PATCH 10/11] docs/zh_CN: add openrisc/index.rst translation Yanteng Si
@ 2021-04-06 16:56 ` Wu X.C.
0 siblings, 0 replies; 34+ messages in thread
From: Wu X.C. @ 2021-04-06 16:56 UTC (permalink / raw)
To: Yanteng Si
Cc: Jonathan Corbet, Alex Shi, Alex Shi, Huacai Chen, Jiaxun Yang,
Harry Wei, linux-doc, realpuyuwang, siyanteng01
On Tue, Apr 06, 2021 at 09:02:09PM +0800, Yanteng Si wrote:
> This patch translates Documentation/openrisc/index.rst into Chinese.
>
> Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
> ---
> .../translations/zh_CN/openrisc/index.rst | 27 +++++++++++++++++++
> 1 file changed, 27 insertions(+)
> create mode 100644 Documentation/translations/zh_CN/openrisc/index.rst
>
> diff --git a/Documentation/translations/zh_CN/openrisc/index.rst b/Documentation/translations/zh_CN/openrisc/index.rst
> new file mode 100644
> index 000000000000..89432b9cf8e1
> --- /dev/null
> +++ b/Documentation/translations/zh_CN/openrisc/index.rst
> @@ -0,0 +1,27 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +.. include:: ../disclaimer-zh_CN.rst
> +
> +:Original: :doc:`../../../openrisc/index`
> +:Translator: Yanteng Si <siyanteng@loongson.cn>
> +
> +.. _cn_openrisc_index:
> +
> +
> +=====================
> +OpenRISC 体系架构
> +=====================
> +
> +.. toctree::
> + :maxdepth: 2
> +
> + openrisc_port
> + todo
> +
It seems missed the TodoList of "features", please add it if you have
time.
And a reviewed-by
Reviewed-by: Wu XiangCheng <bobwxc@email.cn>
> +
> +.. only:: subproject and html
> +
> + Indices
> + =======
> +
> + * :ref:`genindex`
> --
> 2.27.0
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 01/11] docs/zh_CN: add core-api irq concepts.rst translation
2021-04-06 15:12 ` Wu X.C.
@ 2021-04-07 1:20 ` yanteng si
0 siblings, 0 replies; 34+ messages in thread
From: yanteng si @ 2021-04-07 1:20 UTC (permalink / raw)
To: Wu X.C.
Cc: Yanteng Si, Jonathan Corbet, Alex Shi, Alex Shi, Huacai Chen,
Jiaxun Yang, Harry Wei, linux-doc, Puyu Wang
Wu X.C. <bobwxc@email.cn> 于2021年4月6日周二 下午11:12写道:
>
> On Tue, Apr 06, 2021 at 09:02:00PM +0800, Yanteng Si wrote:
> > This patch translates Documentation/core-api/irq/concepts.rst into Chinese.
> >
> > Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
> > ---
> > .../zh_CN/core-api/irq/concepts.rst | 24 +++++++++++++++++++
> > 1 file changed, 24 insertions(+)
> > create mode 100644 Documentation/translations/zh_CN/core-api/irq/concepts.rst
> >
> > diff --git a/Documentation/translations/zh_CN/core-api/irq/concepts.rst b/Documentation/translations/zh_CN/core-api/irq/concepts.rst
> > new file mode 100644
> > index 000000000000..b8b98a196a5d
> > --- /dev/null
> > +++ b/Documentation/translations/zh_CN/core-api/irq/concepts.rst
> > @@ -0,0 +1,24 @@
> > +.. include:: ../../disclaimer-zh_CN.rst
> > +
> > +:Original: :doc:`../../../../core-api/irq/concepts`
> > +:Translator: Yanteng Si <siyanteng@loongson.cn>
> > +
> > +.. _cn_concepts.rst:
> > +
> > +
> > +===============
> > +什么是IRQ?
> > +===============
> > +
> > +一个来自设备的中断请求就是一个IRQ。
>
> Maybe this better?
>
> IRQ(Interrupt ReQuest)指来自设备的中断请求
OK!
>
> > +目前,它们可以通过一个引脚或通过一个数据包进入。
> > +多个设备可以连接到同一个引脚,从而共享一个IRQ。
> > +
> > +IRQ编号是用来描述硬件中断源的内核标识符。通常它是一个到全局irq_desc数组的索引,
> > +但是除了在linux/interrupt.h中实现的之外,其它细节是体系结构特征相关的。
> > +
> > +IRQ编号是对机器上可能的中断源的枚举。通常枚举的是系统中所有中断控制器的输入引脚
> > +编号。在ISA(工业标准体系结构)的情况下所枚举的是两个i8259中断控制器的16个输入引脚。
> > +
> > +体系结构可以给IRQ号赋予额外的含义,在涉及到硬件手动配置的情况下,我们鼓励这样做。
> > +ISA IRQ是赋予这种额外含义的一个典型例子。
> > --
> > 2.27.0
>
Thanks!
Yanteng
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 02/11] docs/zh_CN: add core-api irq irq-affinity.rst translation
2021-04-06 15:35 ` Wu X.C.
@ 2021-04-07 2:08 ` yanteng si
2021-04-07 4:59 ` Wu X.C.
0 siblings, 1 reply; 34+ messages in thread
From: yanteng si @ 2021-04-07 2:08 UTC (permalink / raw)
To: Wu X.C.
Cc: Yanteng Si, Jonathan Corbet, Alex Shi, Alex Shi, Huacai Chen,
Jiaxun Yang, Harry Wei, linux-doc, Puyu Wang
Wu X.C. <bobwxc@email.cn> 于2021年4月6日周二 下午11:35写道:
>
> On Tue, Apr 06, 2021 at 09:02:01PM +0800, Yanteng Si wrote:
> > This patch translates Documentation/core-api/irq/irq-affinity.rst into Chinese.
> >
> > Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
> > ---
> > .../zh_CN/core-api/irq/irq-affinity.rst | 73 +++++++++++++++++++
> > 1 file changed, 73 insertions(+)
> > create mode 100644 Documentation/translations/zh_CN/core-api/irq/irq-affinity.rst
> >
> > diff --git a/Documentation/translations/zh_CN/core-api/irq/irq-affinity.rst b/Documentation/translations/zh_CN/core-api/irq/irq-affinity.rst
> > new file mode 100644
> > index 000000000000..34aaf0d1ddc2
> > --- /dev/null
> > +++ b/Documentation/translations/zh_CN/core-api/irq/irq-affinity.rst
> > @@ -0,0 +1,73 @@
> > +.. include:: ../../disclaimer-zh_CN.rst
> > +
> > +:Original: :doc:`../../../../core-api/irq/irq-affinity`
> > +:Translator: Yanteng Si <siyanteng@loongson.cn>
> > +
> > +.. _cn_irq-affinity.rst:
> > +
> > +
> > +================
> > +SMP IRQ 亲和性
> > +================
> > +
> > +变更记录:
> > + - 作者:最初由Ingo Molnar <mingo@redhat.com>开始撰写
> > + - 后期更新维护: Max Krasnyansky <maxk@qualcomm.com>
> > +
> > +
> > +/proc/irq/IRQ#/smp_affinity和/proc/irq/IRQ#/smp_affinity_list指明了给定IRQ源
> > +允许哪些目标CPU使用。它是被允许的CPU的位掩码(smp_affinity)或cpu列表(smp_affinity_list)。
> > +它不允许关闭所有的CPU,如果一个IRQ控制器不支持IRQ亲和性,那么所有cpu的默认值将不会发生
>
> 关闭 -> 禁止?
emmmmm……
I looked up the English-Chinese dictionary:turn off -> 关闭,关掉电器、水龙头……
maybe:不允许关闭 -> 禁止关闭?
>
> > +变化。
> > +
> > +/proc/irq/default_smp_affinity指明了适用于所有非激活IRQ的默认亲和性掩码。一旦IRQ被
> > +分配/激活,它的亲和位掩码将被设置为默认掩码。然后可以如上所述改变它。默认掩码是0xffffffffff。
>
> 0xffffffff
> eight f
>
OK!
> > +
> > +下面是一个先将IRQ44(eth1)限制在CPU0-3上,然后限制在CPU4-7上的例子(这是一个8CPU的SMP box)
> a empty line
OK!
> > +::
> > +
> > + [root@moon 44]# cd /proc/irq/44
> > + [root@moon 44]# cat smp_affinity
> > + ffffffff
> > +
> > + [root@moon 44]# echo 0f > smp_affinity
> > + [root@moon 44]# cat smp_affinity
> > + 0000000f
> > + [root@moon 44]# ping -f h
> > + PING hell (195.4.7.3): 56 data bytes
> > + ...
> > + --- hell ping statistics ---
> > + 6029 packets transmitted, 6027 packets received, 0% packet loss
> > + round-trip min/avg/max = 0.1/0.1/0.4 ms
> > + [root@moon 44]# cat /proc/interrupts | grep 'CPU\|44:'
> > + CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
> > + 44: 1068 1785 1785 1783 0 0 0 0 IO-APIC-level eth1
> > +
> > +从上面一行可以看出,IRQ44只传递给前四个处理器(0-3)。
> > +现在让我们把这个IRQ限制在CPU(4-7)。
> > +
> > +::
> > +
> > + [root@moon 44]# echo f0 > smp_affinity
> > + [root@moon 44]# cat smp_affinity
> > + 000000f0
> > + [root@moon 44]# ping -f h
> > + PING hell (195.4.7.3): 56 data bytes
> > + ..
> > + --- hell ping statistics ---
> > + 2779 packets transmitted, 2777 packets received, 0% packet loss
> > + round-trip min/avg/max = 0.1/0.5/585.4 ms
> > + [root@moon 44]# cat /proc/interrupts | 'CPU\|44:'
> > + CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
> > + 44: 1068 1785 1785 1783 1784 1069 1070 1069 IO-APIC-level eth1
> > +
> > +这次IRQ44只传递给最后四个处理器。
> > +即CPU0-3的计数器没有变化。
> > +
> > +下面是一个将相同的irq(44)限制在cpus 1024到1031的例子:。
> ^^^
> : -> ::
>
OK!
> > +
> > + [root@moon 44]# echo 1024-1031 > smp_affinity_list
> > + [root@moon 44]# cat smp_affinity_list
> > + 1024-1031
> > +
> > +需要注意的是,如果要用位掩码来做这件事,就需要32个为0的位掩码来追踪其相关的一个。
> > --
> > 2.27.0
>
Thanks!
Yanteng
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 04/11] docs/zh_CN: add core-api irq irqflags-tracing.rst translation
2021-04-06 16:13 ` Wu X.C.
@ 2021-04-07 3:03 ` yanteng si
2021-04-07 5:08 ` Wu X.C.
0 siblings, 1 reply; 34+ messages in thread
From: yanteng si @ 2021-04-07 3:03 UTC (permalink / raw)
To: Wu X.C.
Cc: Yanteng Si, Jonathan Corbet, Alex Shi, Alex Shi, Huacai Chen,
Jiaxun Yang, Harry Wei, linux-doc, Puyu Wang
Wu X.C. <bobwxc@email.cn> 于2021年4月7日周三 上午12:13写道:
>
> On Tue, Apr 06, 2021 at 09:02:03PM +0800, Yanteng Si wrote:
> > This patch translates Documentation/core-api/irq/irqflags-tracing.rst into Chinese.
> >
> > Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
> > ---
> > .../zh_CN/core-api/irq/irqflags-tracing.rst | 46 +++++++++++++++++++
> > 1 file changed, 46 insertions(+)
> > create mode 100644 Documentation/translations/zh_CN/core-api/irq/irqflags-tracing.rst
> >
> > diff --git a/Documentation/translations/zh_CN/core-api/irq/irqflags-tracing.rst b/Documentation/translations/zh_CN/core-api/irq/irqflags-tracing.rst
> > new file mode 100644
> > index 000000000000..2a3f577ac6b5
> > --- /dev/null
> > +++ b/Documentation/translations/zh_CN/core-api/irq/irqflags-tracing.rst
> > @@ -0,0 +1,45 @@
> > +.. include:: ../../disclaimer-zh_CN.rst
> > +
> > +:Original: :doc:`../../../../core-api/irq/irqflags-tracing`
> > +:Translator: Yanteng Si <siyanteng@loongson.cn>
> > +
> > +.. _cn_irqflags-tracing.rst:
> > +
> > +
> > +=======================
> > +IRQ-flags状态追踪
> > +=======================
> > +
> > +:Author: 最初由Ingo Molnar <mingo@redhat.com>开始撰写
> > +
> > +"irq-flags tracing" 功能可以 "追踪" hardirq和softirq的状态,它让感兴趣的子
>
> "irq-flags tracing"(中断标志追踪) ?
OK!
>
> > +系统有机会了解到到内核中发生的每一个
> > +hardirqs-off/hardirqs-on、softirqs-off/softirqs-on事件。
> > +
> > +CONFIG_TRACE_IRQFLAGS_SUPPORT是通用锁调试代码提供的CONFIG_PROVE_SPIN_LOCKING
> > +和CONFIG_PROVE_RW_LOCKING所需要的。否则将只有CONFIG_PROVE_MUTEX_LOCKING和
> > +CONFIG_PROVE_RWSEM_LOCKING在一个架构上被提供--这些都是不在IRQ上下文中使用的
> > +锁API。(rwsems的一个异常是可以解决的)
> > +
> > +架构对这一点的支持当然不属于 "琐碎 "的范畴,因为很多低级的汇编代码都要处理irq-flags
>
> quotation marks
> “琐碎”
微不足道
OK?
>
> > +的状态变化。但是一个架构可以以一种相当直接且无风险的方式启用irq-flags-tracing。
> > +
> > +架构如果想支持这个,需要先做一些代码组织上的改变:
> > +
> > +- 在他们的arch级Kconfig文件中添加并启用TRACE_IRQFLAGS_SUPPORT。
> > +
> > +然后还需要做一些功能上的改变来实现对irq-flags-tracing的支持:
> > +
> > +- 在低级入口代码中增加(构建条件)对trace_hardirqs_off()/trace_hardirqs_on()
>
> brackets
> (构建条件)
Origin: in lowlevel entry code add (build-conditional) calls to the
>
> > + 函数的调用。锁验证器会密切关注 "真实 "的irq-flags是否与 "虚拟 "的irq-flags
>
> “真实” “虚拟”
I tried to delve into it, but I found it wasn't easy, and I needed some time.
also ”irq-flags-tracing“
>
> > + 状态相匹配,如果两者不匹配,则会大声抱怨(并关闭自己)。通常对于arch支持
>
> 大声抱怨 -> 发出警告 ?
> so as followed 抱怨
OK!
>
> > + irq-flags-track的大部分时间都是在这种状态下度过的:看看lockdep的抱怨,试着
>
> Maybe this is better
> 通常维护arch中irq-flags-track的大部分时间...
OK!
>
> > + 找出我们还没有涉及的汇编代码。修复并重复。一旦系统启动,并且在irq-flags跟踪功
>
> ...还没有搞定的汇编代码,修复并重复。
OK!
>
> irq-flags-tracing check this term's translation
>
> > + 能中没有出现lockdep抱怨的情况下,arch支持就完成了。
> > +
> > +- 如果该架构有不可屏蔽的中断,那么需要通过lockdep_off()/lockdep_on()将这些中
> > + 断从irq跟踪[和锁验证]机制中排除。
> > +
>
> wrong indent for next paragraph
OK!
>
> > + 一般来说,在一个架构中,不完整的irq-flags-tracing实现是没有风险的:lockdep
> > + 会检测到这一点,并将自己关闭。即锁验证器仍然可靠。应该不会因为irq-tracing的错
> > + 误而崩溃。(除非通过修改不该修改的条件来更改汇编或寄存器而破坏其他代码)
> > --
> > 2.27.0
>
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 06/11] docs/zh_CN: add core-api/index.rst translation
2021-04-06 16:39 ` Wu X.C.
@ 2021-04-07 3:30 ` yanteng si
2021-04-07 5:13 ` Wu X.C.
0 siblings, 1 reply; 34+ messages in thread
From: yanteng si @ 2021-04-07 3:30 UTC (permalink / raw)
To: Wu X.C.
Cc: Yanteng Si, Jonathan Corbet, Alex Shi, Alex Shi, Huacai Chen,
Jiaxun Yang, Harry Wei, linux-doc, Puyu Wang
Wu X.C. <bobwxc@email.cn> 于2021年4月7日周三 上午12:39写道:
>
> On Tue, Apr 06, 2021 at 09:02:05PM +0800, Yanteng Si wrote:
> > This patch translates Documentation/core-api/index.rst into Chinese.
> > add Documentation/translations/zh_CN/core-api/irq/* to zh_CN/core-api/index.rst.
> >
> > Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
> > ---
> > .../translations/zh_CN/core-api/index.rst | 126 ++++++++++++++++++
> > 1 file changed, 126 insertions(+)
> > create mode 100644 Documentation/translations/zh_CN/core-api/index.rst
> >
> > diff --git a/Documentation/translations/zh_CN/core-api/index.rst b/Documentation/translations/zh_CN/core-api/index.rst
> > new file mode 100644
> > index 000000000000..1d0e73b03858
> > --- /dev/null
> > +++ b/Documentation/translations/zh_CN/core-api/index.rst
> > @@ -0,0 +1,126 @@
> > +.. include:: ../disclaimer-zh_CN.rst
> > +
> > +:Original: :doc:`../../../core-api/irq/index`
> > +:Translator: Yanteng Si <siyanteng@loongson.cn>
> > +
> > +.. _cn_core-api_index.rst:
> > +
> > +
> > +======================
> > +核心API文档
> > +======================
> > +
> > +这是核心内核API手册的开端。 非常感谢为本手册转换(和编写!)的文档!
>
> 手册的首页
OK!
It's been confusing me for a long time,thank you very much!
>
> > +
> > +核心公用程序
>
> 实用程序
>
> 规范用词: 实用程序
> 英语名: utility program,utility
> 台湾名: 公用程式,公用常式
> 见载: 海峡两岸信息科学技术名词
> 学科: 信息科学技术
> 公布年度: 2008
>
OK!
> > +==============
> > +
> > +本节有通用文件和 "核心中的核心" 文件。 第一部分是 docbook 时期遗留下
>
> 本节包含通用的和“核心中的核心”文档。
>
OK!
> > +来的大量 kerneldoc 信息;有朝一日,当有人找到精力去做的时候,真的
> > +应该把它拆分出来。
>
> 若有人之后有动力的话,应当把它们拆分出来。
”有朝一日“ conflicts with ”之后“
del "之后”
OK?
>
> > +
> > +Todolist:
> > +
> > + kernel-api
> > + workqueue
> > + printk-basics
> > + printk-formats
> > + symbol-namespaces
> > +
> > +数据结构和低级公用程序
>
> 实用程序
>
OK!
> > +=======================================
> > +
> > +在整个内核中使用的函数库。
>
> missing 'functionality'
>
> 功能在整个内核中被使用的函数库。
>
function -> 函数(单个黑匣子)
functionality -> 函数(累积的那种,很多个黑匣子)
Library -> 库
> > +
> > +Todolist:
> > +
> > + kobject
> > + kref
> > + assoc_array
> > + xarray
> > + idr
> > + circular-buffers
> > + rbtree
> > + generic-radix-tree
> > + packing
> > + bus-virt-phys-mapping
> > + this_cpu_ops
> > + timekeeping
> > + errseq
> > +
> > +并发原语
> > +======================
> > +
> > +Linux如何让一切同时发生。 详情请参阅
> > +:doc:`/locking/index`
>
> I'm not sure if the path suitable for tanslation dir?
I have tested it before and everything is fine!
>
> > +
> > +.. toctree::
> > + :maxdepth: 1
> > +
> > + irq/index
> > +
> > +Todolist:
> > +
> > + refcount-vs-atomic
> > + local_ops
> > + padata
> > + ../RCU/index
> > +
> > +低级硬件管理
> > +=============================
> > +
> > +缓存管理,CPU热插拔管理等。
> > +
> > +Todolist:
> > +
> > + cachetlb
> > + cpu_hotplug
> > + memory-hotplug
> > + genericirq
> > + protection-keys
> > +
> > +
> > +内存管理
> > +=================
> > +
> > +如何在内核中分配和使用内存。请注意,在
> > +:doc:`/vm/index` 中有更多的内存管理文档。
>
> so as above
I have tested it before and everything is fine!
>
> > +
> > +Todolist:
> > +
> > + memory-allocation
> > + unaligned-memory-access
> > + dma-api
> > + dma-api-howto
> > + dma-attributes
> > + dma-isa-lpc
> > + mm-api
> > + genalloc
> > + pin_user_pages
> > + boot-time-mm
> > + gfp_mask-from-fs-io
> > +
> > +内核调试的接口
> > +===============================
> > +
> > +Todolist:
> > +
> > + debug-objects
> > + tracepoint
> > + debugging-via-ohci1394
> > +
> > +其它一切文档
>
> maybe remove 一切 ?
OK!
>
> > +===============
> > +
> > +不适合放在其它地方或尚未归类的文件;
> > +
> > +Todolist:
> > +
> > + librs
> > +
> > +.. only:: subproject and html
> > +
> > + Indices
> > + =======
> > +
> > + * :ref:`genindex`
> > --
> > 2.27.0
>
Thanks
Yanteng
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 02/11] docs/zh_CN: add core-api irq irq-affinity.rst translation
2021-04-07 2:08 ` yanteng si
@ 2021-04-07 4:59 ` Wu X.C.
2021-04-07 6:59 ` yanteng si
0 siblings, 1 reply; 34+ messages in thread
From: Wu X.C. @ 2021-04-07 4:59 UTC (permalink / raw)
To: yanteng si
Cc: Yanteng Si, Jonathan Corbet, Alex Shi, Alex Shi, Huacai Chen,
Jiaxun Yang, Harry Wei, linux-doc, Puyu Wang
On Wed, Apr 07, 2021 at 10:08:38AM +0800, yanteng si wrote:
> Wu X.C. <bobwxc@email.cn> 于2021年4月6日周二 下午11:35写道:
> >
> > On Tue, Apr 06, 2021 at 09:02:01PM +0800, Yanteng Si wrote:
> > > This patch translates Documentation/core-api/irq/irq-affinity.rst into Chinese.
> > >
> > > Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
> > > ---
> > > .../zh_CN/core-api/irq/irq-affinity.rst | 73 +++++++++++++++++++
> > > 1 file changed, 73 insertions(+)
> > > create mode 100644 Documentation/translations/zh_CN/core-api/irq/irq-affinity.rst
> > >
> > > diff --git a/Documentation/translations/zh_CN/core-api/irq/irq-affinity.rst b/Documentation/translations/zh_CN/core-api/irq/irq-affinity.rst
> > > new file mode 100644
> > > index 000000000000..34aaf0d1ddc2
> > > --- /dev/null
> > > +++ b/Documentation/translations/zh_CN/core-api/irq/irq-affinity.rst
> > > @@ -0,0 +1,73 @@
> > > +.. include:: ../../disclaimer-zh_CN.rst
> > > +
> > > +:Original: :doc:`../../../../core-api/irq/irq-affinity`
> > > +:Translator: Yanteng Si <siyanteng@loongson.cn>
> > > +
> > > +.. _cn_irq-affinity.rst:
> > > +
> > > +
> > > +================
> > > +SMP IRQ 亲和性
> > > +================
> > > +
> > > +变更记录:
> > > + - 作者:最初由Ingo Molnar <mingo@redhat.com>开始撰写
> > > + - 后期更新维护: Max Krasnyansky <maxk@qualcomm.com>
> > > +
> > > +
> > > +/proc/irq/IRQ#/smp_affinity和/proc/irq/IRQ#/smp_affinity_list指明了给定IRQ源
> > > +允许哪些目标CPU使用。它是被允许的CPU的位掩码(smp_affinity)或cpu列表(smp_affinity_list)。
> > > +它不允许关闭所有的CPU,如果一个IRQ控制器不支持IRQ亲和性,那么所有cpu的默认值将不会发生
> >
> > 关闭 -> 禁止?
> emmmmm……
> I looked up the English-Chinese dictionary:turn off -> 关闭,关掉电器、水龙头……
> maybe:不允许关闭 -> 禁止关闭?
我是想着是不是要跟前面的“允许”目标CPU使用对应
Both ok, choose the one you pefer
Thanks!
> >
> > > +变化。
> > > +
> > > +/proc/irq/default_smp_affinity指明了适用于所有非激活IRQ的默认亲和性掩码。一旦IRQ被
> > > +分配/激活,它的亲和位掩码将被设置为默认掩码。然后可以如上所述改变它。默认掩码是0xffffffffff。
> >
> > 0xffffffff
> > eight f
> >
> OK!
> > > +
> > > +下面是一个先将IRQ44(eth1)限制在CPU0-3上,然后限制在CPU4-7上的例子(这是一个8CPU的SMP box)
> > a empty line
> OK!
> > > +::
> > > +
> > > + [root@moon 44]# cd /proc/irq/44
> > > + [root@moon 44]# cat smp_affinity
> > > + ffffffff
> > > +
> > > + [root@moon 44]# echo 0f > smp_affinity
> > > + [root@moon 44]# cat smp_affinity
> > > + 0000000f
> > > + [root@moon 44]# ping -f h
> > > + PING hell (195.4.7.3): 56 data bytes
> > > + ...
> > > + --- hell ping statistics ---
> > > + 6029 packets transmitted, 6027 packets received, 0% packet loss
> > > + round-trip min/avg/max = 0.1/0.1/0.4 ms
> > > + [root@moon 44]# cat /proc/interrupts | grep 'CPU\|44:'
> > > + CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
> > > + 44: 1068 1785 1785 1783 0 0 0 0 IO-APIC-level eth1
> > > +
> > > +从上面一行可以看出,IRQ44只传递给前四个处理器(0-3)。
> > > +现在让我们把这个IRQ限制在CPU(4-7)。
> > > +
> > > +::
> > > +
> > > + [root@moon 44]# echo f0 > smp_affinity
> > > + [root@moon 44]# cat smp_affinity
> > > + 000000f0
> > > + [root@moon 44]# ping -f h
> > > + PING hell (195.4.7.3): 56 data bytes
> > > + ..
> > > + --- hell ping statistics ---
> > > + 2779 packets transmitted, 2777 packets received, 0% packet loss
> > > + round-trip min/avg/max = 0.1/0.5/585.4 ms
> > > + [root@moon 44]# cat /proc/interrupts | 'CPU\|44:'
> > > + CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
> > > + 44: 1068 1785 1785 1783 1784 1069 1070 1069 IO-APIC-level eth1
> > > +
> > > +这次IRQ44只传递给最后四个处理器。
> > > +即CPU0-3的计数器没有变化。
> > > +
> > > +下面是一个将相同的irq(44)限制在cpus 1024到1031的例子:。
> > ^^^
> > : -> ::
> >
> OK!
> > > +
> > > + [root@moon 44]# echo 1024-1031 > smp_affinity_list
> > > + [root@moon 44]# cat smp_affinity_list
> > > + 1024-1031
> > > +
> > > +需要注意的是,如果要用位掩码来做这件事,就需要32个为0的位掩码来追踪其相关的一个。
> > > --
> > > 2.27.0
> >
>
> Thanks!
>
> Yanteng
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 04/11] docs/zh_CN: add core-api irq irqflags-tracing.rst translation
2021-04-07 3:03 ` yanteng si
@ 2021-04-07 5:08 ` Wu X.C.
2021-04-07 7:13 ` yanteng si
0 siblings, 1 reply; 34+ messages in thread
From: Wu X.C. @ 2021-04-07 5:08 UTC (permalink / raw)
To: yanteng si
Cc: Yanteng Si, Jonathan Corbet, Alex Shi, Alex Shi, Huacai Chen,
Jiaxun Yang, Harry Wei, linux-doc, Puyu Wang
On Wed, Apr 07, 2021 at 11:03:11AM +0800, yanteng si wrote:
> Wu X.C. <bobwxc@email.cn> 于2021年4月7日周三 上午12:13写道:
> >
> > On Tue, Apr 06, 2021 at 09:02:03PM +0800, Yanteng Si wrote:
> > > This patch translates Documentation/core-api/irq/irqflags-tracing.rst into Chinese.
> > >
> > > Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
> > > ---
> > > .../zh_CN/core-api/irq/irqflags-tracing.rst | 46 +++++++++++++++++++
> > > 1 file changed, 46 insertions(+)
> > > create mode 100644 Documentation/translations/zh_CN/core-api/irq/irqflags-tracing.rst
> > >
> > > diff --git a/Documentation/translations/zh_CN/core-api/irq/irqflags-tracing.rst b/Documentation/translations/zh_CN/core-api/irq/irqflags-tracing.rst
> > > new file mode 100644
> > > index 000000000000..2a3f577ac6b5
> > > --- /dev/null
> > > +++ b/Documentation/translations/zh_CN/core-api/irq/irqflags-tracing.rst
> > > @@ -0,0 +1,45 @@
> > > +.. include:: ../../disclaimer-zh_CN.rst
> > > +
> > > +:Original: :doc:`../../../../core-api/irq/irqflags-tracing`
> > > +:Translator: Yanteng Si <siyanteng@loongson.cn>
> > > +
> > > +.. _cn_irqflags-tracing.rst:
> > > +
> > > +
> > > +=======================
> > > +IRQ-flags状态追踪
> > > +=======================
> > > +
> > > +:Author: 最初由Ingo Molnar <mingo@redhat.com>开始撰写
> > > +
> > > +"irq-flags tracing" 功能可以 "追踪" hardirq和softirq的状态,它让感兴趣的子
> >
> > "irq-flags tracing"(中断标志追踪) ?
> OK!
> >
> > > +系统有机会了解到到内核中发生的每一个
> > > +hardirqs-off/hardirqs-on、softirqs-off/softirqs-on事件。
> > > +
> > > +CONFIG_TRACE_IRQFLAGS_SUPPORT是通用锁调试代码提供的CONFIG_PROVE_SPIN_LOCKING
> > > +和CONFIG_PROVE_RW_LOCKING所需要的。否则将只有CONFIG_PROVE_MUTEX_LOCKING和
> > > +CONFIG_PROVE_RWSEM_LOCKING在一个架构上被提供--这些都是不在IRQ上下文中使用的
> > > +锁API。(rwsems的一个异常是可以解决的)
> > > +
> > > +架构对这一点的支持当然不属于 "琐碎 "的范畴,因为很多低级的汇编代码都要处理irq-flags
> >
> > quotation marks
> > “琐碎”
> 微不足道
> OK?
Oh, you misunderstood me :P
That's just for the punctuation marks, please use “” , not ""
> >
> > > +的状态变化。但是一个架构可以以一种相当直接且无风险的方式启用irq-flags-tracing。
> > > +
> > > +架构如果想支持这个,需要先做一些代码组织上的改变:
> > > +
> > > +- 在他们的arch级Kconfig文件中添加并启用TRACE_IRQFLAGS_SUPPORT。
> > > +
> > > +然后还需要做一些功能上的改变来实现对irq-flags-tracing的支持:
> > > +
> > > +- 在低级入口代码中增加(构建条件)对trace_hardirqs_off()/trace_hardirqs_on()
> >
> > brackets
> > (构建条件)
> Origin: in lowlevel entry code add (build-conditional) calls to the
This means to use 2-byte mode brackets, thus '()', not '()'
> >
> > > + 函数的调用。锁验证器会密切关注 "真实 "的irq-flags是否与 "虚拟 "的irq-flags
> >
> > “真实” “虚拟”
> I tried to delve into it, but I found it wasn't easy, and I needed some time.
> also ”irq-flags-tracing“
That's also just for the punctuation marks, please use “” , not ""
> >
> > > + 状态相匹配,如果两者不匹配,则会大声抱怨(并关闭自己)。通常对于arch支持
> >
> > 大声抱怨 -> 发出警告 ?
> > so as followed 抱怨
> OK!
> >
> > > + irq-flags-track的大部分时间都是在这种状态下度过的:看看lockdep的抱怨,试着
> >
> > Maybe this is better
> > 通常维护arch中irq-flags-track的大部分时间...
> OK!
> >
> > > + 找出我们还没有涉及的汇编代码。修复并重复。一旦系统启动,并且在irq-flags跟踪功
> >
> > ...还没有搞定的汇编代码,修复并重复。
> OK!
> >
> > irq-flags-tracing check this term's translation
> >
> > > + 能中没有出现lockdep抱怨的情况下,arch支持就完成了。
> > > +
> > > +- 如果该架构有不可屏蔽的中断,那么需要通过lockdep_off()/lockdep_on()将这些中
> > > + 断从irq跟踪[和锁验证]机制中排除。
> > > +
> >
> > wrong indent for next paragraph
> OK!
> >
> > > + 一般来说,在一个架构中,不完整的irq-flags-tracing实现是没有风险的:lockdep
> > > + 会检测到这一点,并将自己关闭。即锁验证器仍然可靠。应该不会因为irq-tracing的错
> > > + 误而崩溃。(除非通过修改不该修改的条件来更改汇编或寄存器而破坏其他代码)
> > > --
> > > 2.27.0
> >
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 06/11] docs/zh_CN: add core-api/index.rst translation
2021-04-07 3:30 ` yanteng si
@ 2021-04-07 5:13 ` Wu X.C.
0 siblings, 0 replies; 34+ messages in thread
From: Wu X.C. @ 2021-04-07 5:13 UTC (permalink / raw)
To: yanteng si
Cc: Yanteng Si, Jonathan Corbet, Alex Shi, Alex Shi, Huacai Chen,
Jiaxun Yang, Harry Wei, linux-doc, Puyu Wang
On Wed, Apr 07, 2021 at 11:30:44AM +0800, yanteng si wrote:
> Wu X.C. <bobwxc@email.cn> 于2021年4月7日周三 上午12:39写道:
> >
> > On Tue, Apr 06, 2021 at 09:02:05PM +0800, Yanteng Si wrote:
> > > This patch translates Documentation/core-api/index.rst into Chinese.
> > > add Documentation/translations/zh_CN/core-api/irq/* to zh_CN/core-api/index.rst.
> > >
> > > Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
> > > ---
> > > .../translations/zh_CN/core-api/index.rst | 126 ++++++++++++++++++
> > > 1 file changed, 126 insertions(+)
> > > create mode 100644 Documentation/translations/zh_CN/core-api/index.rst
> > >
> > > diff --git a/Documentation/translations/zh_CN/core-api/index.rst b/Documentation/translations/zh_CN/core-api/index.rst
> > > new file mode 100644
> > > index 000000000000..1d0e73b03858
> > > --- /dev/null
> > > +++ b/Documentation/translations/zh_CN/core-api/index.rst
> > > @@ -0,0 +1,126 @@
> > > +.. include:: ../disclaimer-zh_CN.rst
> > > +
> > > +:Original: :doc:`../../../core-api/irq/index`
> > > +:Translator: Yanteng Si <siyanteng@loongson.cn>
> > > +
> > > +.. _cn_core-api_index.rst:
> > > +
> > > +
> > > +======================
> > > +核心API文档
> > > +======================
> > > +
> > > +这是核心内核API手册的开端。 非常感谢为本手册转换(和编写!)的文档!
> >
> > 手册的首页
> OK!
> It's been confusing me for a long time,thank you very much!
> >
> > > +
> > > +核心公用程序
> >
> > 实用程序
> >
> > 规范用词: 实用程序
> > 英语名: utility program,utility
> > 台湾名: 公用程式,公用常式
> > 见载: 海峡两岸信息科学技术名词
> > 学科: 信息科学技术
> > 公布年度: 2008
> >
> OK!
> > > +==============
> > > +
> > > +本节有通用文件和 "核心中的核心" 文件。 第一部分是 docbook 时期遗留下
> >
> > 本节包含通用的和“核心中的核心”文档。
> >
> OK!
> > > +来的大量 kerneldoc 信息;有朝一日,当有人找到精力去做的时候,真的
> > > +应该把它拆分出来。
> >
> > 若有人之后有动力的话,应当把它们拆分出来。
> ”有朝一日“ conflicts with ”之后“
> del "之后”
> OK?
Sure.
> >
> > > +
> > > +Todolist:
> > > +
> > > + kernel-api
> > > + workqueue
> > > + printk-basics
> > > + printk-formats
> > > + symbol-namespaces
> > > +
> > > +数据结构和低级公用程序
> >
> > 实用程序
> >
> OK!
> > > +=======================================
> > > +
> > > +在整个内核中使用的函数库。
> >
> > missing 'functionality'
> >
> > 功能在整个内核中被使用的函数库。
> >
> function -> 函数(单个黑匣子)
> functionality -> 函数(累积的那种,很多个黑匣子)
> Library -> 库
OK, not matter.
> > > +
> > > +Todolist:
> > > +
> > > + kobject
> > > + kref
> > > + assoc_array
> > > + xarray
> > > + idr
> > > + circular-buffers
> > > + rbtree
> > > + generic-radix-tree
> > > + packing
> > > + bus-virt-phys-mapping
> > > + this_cpu_ops
> > > + timekeeping
> > > + errseq
> > > +
> > > +并发原语
> > > +======================
> > > +
> > > +Linux如何让一切同时发生。 详情请参阅
> > > +:doc:`/locking/index`
> >
> > I'm not sure if the path suitable for tanslation dir?
> I have tested it before and everything is fine!
Great!
Thanks!
Wu X.C.
> >
> > > +
> > > +.. toctree::
> > > + :maxdepth: 1
> > > +
> > > + irq/index
> > > +
> > > +Todolist:
> > > +
> > > + refcount-vs-atomic
> > > + local_ops
> > > + padata
> > > + ../RCU/index
> > > +
> > > +低级硬件管理
> > > +=============================
> > > +
> > > +缓存管理,CPU热插拔管理等。
> > > +
> > > +Todolist:
> > > +
> > > + cachetlb
> > > + cpu_hotplug
> > > + memory-hotplug
> > > + genericirq
> > > + protection-keys
> > > +
> > > +
> > > +内存管理
> > > +=================
> > > +
> > > +如何在内核中分配和使用内存。请注意,在
> > > +:doc:`/vm/index` 中有更多的内存管理文档。
> >
> > so as above
> I have tested it before and everything is fine!
> >
> > > +
> > > +Todolist:
> > > +
> > > + memory-allocation
> > > + unaligned-memory-access
> > > + dma-api
> > > + dma-api-howto
> > > + dma-attributes
> > > + dma-isa-lpc
> > > + mm-api
> > > + genalloc
> > > + pin_user_pages
> > > + boot-time-mm
> > > + gfp_mask-from-fs-io
> > > +
> > > +内核调试的接口
> > > +===============================
> > > +
> > > +Todolist:
> > > +
> > > + debug-objects
> > > + tracepoint
> > > + debugging-via-ohci1394
> > > +
> > > +其它一切文档
> >
> > maybe remove 一切 ?
> OK!
> >
> > > +===============
> > > +
> > > +不适合放在其它地方或尚未归类的文件;
> > > +
> > > +Todolist:
> > > +
> > > + librs
> > > +
> > > +.. only:: subproject and html
> > > +
> > > + Indices
> > > + =======
> > > +
> > > + * :ref:`genindex`
> > > --
> > > 2.27.0
> >
> Thanks
>
> Yanteng
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 09/11] docs/zh_CN: add openrisc/todo.rst translation
2021-04-06 16:50 ` Wu X.C.
@ 2021-04-07 6:30 ` yanteng si
0 siblings, 0 replies; 34+ messages in thread
From: yanteng si @ 2021-04-07 6:30 UTC (permalink / raw)
To: Wu X.C.
Cc: Yanteng Si, Jonathan Corbet, Alex Shi, Alex Shi, Huacai Chen,
Jiaxun Yang, Harry Wei, linux-doc, Puyu Wang
Wu X.C. <bobwxc@email.cn> 于2021年4月7日周三 上午12:50写道:
>
> On Tue, Apr 06, 2021 at 09:02:08PM +0800, Yanteng Si wrote:
> > This patch translates Documentation/openrisc/todo.rst into Chinese.
> >
> > Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
> > ---
> > .../translations/zh_CN/openrisc/todo.rst | 20 +++++++++++++++++++
> > 1 file changed, 20 insertions(+)
> > create mode 100644 Documentation/translations/zh_CN/openrisc/todo.rst
> >
> > diff --git a/Documentation/translations/zh_CN/openrisc/todo.rst b/Documentation/translations/zh_CN/openrisc/todo.rst
> > new file mode 100644
> > index 000000000000..0e5d1c9122f8
> > --- /dev/null
> > +++ b/Documentation/translations/zh_CN/openrisc/todo.rst
> > @@ -0,0 +1,20 @@
> > +.. include:: ../disclaimer-zh_CN.rst
> > +
> > +:Original: :doc:`../../../openrisc/todo`
> > +:Translator: Yanteng Si <siyanteng@loongson.cn>
> > +
> > +.. _cn_openrisc_todo.rst:
> > +
> > +===========
> > +代办事项
>
> ??
> 待办
OK!
>
> > +===========
> > +
> > +OpenRISC Linux的移植已经完全投入使用,并且从 2.6.35 开始就一直在上游同步。
> > +然而,还有一些剩余的项目需要在未来几个月内完成。 下面是一个已知的不如意的
>
> 不如意 -> 不尽完美 ? decide it by yourself
>
> > +项目列表,即我们的待办事项列表。
>
> missing "that are due for investigation shortly"
OK!
>
> > +
> > +- 实现其余的DMA API......dma_map_sg等。
>
> Chinses ellipsis U+2026
> ……
OK!
>
> > +
> > +- 完成重命名清理工作......代码中提到了or32,这是架构的一个老名字。 我们
>
> ……
OK!
>
> > + 已经确定的名字是or1k,这个改变正在以缓慢积累的方式进行。 目前,or32相当
> > + 于or1k。
> > --
> > 2.27.0
>
Thanks
Yanteng
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 02/11] docs/zh_CN: add core-api irq irq-affinity.rst translation
2021-04-07 4:59 ` Wu X.C.
@ 2021-04-07 6:59 ` yanteng si
2021-04-07 7:04 ` Wu X.C.
0 siblings, 1 reply; 34+ messages in thread
From: yanteng si @ 2021-04-07 6:59 UTC (permalink / raw)
To: Wu X.C.
Cc: Yanteng Si, Jonathan Corbet, Alex Shi, Alex Shi, Huacai Chen,
Jiaxun Yang, Harry Wei, linux-doc, Puyu Wang
Wu X.C. <bobwxc@email.cn> 于2021年4月7日周三 下午12:59写道:
>
> On Wed, Apr 07, 2021 at 10:08:38AM +0800, yanteng si wrote:
> > Wu X.C. <bobwxc@email.cn> 于2021年4月6日周二 下午11:35写道:
> > >
> > > On Tue, Apr 06, 2021 at 09:02:01PM +0800, Yanteng Si wrote:
> > > > This patch translates Documentation/core-api/irq/irq-affinity.rst into Chinese.
> > > >
> > > > Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
> > > > ---
> > > > .../zh_CN/core-api/irq/irq-affinity.rst | 73 +++++++++++++++++++
> > > > 1 file changed, 73 insertions(+)
> > > > create mode 100644 Documentation/translations/zh_CN/core-api/irq/irq-affinity.rst
> > > >
> > > > diff --git a/Documentation/translations/zh_CN/core-api/irq/irq-affinity.rst b/Documentation/translations/zh_CN/core-api/irq/irq-affinity.rst
> > > > new file mode 100644
> > > > index 000000000000..34aaf0d1ddc2
> > > > --- /dev/null
> > > > +++ b/Documentation/translations/zh_CN/core-api/irq/irq-affinity.rst
> > > > @@ -0,0 +1,73 @@
> > > > +.. include:: ../../disclaimer-zh_CN.rst
> > > > +
> > > > +:Original: :doc:`../../../../core-api/irq/irq-affinity`
> > > > +:Translator: Yanteng Si <siyanteng@loongson.cn>
> > > > +
> > > > +.. _cn_irq-affinity.rst:
> > > > +
> > > > +
> > > > +================
> > > > +SMP IRQ 亲和性
> > > > +================
> > > > +
> > > > +变更记录:
> > > > + - 作者:最初由Ingo Molnar <mingo@redhat.com>开始撰写
> > > > + - 后期更新维护: Max Krasnyansky <maxk@qualcomm.com>
> > > > +
> > > > +
> > > > +/proc/irq/IRQ#/smp_affinity和/proc/irq/IRQ#/smp_affinity_list指明了给定IRQ源
> > > > +允许哪些目标CPU使用。它是被允许的CPU的位掩码(smp_affinity)或cpu列表(smp_affinity_list)。
> > > > +它不允许关闭所有的CPU,如果一个IRQ控制器不支持IRQ亲和性,那么所有cpu的默认值将不会发生
> > >
> > > 关闭 -> 禁止?
> > emmmmm……
> > I looked up the English-Chinese dictionary:turn off -> 关闭,关掉电器、水龙头……
> > maybe:不允许关闭 -> 禁止关闭?
>
> 我是想着是不是要跟前面的“允许”目标CPU使用对应
> Both ok, choose the one you pefer
>
> Thanks!
>
emmmmm……
The previous translation was a bit obscure and I did some optimization:
/proc/irq/IRQ#/smp_affinity和/proc/irq/IRQ#/smp_affinity_list指定了哪些CPU能
够关联到一个给定的IRQ源,这两个文件包含了这些指定cpu的cpu位掩码(smp_affinity)和cpu列
表(smp_affinity_list)。它不允许关闭所有CPU, 同时如果IRQ控制器不支持中断请求亲和
(IRQ affinity),那么所有cpu的默认值将保持不变(既关联到所有CPU)。
> > >
> > > > +变化。
> > > > +
> > > > +/proc/irq/default_smp_affinity指明了适用于所有非激活IRQ的默认亲和性掩码。一旦IRQ被
> > > > +分配/激活,它的亲和位掩码将被设置为默认掩码。然后可以如上所述改变它。默认掩码是0xffffffffff。
> > >
> > > 0xffffffff
> > > eight f
> > >
> > OK!
> > > > +
> > > > +下面是一个先将IRQ44(eth1)限制在CPU0-3上,然后限制在CPU4-7上的例子(这是一个8CPU的SMP box)
> > > a empty line
> > OK!
> > > > +::
> > > > +
> > > > + [root@moon 44]# cd /proc/irq/44
> > > > + [root@moon 44]# cat smp_affinity
> > > > + ffffffff
> > > > +
> > > > + [root@moon 44]# echo 0f > smp_affinity
> > > > + [root@moon 44]# cat smp_affinity
> > > > + 0000000f
> > > > + [root@moon 44]# ping -f h
> > > > + PING hell (195.4.7.3): 56 data bytes
> > > > + ...
> > > > + --- hell ping statistics ---
> > > > + 6029 packets transmitted, 6027 packets received, 0% packet loss
> > > > + round-trip min/avg/max = 0.1/0.1/0.4 ms
> > > > + [root@moon 44]# cat /proc/interrupts | grep 'CPU\|44:'
> > > > + CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
> > > > + 44: 1068 1785 1785 1783 0 0 0 0 IO-APIC-level eth1
> > > > +
> > > > +从上面一行可以看出,IRQ44只传递给前四个处理器(0-3)。
> > > > +现在让我们把这个IRQ限制在CPU(4-7)。
> > > > +
> > > > +::
> > > > +
> > > > + [root@moon 44]# echo f0 > smp_affinity
> > > > + [root@moon 44]# cat smp_affinity
> > > > + 000000f0
> > > > + [root@moon 44]# ping -f h
> > > > + PING hell (195.4.7.3): 56 data bytes
> > > > + ..
> > > > + --- hell ping statistics ---
> > > > + 2779 packets transmitted, 2777 packets received, 0% packet loss
> > > > + round-trip min/avg/max = 0.1/0.5/585.4 ms
> > > > + [root@moon 44]# cat /proc/interrupts | 'CPU\|44:'
> > > > + CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
> > > > + 44: 1068 1785 1785 1783 1784 1069 1070 1069 IO-APIC-level eth1
> > > > +
> > > > +这次IRQ44只传递给最后四个处理器。
> > > > +即CPU0-3的计数器没有变化。
> > > > +
> > > > +下面是一个将相同的irq(44)限制在cpus 1024到1031的例子:。
> > > ^^^
> > > : -> ::
> > >
> > OK!
> > > > +
> > > > + [root@moon 44]# echo 1024-1031 > smp_affinity_list
> > > > + [root@moon 44]# cat smp_affinity_list
> > > > + 1024-1031
> > > > +
> > > > +需要注意的是,如果要用位掩码来做这件事,就需要32个为0的位掩码来追踪其相关的一个。
> > > > --
> > > > 2.27.0
> > >
> >
> > Thanks!
> >
> > Yanteng
>
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 03/11] docs/zh_CN: add core-api/irq/irq-domain.rst translation
2021-04-06 13:02 ` [PATCH 03/11] docs/zh_CN: add core-api/irq/irq-domain.rst translation Yanteng Si
@ 2021-04-07 7:01 ` Wu X.C.
2021-04-07 7:36 ` yanteng si
0 siblings, 1 reply; 34+ messages in thread
From: Wu X.C. @ 2021-04-07 7:01 UTC (permalink / raw)
To: Yanteng Si
Cc: Jonathan Corbet, Alex Shi, Alex Shi, Huacai Chen, Jiaxun Yang,
Harry Wei, linux-doc, realpuyuwang, siyanteng01
On Tue, Apr 06, 2021 at 09:02:02PM +0800, Yanteng Si wrote:
> This patch translates Documentation/core-api/irq/irq-domain.rst into Chinese.
>
> Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
> ---
> .../zh_CN/core-api/irq/irq-domain.rst | 228 ++++++++++++++++++
> 1 file changed, 228 insertions(+)
> create mode 100644 Documentation/translations/zh_CN/core-api/irq/irq-domain.rst
>
> diff --git a/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst b/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst
> new file mode 100644
> index 000000000000..03d3b7953e08
> --- /dev/null
> +++ b/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst
> @@ -0,0 +1,228 @@
> +.. include:: ../../disclaimer-zh_CN.rst
> +
> +:Original: :doc:`../../../../core-api/irq/irq-domain`
> +:Translator: Yanteng Si <siyanteng@loongson.cn>
> +
> +.. _cn_irq-domain.rst:
> +
> +
> +===============================================
> +irq_domain 中断号映射库。
remove the 。
> +===============================================
> +
> +目前Linux内核的设计使用了一个巨大的数字空间,每个独立的IRQ源都被分配了一个不
> +同的数字。
No empty line between the two sentences.
> +
> +当只有一个中断控制器时,这很简单,但在有多个中断控制器的系统中,内核必须确保每
> +个中断控制器都能得到非重复的Linux IRQ号(数字)分配。
> +
> +注册为唯一的irqchips的中断控制器编号呈现出上升的趋势:例如GPIO控制器等不同
> +种类的子驱动程序通过将其中断处理程序建模为irqchips,即实际上是级联中断控制器,
> +避免了重新实现与IRQ核心系统相同的回调机制。
> +
> +在这里,中断号与硬件中断号离散了所有种类的对应关系:而在过去,IRQ号可以选择,
> +使它们与硬件IRQ线进入根中断控制器(即实际向CPU发射中断线的组件)相匹配,现
> +在这个编号仅仅是一个数字。
> +
> +出于这个原因,我们需要一种机制将控制器本地中断号(称为硬件irq's)与Linux IRQ
Maybe this means:
(即硬件irq编号)
> +号分开。
> +
> +irq_alloc_desc*()和irq_free_desc*()API提供了对irq号的分配,但它们不提供
irq_free_desc*() API
^ need a space
> +任何对控制器本地IRQ(hwirq)号到Linux IRQ号空间的反向映射的支持。
> +
> +irq_domain 库在 irq_alloc_desc*() API 的基础上增加了 hwirq 和 IRQ 号码
> +之间的映射。 相比于中断控制器驱动开放编码自己的反向映射方案,我们更喜欢用
> +irq_domain来管理映射。
> +
> +irq_domain还实现了从抽象的irq_fwspec结构体到hwirq号的转换(到目前为止是
> +Device Tree和ACPI GSI),并且可以很容易地扩展以支持其它IRQ拓扑数据源。
> +
> +irq_domain的用法
> +================
> +
> +中断控制器驱动程序通过以下方式创建并注册一个irq_domain。调用
> +irq_domain_add_*() 或 irq_domain_create_*()函数之一(每个映射方法都有不
^
> +同的分配器函数,后面会详细介绍).函数成功后会返回一个指向irq_domain的指针。
^^
()。
> +调用者必须向分配器函数提供一个irq_domain_ops结构体。
> +
> +在大多数情况下,irq_domain在开始时是空的,没有任何hwirq和IRQ号之间的映射。
> +通过调用irq_create_mapping()将映射添加到irq_domain中,该函数接受
> +irq_domain和一个hwirq号作为参数。 如果hwirq的映射还不存在,那么它将分配
> +一个新的Linux irq_desc,将其与hwirq关联起来,并调用.map()回调,这样驱动
> +程序就可以执行任何必要的硬件设置。
> +
> +当接收到一个中断时,应该使用irq_find_mapping()函数从hwirq号中找到
> +Linux IRQ号。
> +
> +在调用irq_find_mapping()之前,至少要调用一次irq_create_mapping()函数,
> +以免描述符不能被分配。
> +
> +如果驱动程序有Linux的IRQ号或irq_data指针,并且需要知道相关的hwirq号(比
> +如在irq_chip回调中),那么可以直接从irq_data->hwirq中获得。
> +
> +irq_domain映射的类型
> +============================
> +
> +从hwirq到Linux irq的反向映射有几种机制,每种机制使用不同的分配函数。应该
> +使用哪种反向映射类型取决于用例。 下面介绍每一种反向映射类型:
> +
> +线性映射
> +----------
> +
> +::
> +
> + irq_domain_add_linear()
> + irq_domain_create_linear()
> +
> +线性反向映射维护了一个固定大小的表,该表以hwirq号为索引。 当一个hwirq被映射
> +时,会给hwirq分配一个irq_desc,并将irq号存储在表中。
> +
> +当最大的hwirq号固定且数量相对较少时,线性图是一个很好的选择(~<256)。 这种
当最大的hwirq号固定且数量相对较少时(~ < 256),线性图是一个很好的选择。
> +映射的优点是固定时间查找IRQ号,而且irq_descs只分配给在用的IRQ。缺点是该表
> +必须尽可能大的hwirq号。
> +
> +irq_domain_add_linear()和irq_domain_create_linear()在功能上是等价的,
> +除了第一个参数不同--前者接受一个Open Firmware特定的 `struct device_node` 而
> +后者接受一个更通用的抽象 `struct fwnode_handle` 。
Why using ` not ', " or ‘’, “” ?
The following part has the same problem, please do a search.
> +
> +大多数驱动应该用于线性映射
大多数驱动应该使用线性映射。
> +
> +树状映射
> +----------
> +
> +::
> +
> + irq_domain_add_tree()
> + irq_domain_create_tree()
> +
> +irq_domain维护着从hwirq号到Linux IRQ的radix的树状映射。 当一个hwirq被映射时,
> +一个irq_desc被分配,hwirq被用作radix树的查找键。
> +
> +如果hwirq号可以非常大,树状映射是一个很好的选择,因为它不需要分配一个和最大hwirq
> +号一样大的表。 缺点是,hwirq到IRQ号的查找取决于表中有多少条目。
> +
> +irq_domain_add_tree()和irq_domain_create_tree()在功能上是等价的,除了第一
> +个参数不同--前者接受一个Open Firmware特定的 `struct device_node` ,而后者接受
To be strictly, '--' two hyphens should be replaced with '——' two em dashes.
> +一个更通用的抽象 `struct fwnode_handle` 。
> +
> +很少有驱动应该需要这个映射。
> +
> +无映射
> +--------
> +
> +::
> +
> + irq_domain_add_nomap()
> +
> +当硬件中的hwirq号是可编程的时候,就可以采用无映射类型。 在这种情况下,最好将
> +Linux IRQ号编入硬件本身,这样就不需要映射了。 调用irq_create_direct_mapping()
> +会分配一个Linux IRQ号,并调用.map()回调,这样驱动就可以将Linux IRQ号编入硬件中。
> +
> +大多数驱动程序不能使用这个映射。
> +
> +传统映射类型
> +--------------
> +
> +::
> +
> + irq_domain_add_simple()
> + irq_domain_add_legacy()
> + irq_domain_add_legacy_isa()
> + irq_domain_create_simple()
> + irq_domain_create_legacy()
> +
> +传统映射是已经为 hwirqs 分配了一系列 irq_descs 的驱动程序的特殊情况。 当驱动程
> +序不能立即转换为使用线性映射时,就会使用它。 例如,许多嵌入式系统板卡支持文件使用
> +一组用于IRQ号的定义(#define),这些定义被传递给struct设备注册。 在这种情况下,
> +不能动态分配Linux IRQ号,应该使用传统映射。
> +
> +传统映射假设已经为控制器分配了一个连续的IRQ号范围,并且可以通过向hwirq号添加一
> +个固定的偏移来计算IRQ号,反之亦然。 缺点是需要中断控制器管理IRQ分配,并且需要为每
> +个hwirq分配一个irq_desc,即使它没有被使用。
> +
> +只有在必须支持固定的IRQ映射时,才应使用传统映射。 例如,ISA控制器将使用传统映射来
> +映射Linux IRQ 0-15,这样现有的ISA驱动程序就能得到正确的IRQ号。
> +
> +大多数使用传统映射的用户应该使用irq_domain_add_simple()或
> +irq_domain_create_simple(),只有在系统提供IRQ范围时才会使用传统域,否则将使用
> +线性域映射。这个调用的语义是这样的:如果指定了一个IRQ范围,那么描述符将被即时分配
> +给它,如果没有范围被分配,它将不会执行 irq_domain_add_linear() 或
> +irq_domain_create_linear(),这意味着 *no* irq 描述符将被分配。
> +
> +一个简单域的典型用例是,irqchip供应商同时支持动态和静态IRQ分配。
> +
> +为了避免最终出现使用线性域而没有描述符被分配的情况,确保使用简单域的驱动程序在任何
> +irq_find_mapping()之前调用irq_create_mapping()是非常重要的,因为后者实际上
> +将用于静态IRQ分配情况。
> +
> +irq_domain_add_simple()和irq_domain_create_simple()以及
> +irq_domain_add_legacy()和irq_domain_create_legacy()在功能上是等价的,只
> +是第一个参数不同--前者接受Open Firmware特定的 `struct device_node` ,而后者
> +接受一个更通用的抽象 `struct fwnode_handle` 。
> +
> +Hierarchy IRQ domain
Need translation.
Maybe: IRQ域层级结构
> +--------------------
> +
> +在某些架构上,可能有多个中断控制器参与将一个中断从设备传送到目标CPU。
> +让我们来看看x86平台上典型的中断传递路径吧
> +::
> +
> + Device --> IOAPIC -> Interrupt remapping Controller -> Local APIC -> CPU
> +
> +涉及到的中断控制器有三个:
> +
> +1) IOAPIC 控制器
> +2) 中断重映射控制器
> +3) Local APIC 控制器
> +
> +为了支持这样的硬件拓扑结构,使软件架构与硬件架构相匹配,为每个中断控制器建立一
> +个irq_domain数据结构,并将这些irq_domain组织成层次结构。
> +
> +在建立irq_domain层次结构时,靠近设备的irq_domain为子域,靠近CPU的
> +irq_domain为父域。所以在上面的例子中,将建立如下的层次结构。
> +::
> +
> + CPU Vector irq_domain (root irq_domain to manage CPU vectors)
> + ^
> + |
> + Interrupt Remapping irq_domain (manage irq_remapping entries)
> + ^
> + |
> + IOAPIC irq_domain (manage IOAPIC delivery entries/pins)
> +
> +使用irq_domain层次结构的主要接口有四个:
> +
> +1) irq_domain_alloc_irqs(): 分配IRQ描述符和与中断控制器相关的资源来传递这些中断。
> +2) irq_domain_free_irqs(): 释放IRQ描述符和与这些中断相关的中断控制器资源。
> +3) irq_domain_activate_irq(): 激活中断控制器硬件以传递中断。
> +4) irq_domain_deactivate_irq(): 停用中断控制器硬件,停止传递中断。
> +
> +为了支持irq_domain层次结构,需要做如下修改:
> +
> +1) 一个新的字段 `parent` 被添加到irq_domain结构中;它用于维护irq_domain的层次信息。
> +2) 一个新的字段 `parent_data` 被添加到irq_data结构中;它用于建立层次结构irq_data以
> + 匹配irq_domain层次结构s。irq_data用于存储irq_domain指针和硬件irq号。
> +3) 新的回调被添加到irq_domain_ops结构中,以支持层次结构的irq_domain操作。
> +
> +在支持分层irq_domain和分层irq_data准备就绪后,为每个中断控制器建立一个irq_domain结
> +构,并为每个与IRQ相关联的irq_domain分配一个irq_data结构。现在我们可以再进一步支持堆
> +栈式(层次结构)的irq_chip。也就是说,一个irq_chip与层次结构中的每个irq_data相关联。
> +一个子irq_chip可以自己或通过与它的父irq_chip合作来实现一个所需的操作。
> +
> +通过堆栈式的irq_chip,中断控制器驱动只需要处理自己管理的硬件,在需要的时候可以向其父
> +irq_chip请求服务。所以我们可以实现更简洁的软件架构。
> +
> +为了让中断控制器驱动程序支持irq_domain层次结构,它需要做到以下几点:
> +
> +1) 实现 irq_domain_ops.alloc 和 irq_domain_ops.free
> +2) 可选择地实现 irq_domain_ops.activate 和 irq_domain_ops.deactivate.
> +3) 可选择地实现一个irq_chip来管理中断控制器硬件。
> +4) 不需要实现irq_domain_ops.map和irq_domain_ops.unmap,它们在层次结构
> + irq_domain中是不用的。
> +
> +irq_domain层次结构绝不是x86特有的,大量用于支持其他架构,如ARM、ARM64等。
> +
> +调试功能
> +=========
> +
> +通过打开CONFIG_GENERIC_IRQ_DEBUGFS on.ping,IRQ子系统的大部分内部结构都在debugfs中暴露出来。
打开CONFIG_GENERIC_IRQ_DEBUGFS选项,可让IRQ子系统的大部分内部结构在debugfs中暴露出来。
> --
> 2.27.0
Thanks!
Wu X.C.
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 08/11] docs/zh_CN: add openrisc openrisc_port.rst translation
2021-04-06 13:02 ` [PATCH 08/11] docs/zh_CN: add openrisc openrisc_port.rst translation Yanteng Si
@ 2021-04-07 7:01 ` Wu X.C.
2021-04-07 7:45 ` yanteng si
0 siblings, 1 reply; 34+ messages in thread
From: Wu X.C. @ 2021-04-07 7:01 UTC (permalink / raw)
To: Yanteng Si
Cc: Jonathan Corbet, Alex Shi, Alex Shi, Huacai Chen, Jiaxun Yang,
Harry Wei, linux-doc, realpuyuwang, siyanteng01
On Tue, Apr 06, 2021 at 09:02:07PM +0800, Yanteng Si wrote:
> This patch tranlates Documentation/openrisc/openrisc_port.rst into Chinese
>
> Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
> ---
> .../zh_CN/openrisc/openrisc_port.rst | 124 ++++++++++++++++++
> 1 file changed, 124 insertions(+)
> create mode 100644 Documentation/translations/zh_CN/openrisc/openrisc_port.rst
>
> diff --git a/Documentation/translations/zh_CN/openrisc/openrisc_port.rst b/Documentation/translations/zh_CN/openrisc/openrisc_port.rst
> new file mode 100644
> index 000000000000..77754f2639cf
> --- /dev/null
> +++ b/Documentation/translations/zh_CN/openrisc/openrisc_port.rst
> @@ -0,0 +1,124 @@
> +.. include:: ../disclaimer-zh_CN.rst
> +
> +:Original: :doc:`../../../openrisc/openrisc_port`
> +:Translator: Yanteng Si <siyanteng@loongson.cn>
> +
> +.. _cn_openrisc_port:
> +
> +==============
> +OpenRISC Linux
> +==============
> +
> +这是Linux对OpenRISC类微处理器的移植;具体来说,最早移植目标是32位
> +OpenRISC 1000系列(或1k)。
> +
> +关于OpenRISC处理器和正在进行中的开发的信息:
> +
> + ======= =============================
> + 网站 https://openrisc.io
> + 邮箱 openrisc@lists.librecores.org
> + ======= =============================
> +
> +---------------------------------------------------------------------
> +
> +OpenRISC工具链和Linux的构建指南
> +===================================================
> +
> +为了构建和运行Linux for OpenRISC,你至少需要一个基本的工具链,或许
> +还需要架构模拟器。 这里概述了准备就位这些部分的步骤。
> +
> +1) 工具链
> +
> +工具链二进制文件可以从openrisc.io或我们的github发布页面获得。不同
> +工具链的构建指南可以在openrisc.io或Stafford的工具链构建和发布脚本
> +中找到。
> +
> + ========== =================================================
> + 二进制 https://github.com/openrisc/or1k-gcc/releases
> + 工具链 https://openrisc.io/software
> + 构建 https://github.com/stffrdhrn/or1k-toolchain-build
> + ========== =================================================
> +
> +2) 构建
> +
> +像往常一样构建Linux内核::
> +
> + make ARCH=openrisc CROSS_COMPILE="or1k-linux-" defconfig
> + make ARCH=openrisc CROSS_COMPILE="or1k-linux-"
> +
> +3) 在FPGA上运行(可选)
> +
> +OpenRISC社区通常使用FuseSoC来管理构建和编程SoC到FPGA中。 下面是用
> +OpenRISC SoC对De0 Nano开发板进行编程的一个例子。 在构建过程中,
> +FPGA RTL是从FuseSoC IP核库中下载的代码,并使用FPGA供应商工具构建。
> +二进制文件用openocd加载到电路板上。
> +
> +::
> +
> + git clone https://github.com/olofk/fusesoc
> + cd fusesoc
> + sudo pip install -e .
> +
> + fusesoc init
> + fusesoc build de0_nano
> + fusesoc pgm de0_nano
> +
> + openocd -f interface/altera-usb-blaster.cfg \
> + -f board/or1k_generic.cfg
> +
> + telnet localhost 4444
> + > init
> + > halt; load_image vmlinux ; reset
> +
> +4) 在模拟器上运行(可选)
> +
> +QEMU是一个处理器仿真器,我们推荐它来模拟OpenRISC平台。 请按照QEMU网
> +站上的OpenRISC说明,让Linux在QEMU上运行。 你可以自己构建QEMU,但你的
> +Linux发行版可能提供了支持OpenRISC的二进制包。
> +
> + ============= ======================================================
> + qemu openrisc https://wiki.qemu.org/Documentation/Platforms/OpenRISC
> + ============= ======================================================
> +
> +---------------------------------------------------------------------
> +
> +术语表
> +===========
> +i
remove the 'i'
> +在代码中,为了将范围限制在或多或少的特定处理器实现上,在符号上使用了以下约定。
Maybe this better:
代码中使用了以下符号约定以将范围限制在几个特定处理器实现上,:
> +
> +========= =======================================
> +openrisc: OpenRISC类型处理器
> +or1k: OpenRISC 1000系列处理器
> +or1200: OpenRISC 1200处理器
> +========= =======================================
> +
> +---------------------------------------------------------------------
> +
> +历史
> +========
In following part, please check the using of Tab and Space.
> +
> +18-11-2003 Matjaz Breskvar (phoenix@bsemi.com)
maybe YYYY-MM-DD is better for zh translation.
> + 将linux初步移植到OpenRISC或32架构。
> + 所有的核心功能都实现了,并且可以使用。
> +
> +08-12-2003 Matjaz Breskvar (phoenix@bsemi.com)
> + 彻底改变TLB失误处理。
> + 重写异常处理。
> + 在默认的initrd中实现了sash-3.6的所有功能。
> + 大幅改进的版本。
> +
> +10-04-2004 Matjaz Breskvar (phoenix@bsemi.com)
> + 大量的bug修复。
> + 支持以太网,http和telnet服务器功能。
> + 可以运行许多标准的linux应用程序。
> +
> +26-06-2004 Matjaz Breskvar (phoenix@bsemi.com)
> + 移植到2.6.x。
> +
> +30-11-2004 Matjaz Breskvar (phoenix@bsemi.com)
> + 大量的bug修复和增强功能。
> + 增加了opencores framebuffer驱动。
> +
> +09-10-2010 Jonas Bonn (jonas@southpole.se)
> + 重大重写,使其与上游的Linux 2.6.36看齐。
> --
> 2.27.0
Thanks!
Wu X.C.
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 02/11] docs/zh_CN: add core-api irq irq-affinity.rst translation
2021-04-07 6:59 ` yanteng si
@ 2021-04-07 7:04 ` Wu X.C.
0 siblings, 0 replies; 34+ messages in thread
From: Wu X.C. @ 2021-04-07 7:04 UTC (permalink / raw)
To: yanteng si
Cc: Yanteng Si, Jonathan Corbet, Alex Shi, Alex Shi, Huacai Chen,
Jiaxun Yang, Harry Wei, linux-doc, Puyu Wang
On Wed, Apr 07, 2021 at 02:59:22PM +0800, yanteng si wrote:
> Wu X.C. <bobwxc@email.cn> 于2021年4月7日周三 下午12:59写道:
> >
> > On Wed, Apr 07, 2021 at 10:08:38AM +0800, yanteng si wrote:
> > > Wu X.C. <bobwxc@email.cn> 于2021年4月6日周二 下午11:35写道:
> > > >
> > > > On Tue, Apr 06, 2021 at 09:02:01PM +0800, Yanteng Si wrote:
> > > > > This patch translates Documentation/core-api/irq/irq-affinity.rst into Chinese.
> > > > >
> > > > > Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
> > > > > ---
> > > > > .../zh_CN/core-api/irq/irq-affinity.rst | 73 +++++++++++++++++++
> > > > > 1 file changed, 73 insertions(+)
> > > > > create mode 100644 Documentation/translations/zh_CN/core-api/irq/irq-affinity.rst
> > > > >
> > > > > diff --git a/Documentation/translations/zh_CN/core-api/irq/irq-affinity.rst b/Documentation/translations/zh_CN/core-api/irq/irq-affinity.rst
> > > > > new file mode 100644
> > > > > index 000000000000..34aaf0d1ddc2
> > > > > --- /dev/null
> > > > > +++ b/Documentation/translations/zh_CN/core-api/irq/irq-affinity.rst
> > > > > @@ -0,0 +1,73 @@
> > > > > +.. include:: ../../disclaimer-zh_CN.rst
> > > > > +
> > > > > +:Original: :doc:`../../../../core-api/irq/irq-affinity`
> > > > > +:Translator: Yanteng Si <siyanteng@loongson.cn>
> > > > > +
> > > > > +.. _cn_irq-affinity.rst:
> > > > > +
> > > > > +
> > > > > +================
> > > > > +SMP IRQ 亲和性
> > > > > +================
> > > > > +
> > > > > +变更记录:
> > > > > + - 作者:最初由Ingo Molnar <mingo@redhat.com>开始撰写
> > > > > + - 后期更新维护: Max Krasnyansky <maxk@qualcomm.com>
> > > > > +
> > > > > +
> > > > > +/proc/irq/IRQ#/smp_affinity和/proc/irq/IRQ#/smp_affinity_list指明了给定IRQ源
> > > > > +允许哪些目标CPU使用。它是被允许的CPU的位掩码(smp_affinity)或cpu列表(smp_affinity_list)。
> > > > > +它不允许关闭所有的CPU,如果一个IRQ控制器不支持IRQ亲和性,那么所有cpu的默认值将不会发生
> > > >
> > > > 关闭 -> 禁止?
> > > emmmmm……
> > > I looked up the English-Chinese dictionary:turn off -> 关闭,关掉电器、水龙头……
> > > maybe:不允许关闭 -> 禁止关闭?
> >
> > 我是想着是不是要跟前面的“允许”目标CPU使用对应
> > Both ok, choose the one you pefer
> >
> > Thanks!
> >
> emmmmm……
> The previous translation was a bit obscure and I did some optimization:
>
> /proc/irq/IRQ#/smp_affinity和/proc/irq/IRQ#/smp_affinity_list指定了哪些CPU能
> 够关联到一个给定的IRQ源,这两个文件包含了这些指定cpu的cpu位掩码(smp_affinity)和cpu列
> 表(smp_affinity_list)。它不允许关闭所有CPU, 同时如果IRQ控制器不支持中断请求亲和
> (IRQ affinity),那么所有cpu的默认值将保持不变(既关联到所有CPU)。
Look good to me.
Wu X.C.
>
>
> > > >
> > > > > +变化。
> > > > > +
> > > > > +/proc/irq/default_smp_affinity指明了适用于所有非激活IRQ的默认亲和性掩码。一旦IRQ被
> > > > > +分配/激活,它的亲和位掩码将被设置为默认掩码。然后可以如上所述改变它。默认掩码是0xffffffffff。
> > > >
> > > > 0xffffffff
> > > > eight f
> > > >
> > > OK!
> > > > > +
> > > > > +下面是一个先将IRQ44(eth1)限制在CPU0-3上,然后限制在CPU4-7上的例子(这是一个8CPU的SMP box)
> > > > a empty line
> > > OK!
> > > > > +::
> > > > > +
> > > > > + [root@moon 44]# cd /proc/irq/44
> > > > > + [root@moon 44]# cat smp_affinity
> > > > > + ffffffff
> > > > > +
> > > > > + [root@moon 44]# echo 0f > smp_affinity
> > > > > + [root@moon 44]# cat smp_affinity
> > > > > + 0000000f
> > > > > + [root@moon 44]# ping -f h
> > > > > + PING hell (195.4.7.3): 56 data bytes
> > > > > + ...
> > > > > + --- hell ping statistics ---
> > > > > + 6029 packets transmitted, 6027 packets received, 0% packet loss
> > > > > + round-trip min/avg/max = 0.1/0.1/0.4 ms
> > > > > + [root@moon 44]# cat /proc/interrupts | grep 'CPU\|44:'
> > > > > + CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
> > > > > + 44: 1068 1785 1785 1783 0 0 0 0 IO-APIC-level eth1
> > > > > +
> > > > > +从上面一行可以看出,IRQ44只传递给前四个处理器(0-3)。
> > > > > +现在让我们把这个IRQ限制在CPU(4-7)。
> > > > > +
> > > > > +::
> > > > > +
> > > > > + [root@moon 44]# echo f0 > smp_affinity
> > > > > + [root@moon 44]# cat smp_affinity
> > > > > + 000000f0
> > > > > + [root@moon 44]# ping -f h
> > > > > + PING hell (195.4.7.3): 56 data bytes
> > > > > + ..
> > > > > + --- hell ping statistics ---
> > > > > + 2779 packets transmitted, 2777 packets received, 0% packet loss
> > > > > + round-trip min/avg/max = 0.1/0.5/585.4 ms
> > > > > + [root@moon 44]# cat /proc/interrupts | 'CPU\|44:'
> > > > > + CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
> > > > > + 44: 1068 1785 1785 1783 1784 1069 1070 1069 IO-APIC-level eth1
> > > > > +
> > > > > +这次IRQ44只传递给最后四个处理器。
> > > > > +即CPU0-3的计数器没有变化。
> > > > > +
> > > > > +下面是一个将相同的irq(44)限制在cpus 1024到1031的例子:。
> > > > ^^^
> > > > : -> ::
> > > >
> > > OK!
> > > > > +
> > > > > + [root@moon 44]# echo 1024-1031 > smp_affinity_list
> > > > > + [root@moon 44]# cat smp_affinity_list
> > > > > + 1024-1031
> > > > > +
> > > > > +需要注意的是,如果要用位掩码来做这件事,就需要32个为0的位掩码来追踪其相关的一个。
> > > > > --
> > > > > 2.27.0
> > > >
> > >
> > > Thanks!
> > >
> > > Yanteng
> >
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 04/11] docs/zh_CN: add core-api irq irqflags-tracing.rst translation
2021-04-07 5:08 ` Wu X.C.
@ 2021-04-07 7:13 ` yanteng si
0 siblings, 0 replies; 34+ messages in thread
From: yanteng si @ 2021-04-07 7:13 UTC (permalink / raw)
To: Wu X.C.
Cc: Yanteng Si, Jonathan Corbet, Alex Shi, Alex Shi, Huacai Chen,
Jiaxun Yang, Harry Wei, linux-doc, Puyu Wang
Wu X.C. <bobwxc@email.cn> 于2021年4月7日周三 下午1:08写道:
>
> On Wed, Apr 07, 2021 at 11:03:11AM +0800, yanteng si wrote:
> > Wu X.C. <bobwxc@email.cn> 于2021年4月7日周三 上午12:13写道:
> > >
> > > On Tue, Apr 06, 2021 at 09:02:03PM +0800, Yanteng Si wrote:
> > > > This patch translates Documentation/core-api/irq/irqflags-tracing.rst into Chinese.
> > > >
> > > > Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
> > > > ---
> > > > .../zh_CN/core-api/irq/irqflags-tracing.rst | 46 +++++++++++++++++++
> > > > 1 file changed, 46 insertions(+)
> > > > create mode 100644 Documentation/translations/zh_CN/core-api/irq/irqflags-tracing.rst
> > > >
> > > > diff --git a/Documentation/translations/zh_CN/core-api/irq/irqflags-tracing.rst b/Documentation/translations/zh_CN/core-api/irq/irqflags-tracing.rst
> > > > new file mode 100644
> > > > index 000000000000..2a3f577ac6b5
> > > > --- /dev/null
> > > > +++ b/Documentation/translations/zh_CN/core-api/irq/irqflags-tracing.rst
> > > > @@ -0,0 +1,45 @@
> > > > +.. include:: ../../disclaimer-zh_CN.rst
> > > > +
> > > > +:Original: :doc:`../../../../core-api/irq/irqflags-tracing`
> > > > +:Translator: Yanteng Si <siyanteng@loongson.cn>
> > > > +
> > > > +.. _cn_irqflags-tracing.rst:
> > > > +
> > > > +
> > > > +=======================
> > > > +IRQ-flags状态追踪
> > > > +=======================
> > > > +
> > > > +:Author: 最初由Ingo Molnar <mingo@redhat.com>开始撰写
> > > > +
> > > > +"irq-flags tracing" 功能可以 "追踪" hardirq和softirq的状态,它让感兴趣的子
> > >
> > > "irq-flags tracing"(中断标志追踪) ?
> > OK!
> > >
> > > > +系统有机会了解到到内核中发生的每一个
> > > > +hardirqs-off/hardirqs-on、softirqs-off/softirqs-on事件。
> > > > +
> > > > +CONFIG_TRACE_IRQFLAGS_SUPPORT是通用锁调试代码提供的CONFIG_PROVE_SPIN_LOCKING
> > > > +和CONFIG_PROVE_RW_LOCKING所需要的。否则将只有CONFIG_PROVE_MUTEX_LOCKING和
> > > > +CONFIG_PROVE_RWSEM_LOCKING在一个架构上被提供--这些都是不在IRQ上下文中使用的
> > > > +锁API。(rwsems的一个异常是可以解决的)
> > > > +
> > > > +架构对这一点的支持当然不属于 "琐碎 "的范畴,因为很多低级的汇编代码都要处理irq-flags
> > >
> > > quotation marks
> > > “琐碎”
> > 微不足道
> > OK?
>
> Oh, you misunderstood me :P
>
> That's just for the punctuation marks, please use “” , not ""
>
OK! ~>_<~
> > >
> > > > +的状态变化。但是一个架构可以以一种相当直接且无风险的方式启用irq-flags-tracing。
> > > > +
> > > > +架构如果想支持这个,需要先做一些代码组织上的改变:
> > > > +
> > > > +- 在他们的arch级Kconfig文件中添加并启用TRACE_IRQFLAGS_SUPPORT。
> > > > +
> > > > +然后还需要做一些功能上的改变来实现对irq-flags-tracing的支持:
> > > > +
> > > > +- 在低级入口代码中增加(构建条件)对trace_hardirqs_off()/trace_hardirqs_on()
> > >
> > > brackets
> > > (构建条件)
> > Origin: in lowlevel entry code add (build-conditional) calls to the
>
> This means to use 2-byte mode brackets, thus '()', not '()'
OK!
>
> > >
> > > > + 函数的调用。锁验证器会密切关注 "真实 "的irq-flags是否与 "虚拟 "的irq-flags
> > >
> > > “真实” “虚拟”
> > I tried to delve into it, but I found it wasn't easy, and I needed some time.
> > also ”irq-flags-tracing“
>
> That's also just for the punctuation marks, please use “” , not ""
>
OK!
> > >
> > > > + 状态相匹配,如果两者不匹配,则会大声抱怨(并关闭自己)。通常对于arch支持
> > >
> > > 大声抱怨 -> 发出警告 ?
> > > so as followed 抱怨
> > OK!
> > >
> > > > + irq-flags-track的大部分时间都是在这种状态下度过的:看看lockdep的抱怨,试着
> > >
> > > Maybe this is better
> > > 通常维护arch中irq-flags-track的大部分时间...
> > OK!
> > >
> > > > + 找出我们还没有涉及的汇编代码。修复并重复。一旦系统启动,并且在irq-flags跟踪功
> > >
> > > ...还没有搞定的汇编代码,修复并重复。
> > OK!
> > >
> > > irq-flags-tracing check this term's translation
> > >
> > > > + 能中没有出现lockdep抱怨的情况下,arch支持就完成了。
> > > > +
> > > > +- 如果该架构有不可屏蔽的中断,那么需要通过lockdep_off()/lockdep_on()将这些中
> > > > + 断从irq跟踪[和锁验证]机制中排除。
> > > > +
> > >
> > > wrong indent for next paragraph
> > OK!
> > >
> > > > + 一般来说,在一个架构中,不完整的irq-flags-tracing实现是没有风险的:lockdep
> > > > + 会检测到这一点,并将自己关闭。即锁验证器仍然可靠。应该不会因为irq-tracing的错
> > > > + 误而崩溃。(除非通过修改不该修改的条件来更改汇编或寄存器而破坏其他代码)
> > > > --
> > > > 2.27.0
> > >
>
Thank you very much!
Yanteng
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 03/11] docs/zh_CN: add core-api/irq/irq-domain.rst translation
2021-04-07 7:01 ` Wu X.C.
@ 2021-04-07 7:36 ` yanteng si
0 siblings, 0 replies; 34+ messages in thread
From: yanteng si @ 2021-04-07 7:36 UTC (permalink / raw)
To: Wu X.C.
Cc: Yanteng Si, Jonathan Corbet, Alex Shi, Alex Shi, Huacai Chen,
Jiaxun Yang, Harry Wei, linux-doc, Puyu Wang
Wu X.C. <bobwxc@email.cn> 于2021年4月7日周三 下午3:01写道:
>
> On Tue, Apr 06, 2021 at 09:02:02PM +0800, Yanteng Si wrote:
> > This patch translates Documentation/core-api/irq/irq-domain.rst into Chinese.
> >
> > Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
> > ---
> > .../zh_CN/core-api/irq/irq-domain.rst | 228 ++++++++++++++++++
> > 1 file changed, 228 insertions(+)
> > create mode 100644 Documentation/translations/zh_CN/core-api/irq/irq-domain.rst
> >
> > diff --git a/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst b/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst
> > new file mode 100644
> > index 000000000000..03d3b7953e08
> > --- /dev/null
> > +++ b/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst
> > @@ -0,0 +1,228 @@
> > +.. include:: ../../disclaimer-zh_CN.rst
> > +
> > +:Original: :doc:`../../../../core-api/irq/irq-domain`
> > +:Translator: Yanteng Si <siyanteng@loongson.cn>
> > +
> > +.. _cn_irq-domain.rst:
> > +
> > +
> > +===============================================
> > +irq_domain 中断号映射库。
>
> remove the 。
>
OK!
> > +===============================================
> > +
> > +目前Linux内核的设计使用了一个巨大的数字空间,每个独立的IRQ源都被分配了一个不
> > +同的数字。
> No empty line between the two sentences.
OK!
> > +
> > +当只有一个中断控制器时,这很简单,但在有多个中断控制器的系统中,内核必须确保每
> > +个中断控制器都能得到非重复的Linux IRQ号(数字)分配。
> > +
> > +注册为唯一的irqchips的中断控制器编号呈现出上升的趋势:例如GPIO控制器等不同
> > +种类的子驱动程序通过将其中断处理程序建模为irqchips,即实际上是级联中断控制器,
> > +避免了重新实现与IRQ核心系统相同的回调机制。
> > +
> > +在这里,中断号与硬件中断号离散了所有种类的对应关系:而在过去,IRQ号可以选择,
> > +使它们与硬件IRQ线进入根中断控制器(即实际向CPU发射中断线的组件)相匹配,现
> > +在这个编号仅仅是一个数字。
> > +
> > +出于这个原因,我们需要一种机制将控制器本地中断号(称为硬件irq's)与Linux IRQ
>
> Maybe this means:
> (即硬件irq编号)
OK!
>
> > +号分开。
> > +
> > +irq_alloc_desc*()和irq_free_desc*()API提供了对irq号的分配,但它们不提供
>
> irq_free_desc*() API
> ^ need a space
>
> > +任何对控制器本地IRQ(hwirq)号到Linux IRQ号空间的反向映射的支持。
> > +
> > +irq_domain 库在 irq_alloc_desc*() API 的基础上增加了 hwirq 和 IRQ 号码
> > +之间的映射。 相比于中断控制器驱动开放编码自己的反向映射方案,我们更喜欢用
> > +irq_domain来管理映射。
> > +
> > +irq_domain还实现了从抽象的irq_fwspec结构体到hwirq号的转换(到目前为止是
> > +Device Tree和ACPI GSI),并且可以很容易地扩展以支持其它IRQ拓扑数据源。
> > +
> > +irq_domain的用法
> > +================
> > +
> > +中断控制器驱动程序通过以下方式创建并注册一个irq_domain。调用
> > +irq_domain_add_*() 或 irq_domain_create_*()函数之一(每个映射方法都有不
> ^
> > +同的分配器函数,后面会详细介绍).函数成功后会返回一个指向irq_domain的指针。
> ^^
> ()。
OK!
>
> > +调用者必须向分配器函数提供一个irq_domain_ops结构体。
> > +
> > +在大多数情况下,irq_domain在开始时是空的,没有任何hwirq和IRQ号之间的映射。
> > +通过调用irq_create_mapping()将映射添加到irq_domain中,该函数接受
> > +irq_domain和一个hwirq号作为参数。 如果hwirq的映射还不存在,那么它将分配
> > +一个新的Linux irq_desc,将其与hwirq关联起来,并调用.map()回调,这样驱动
> > +程序就可以执行任何必要的硬件设置。
> > +
> > +当接收到一个中断时,应该使用irq_find_mapping()函数从hwirq号中找到
> > +Linux IRQ号。
> > +
> > +在调用irq_find_mapping()之前,至少要调用一次irq_create_mapping()函数,
> > +以免描述符不能被分配。
> > +
> > +如果驱动程序有Linux的IRQ号或irq_data指针,并且需要知道相关的hwirq号(比
> > +如在irq_chip回调中),那么可以直接从irq_data->hwirq中获得。
> > +
> > +irq_domain映射的类型
> > +============================
> > +
> > +从hwirq到Linux irq的反向映射有几种机制,每种机制使用不同的分配函数。应该
> > +使用哪种反向映射类型取决于用例。 下面介绍每一种反向映射类型:
> > +
> > +线性映射
> > +----------
> > +
> > +::
> > +
> > + irq_domain_add_linear()
> > + irq_domain_create_linear()
> > +
> > +线性反向映射维护了一个固定大小的表,该表以hwirq号为索引。 当一个hwirq被映射
> > +时,会给hwirq分配一个irq_desc,并将irq号存储在表中。
> > +
> > +当最大的hwirq号固定且数量相对较少时,线性图是一个很好的选择(~<256)。 这种
>
> 当最大的hwirq号固定且数量相对较少时(~ < 256),线性图是一个很好的选择。
>
> > +映射的优点是固定时间查找IRQ号,而且irq_descs只分配给在用的IRQ。缺点是该表
> > +必须尽可能大的hwirq号。
> > +
> > +irq_domain_add_linear()和irq_domain_create_linear()在功能上是等价的,
> > +除了第一个参数不同--前者接受一个Open Firmware特定的 `struct device_node` 而
> > +后者接受一个更通用的抽象 `struct fwnode_handle` 。
>
> Why using ` not ', " or ‘’, “” ?
> The following part has the same problem, please do a search.
>
OK!
> > +
> > +大多数驱动应该用于线性映射
>
> 大多数驱动应该使用线性映射。
>
OK!
> > +
> > +树状映射
> > +----------
> > +
> > +::
> > +
> > + irq_domain_add_tree()
> > + irq_domain_create_tree()
> > +
> > +irq_domain维护着从hwirq号到Linux IRQ的radix的树状映射。 当一个hwirq被映射时,
> > +一个irq_desc被分配,hwirq被用作radix树的查找键。
> > +
> > +如果hwirq号可以非常大,树状映射是一个很好的选择,因为它不需要分配一个和最大hwirq
> > +号一样大的表。 缺点是,hwirq到IRQ号的查找取决于表中有多少条目。
> > +
> > +irq_domain_add_tree()和irq_domain_create_tree()在功能上是等价的,除了第一
> > +个参数不同--前者接受一个Open Firmware特定的 `struct device_node` ,而后者接受
>
> To be strictly, '--' two hyphens should be replaced with '——' two em dashes.
OK!
>
> > +一个更通用的抽象 `struct fwnode_handle` 。
> > +
> > +很少有驱动应该需要这个映射。
> > +
> > +无映射
> > +--------
> > +
> > +::
> > +
> > + irq_domain_add_nomap()
> > +
> > +当硬件中的hwirq号是可编程的时候,就可以采用无映射类型。 在这种情况下,最好将
> > +Linux IRQ号编入硬件本身,这样就不需要映射了。 调用irq_create_direct_mapping()
> > +会分配一个Linux IRQ号,并调用.map()回调,这样驱动就可以将Linux IRQ号编入硬件中。
> > +
> > +大多数驱动程序不能使用这个映射。
> > +
> > +传统映射类型
> > +--------------
> > +
> > +::
> > +
> > + irq_domain_add_simple()
> > + irq_domain_add_legacy()
> > + irq_domain_add_legacy_isa()
> > + irq_domain_create_simple()
> > + irq_domain_create_legacy()
> > +
> > +传统映射是已经为 hwirqs 分配了一系列 irq_descs 的驱动程序的特殊情况。 当驱动程
> > +序不能立即转换为使用线性映射时,就会使用它。 例如,许多嵌入式系统板卡支持文件使用
> > +一组用于IRQ号的定义(#define),这些定义被传递给struct设备注册。 在这种情况下,
> > +不能动态分配Linux IRQ号,应该使用传统映射。
> > +
> > +传统映射假设已经为控制器分配了一个连续的IRQ号范围,并且可以通过向hwirq号添加一
> > +个固定的偏移来计算IRQ号,反之亦然。 缺点是需要中断控制器管理IRQ分配,并且需要为每
> > +个hwirq分配一个irq_desc,即使它没有被使用。
> > +
> > +只有在必须支持固定的IRQ映射时,才应使用传统映射。 例如,ISA控制器将使用传统映射来
> > +映射Linux IRQ 0-15,这样现有的ISA驱动程序就能得到正确的IRQ号。
> > +
> > +大多数使用传统映射的用户应该使用irq_domain_add_simple()或
> > +irq_domain_create_simple(),只有在系统提供IRQ范围时才会使用传统域,否则将使用
> > +线性域映射。这个调用的语义是这样的:如果指定了一个IRQ范围,那么描述符将被即时分配
> > +给它,如果没有范围被分配,它将不会执行 irq_domain_add_linear() 或
> > +irq_domain_create_linear(),这意味着 *no* irq 描述符将被分配。
> > +
> > +一个简单域的典型用例是,irqchip供应商同时支持动态和静态IRQ分配。
> > +
> > +为了避免最终出现使用线性域而没有描述符被分配的情况,确保使用简单域的驱动程序在任何
> > +irq_find_mapping()之前调用irq_create_mapping()是非常重要的,因为后者实际上
> > +将用于静态IRQ分配情况。
> > +
> > +irq_domain_add_simple()和irq_domain_create_simple()以及
> > +irq_domain_add_legacy()和irq_domain_create_legacy()在功能上是等价的,只
> > +是第一个参数不同--前者接受Open Firmware特定的 `struct device_node` ,而后者
> > +接受一个更通用的抽象 `struct fwnode_handle` 。
> > +
> > +Hierarchy IRQ domain
>
> Need translation.
> Maybe: IRQ域层级结构
OK!
>
> > +--------------------
> > +
> > +在某些架构上,可能有多个中断控制器参与将一个中断从设备传送到目标CPU。
> > +让我们来看看x86平台上典型的中断传递路径吧
> > +::
> > +
> > + Device --> IOAPIC -> Interrupt remapping Controller -> Local APIC -> CPU
> > +
> > +涉及到的中断控制器有三个:
> > +
> > +1) IOAPIC 控制器
> > +2) 中断重映射控制器
> > +3) Local APIC 控制器
> > +
> > +为了支持这样的硬件拓扑结构,使软件架构与硬件架构相匹配,为每个中断控制器建立一
> > +个irq_domain数据结构,并将这些irq_domain组织成层次结构。
> > +
> > +在建立irq_domain层次结构时,靠近设备的irq_domain为子域,靠近CPU的
> > +irq_domain为父域。所以在上面的例子中,将建立如下的层次结构。
> > +::
> > +
> > + CPU Vector irq_domain (root irq_domain to manage CPU vectors)
> > + ^
> > + |
> > + Interrupt Remapping irq_domain (manage irq_remapping entries)
> > + ^
> > + |
> > + IOAPIC irq_domain (manage IOAPIC delivery entries/pins)
> > +
> > +使用irq_domain层次结构的主要接口有四个:
> > +
> > +1) irq_domain_alloc_irqs(): 分配IRQ描述符和与中断控制器相关的资源来传递这些中断。
> > +2) irq_domain_free_irqs(): 释放IRQ描述符和与这些中断相关的中断控制器资源。
> > +3) irq_domain_activate_irq(): 激活中断控制器硬件以传递中断。
> > +4) irq_domain_deactivate_irq(): 停用中断控制器硬件,停止传递中断。
> > +
> > +为了支持irq_domain层次结构,需要做如下修改:
> > +
> > +1) 一个新的字段 `parent` 被添加到irq_domain结构中;它用于维护irq_domain的层次信息。
> > +2) 一个新的字段 `parent_data` 被添加到irq_data结构中;它用于建立层次结构irq_data以
> > + 匹配irq_domain层次结构s。irq_data用于存储irq_domain指针和硬件irq号。
> > +3) 新的回调被添加到irq_domain_ops结构中,以支持层次结构的irq_domain操作。
> > +
> > +在支持分层irq_domain和分层irq_data准备就绪后,为每个中断控制器建立一个irq_domain结
> > +构,并为每个与IRQ相关联的irq_domain分配一个irq_data结构。现在我们可以再进一步支持堆
> > +栈式(层次结构)的irq_chip。也就是说,一个irq_chip与层次结构中的每个irq_data相关联。
> > +一个子irq_chip可以自己或通过与它的父irq_chip合作来实现一个所需的操作。
> > +
> > +通过堆栈式的irq_chip,中断控制器驱动只需要处理自己管理的硬件,在需要的时候可以向其父
> > +irq_chip请求服务。所以我们可以实现更简洁的软件架构。
> > +
> > +为了让中断控制器驱动程序支持irq_domain层次结构,它需要做到以下几点:
> > +
> > +1) 实现 irq_domain_ops.alloc 和 irq_domain_ops.free
> > +2) 可选择地实现 irq_domain_ops.activate 和 irq_domain_ops.deactivate.
> > +3) 可选择地实现一个irq_chip来管理中断控制器硬件。
> > +4) 不需要实现irq_domain_ops.map和irq_domain_ops.unmap,它们在层次结构
> > + irq_domain中是不用的。
> > +
> > +irq_domain层次结构绝不是x86特有的,大量用于支持其他架构,如ARM、ARM64等。
> > +
> > +调试功能
> > +=========
> > +
> > +通过打开CONFIG_GENERIC_IRQ_DEBUGFS on.ping,IRQ子系统的大部分内部结构都在debugfs中暴露出来。
>
> 打开CONFIG_GENERIC_IRQ_DEBUGFS选项,可让IRQ子系统的大部分内部结构在debugfs中暴露出来。
>
OK!
> > --
> > 2.27.0
>
> Thanks!
>
> Wu X.C.
>
Thanks!
Yanteng
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 08/11] docs/zh_CN: add openrisc openrisc_port.rst translation
2021-04-07 7:01 ` Wu X.C.
@ 2021-04-07 7:45 ` yanteng si
0 siblings, 0 replies; 34+ messages in thread
From: yanteng si @ 2021-04-07 7:45 UTC (permalink / raw)
To: Wu X.C.
Cc: Yanteng Si, Jonathan Corbet, Alex Shi, Alex Shi, Huacai Chen,
Jiaxun Yang, Harry Wei, linux-doc, Puyu Wang
Wu X.C. <bobwxc@email.cn> 于2021年4月7日周三 下午3:01写道:
>
> On Tue, Apr 06, 2021 at 09:02:07PM +0800, Yanteng Si wrote:
> > This patch tranlates Documentation/openrisc/openrisc_port.rst into Chinese
> >
> > Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
> > ---
> > .../zh_CN/openrisc/openrisc_port.rst | 124 ++++++++++++++++++
> > 1 file changed, 124 insertions(+)
> > create mode 100644 Documentation/translations/zh_CN/openrisc/openrisc_port.rst
> >
> > diff --git a/Documentation/translations/zh_CN/openrisc/openrisc_port.rst b/Documentation/translations/zh_CN/openrisc/openrisc_port.rst
> > new file mode 100644
> > index 000000000000..77754f2639cf
> > --- /dev/null
> > +++ b/Documentation/translations/zh_CN/openrisc/openrisc_port.rst
> > @@ -0,0 +1,124 @@
> > +.. include:: ../disclaimer-zh_CN.rst
> > +
> > +:Original: :doc:`../../../openrisc/openrisc_port`
> > +:Translator: Yanteng Si <siyanteng@loongson.cn>
> > +
> > +.. _cn_openrisc_port:
> > +
> > +==============
> > +OpenRISC Linux
> > +==============
> > +
> > +这是Linux对OpenRISC类微处理器的移植;具体来说,最早移植目标是32位
> > +OpenRISC 1000系列(或1k)。
> > +
> > +关于OpenRISC处理器和正在进行中的开发的信息:
> > +
> > + ======= =============================
> > + 网站 https://openrisc.io
> > + 邮箱 openrisc@lists.librecores.org
> > + ======= =============================
> > +
> > +---------------------------------------------------------------------
> > +
> > +OpenRISC工具链和Linux的构建指南
> > +===================================================
> > +
> > +为了构建和运行Linux for OpenRISC,你至少需要一个基本的工具链,或许
> > +还需要架构模拟器。 这里概述了准备就位这些部分的步骤。
> > +
> > +1) 工具链
> > +
> > +工具链二进制文件可以从openrisc.io或我们的github发布页面获得。不同
> > +工具链的构建指南可以在openrisc.io或Stafford的工具链构建和发布脚本
> > +中找到。
> > +
> > + ========== =================================================
> > + 二进制 https://github.com/openrisc/or1k-gcc/releases
> > + 工具链 https://openrisc.io/software
> > + 构建 https://github.com/stffrdhrn/or1k-toolchain-build
> > + ========== =================================================
> > +
> > +2) 构建
> > +
> > +像往常一样构建Linux内核::
> > +
> > + make ARCH=openrisc CROSS_COMPILE="or1k-linux-" defconfig
> > + make ARCH=openrisc CROSS_COMPILE="or1k-linux-"
> > +
> > +3) 在FPGA上运行(可选)
> > +
> > +OpenRISC社区通常使用FuseSoC来管理构建和编程SoC到FPGA中。 下面是用
> > +OpenRISC SoC对De0 Nano开发板进行编程的一个例子。 在构建过程中,
> > +FPGA RTL是从FuseSoC IP核库中下载的代码,并使用FPGA供应商工具构建。
> > +二进制文件用openocd加载到电路板上。
> > +
> > +::
> > +
> > + git clone https://github.com/olofk/fusesoc
> > + cd fusesoc
> > + sudo pip install -e .
> > +
> > + fusesoc init
> > + fusesoc build de0_nano
> > + fusesoc pgm de0_nano
> > +
> > + openocd -f interface/altera-usb-blaster.cfg \
> > + -f board/or1k_generic.cfg
> > +
> > + telnet localhost 4444
> > + > init
> > + > halt; load_image vmlinux ; reset
> > +
> > +4) 在模拟器上运行(可选)
> > +
> > +QEMU是一个处理器仿真器,我们推荐它来模拟OpenRISC平台。 请按照QEMU网
> > +站上的OpenRISC说明,让Linux在QEMU上运行。 你可以自己构建QEMU,但你的
> > +Linux发行版可能提供了支持OpenRISC的二进制包。
> > +
> > + ============= ======================================================
> > + qemu openrisc https://wiki.qemu.org/Documentation/Platforms/OpenRISC
> > + ============= ======================================================
> > +
> > +---------------------------------------------------------------------
> > +
> > +术语表
> > +===========
> > +i
>
> remove the 'i'
OK!
>
> > +在代码中,为了将范围限制在或多或少的特定处理器实现上,在符号上使用了以下约定。
>
> Maybe this better:
>
> 代码中使用了以下符号约定以将范围限制在几个特定处理器实现上,:
OK!
>
> > +
> > +========= =======================================
> > +openrisc: OpenRISC类型处理器
> > +or1k: OpenRISC 1000系列处理器
> > +or1200: OpenRISC 1200处理器
> > +========= =======================================
> > +
> > +---------------------------------------------------------------------
> > +
> > +历史
> > +========
>
> In following part, please check the using of Tab and Space.
>
OK!
> > +
> > +18-11-2003 Matjaz Breskvar (phoenix@bsemi.com)
>
> maybe YYYY-MM-DD is better for zh translation.
>
OK!
> > + 将linux初步移植到OpenRISC或32架构。
> > + 所有的核心功能都实现了,并且可以使用。
> > +
> > +08-12-2003 Matjaz Breskvar (phoenix@bsemi.com)
> > + 彻底改变TLB失误处理。
> > + 重写异常处理。
> > + 在默认的initrd中实现了sash-3.6的所有功能。
> > + 大幅改进的版本。
> > +
> > +10-04-2004 Matjaz Breskvar (phoenix@bsemi.com)
> > + 大量的bug修复。
> > + 支持以太网,http和telnet服务器功能。
> > + 可以运行许多标准的linux应用程序。
> > +
> > +26-06-2004 Matjaz Breskvar (phoenix@bsemi.com)
> > + 移植到2.6.x。
> > +
> > +30-11-2004 Matjaz Breskvar (phoenix@bsemi.com)
> > + 大量的bug修复和增强功能。
> > + 增加了opencores framebuffer驱动。
> > +
> > +09-10-2010 Jonas Bonn (jonas@southpole.se)
> > + 重大重写,使其与上游的Linux 2.6.36看齐。
> > --
> > 2.27.0
>
> Thanks!
>
> Wu X.C.
>
Thanks!
Yanteng
^ permalink raw reply [flat|nested] 34+ messages in thread
end of thread, other threads:[~2021-04-07 7:46 UTC | newest]
Thread overview: 34+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-06 13:01 [PATCH 00/11] docs/zh_CN: add core api and openrisc translation Yanteng Si
2021-04-06 13:02 ` [PATCH 01/11] docs/zh_CN: add core-api irq concepts.rst translation Yanteng Si
2021-04-06 15:12 ` Wu X.C.
2021-04-07 1:20 ` yanteng si
2021-04-06 13:02 ` [PATCH 02/11] docs/zh_CN: add core-api irq irq-affinity.rst translation Yanteng Si
2021-04-06 15:35 ` Wu X.C.
2021-04-07 2:08 ` yanteng si
2021-04-07 4:59 ` Wu X.C.
2021-04-07 6:59 ` yanteng si
2021-04-07 7:04 ` Wu X.C.
2021-04-06 13:02 ` [PATCH 03/11] docs/zh_CN: add core-api/irq/irq-domain.rst translation Yanteng Si
2021-04-07 7:01 ` Wu X.C.
2021-04-07 7:36 ` yanteng si
2021-04-06 13:02 ` [PATCH 04/11] docs/zh_CN: add core-api irq irqflags-tracing.rst translation Yanteng Si
2021-04-06 16:13 ` Wu X.C.
2021-04-07 3:03 ` yanteng si
2021-04-07 5:08 ` Wu X.C.
2021-04-07 7:13 ` yanteng si
2021-04-06 13:02 ` [PATCH 05/11] docs/zh_CN: add core-api irq index.rst translation Yanteng Si
2021-04-06 15:21 ` Wu X.C.
2021-04-06 13:02 ` [PATCH 06/11] docs/zh_CN: add core-api/index.rst translation Yanteng Si
2021-04-06 16:39 ` Wu X.C.
2021-04-07 3:30 ` yanteng si
2021-04-07 5:13 ` Wu X.C.
2021-04-06 13:02 ` [PATCH 07/11] docs/zh_CN: add translation to zh_CN index Yanteng Si
2021-04-06 16:40 ` Wu X.C.
2021-04-06 13:02 ` [PATCH 08/11] docs/zh_CN: add openrisc openrisc_port.rst translation Yanteng Si
2021-04-07 7:01 ` Wu X.C.
2021-04-07 7:45 ` yanteng si
2021-04-06 13:02 ` [PATCH 09/11] docs/zh_CN: add openrisc/todo.rst translation Yanteng Si
2021-04-06 16:50 ` Wu X.C.
2021-04-07 6:30 ` yanteng si
2021-04-06 13:02 ` [PATCH 10/11] docs/zh_CN: add openrisc/index.rst translation Yanteng Si
2021-04-06 16:56 ` Wu X.C.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.