diff options
Diffstat (limited to 'Documentation/zh_CN')
-rw-r--r-- | Documentation/zh_CN/HOWTO | 2 | ||||
-rw-r--r-- | Documentation/zh_CN/io_ordering.txt | 67 | ||||
-rw-r--r-- | Documentation/zh_CN/magic-number.txt | 12 | ||||
-rw-r--r-- | Documentation/zh_CN/stable_kernel_rules.txt | 2 |
4 files changed, 69 insertions, 14 deletions
diff --git a/Documentation/zh_CN/HOWTO b/Documentation/zh_CN/HOWTO index 6c914aa87e71..54ea24ff63c7 100644 --- a/Documentation/zh_CN/HOWTO +++ b/Documentation/zh_CN/HOWTO | |||
@@ -237,7 +237,7 @@ kernel.org网站的pub/linux/kernel/v2.6/目录下找到它。它的开发遵循 | |||
237 | 如果没有2.6.x.y版本内核存在,那么最新的2.6.x版本内核就相当于是当前的稳定 | 237 | 如果没有2.6.x.y版本内核存在,那么最新的2.6.x版本内核就相当于是当前的稳定 |
238 | 版内核。 | 238 | 版内核。 |
239 | 239 | ||
240 | 2.6.x.y版本由“稳定版”小组(邮件地址<stable@kernel.org>)维护,一般隔周发 | 240 | 2.6.x.y版本由“稳定版”小组(邮件地址<stable@vger.kernel.org>)维护,一般隔周发 |
241 | 布新版本。 | 241 | 布新版本。 |
242 | 242 | ||
243 | 内核源码中的Documentation/stable_kernel_rules.txt文件具体描述了可被稳定 | 243 | 内核源码中的Documentation/stable_kernel_rules.txt文件具体描述了可被稳定 |
diff --git a/Documentation/zh_CN/io_ordering.txt b/Documentation/zh_CN/io_ordering.txt new file mode 100644 index 000000000000..e592daf4e014 --- /dev/null +++ b/Documentation/zh_CN/io_ordering.txt | |||
@@ -0,0 +1,67 @@ | |||
1 | Chinese translated version of Documentation/io_orderings.txt | ||
2 | |||
3 | If you have any comment or update to the content, please contact the | ||
4 | original document maintainer directly. However, if you have a problem | ||
5 | communicating in English you can also ask the Chinese maintainer for | ||
6 | help. Contact the Chinese maintainer if this translation is outdated | ||
7 | or if there is a problem with the translation. | ||
8 | |||
9 | Chinese maintainer: Lin Yongting <linyongting@gmail.com> | ||
10 | --------------------------------------------------------------------- | ||
11 | Documentation/io_ordering.txt 的中文翻译 | ||
12 | |||
13 | 如果想评论或更新本文的内容,请直接联系原文档的维护者。如果你使用英文 | ||
14 | 交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻 | ||
15 | 译存在问题,请联系中文版维护者。 | ||
16 | |||
17 | 中文版维护者: 林永听 Lin Yongting <linyongting@gmail.com> | ||
18 | 中文版翻译者: 林永听 Lin Yongting <linyongting@gmail.com> | ||
19 | 中文版校译者: 林永听 Lin Yongting <linyongting@gmail.com> | ||
20 | |||
21 | |||
22 | 以下为正文 | ||
23 | --------------------------------------------------------------------- | ||
24 | |||
25 | 在某些平台上,所谓的内存映射I/O是弱顺序。在这些平台上,驱动开发者有责任 | ||
26 | 保证I/O内存映射地址的写操作按程序图意的顺序达到设备。通常读取一个“安全” | ||
27 | 设备寄存器或桥寄存器,触发IO芯片清刷未处理的写操作到达设备后才处理读操作, | ||
28 | 而达到保证目的。驱动程序通常在spinlock保护的临界区退出之前使用这种技术。 | ||
29 | 这也可以保证后面的写操作只在前面的写操作之后到达设备(这非常类似于内存 | ||
30 | 屏障操作,mb(),不过仅适用于I/O)。 | ||
31 | |||
32 | 假设一个设备驱动程的具体例子: | ||
33 | |||
34 | ... | ||
35 | CPU A: spin_lock_irqsave(&dev_lock, flags) | ||
36 | CPU A: val = readl(my_status); | ||
37 | CPU A: ... | ||
38 | CPU A: writel(newval, ring_ptr); | ||
39 | CPU A: spin_unlock_irqrestore(&dev_lock, flags) | ||
40 | ... | ||
41 | CPU B: spin_lock_irqsave(&dev_lock, flags) | ||
42 | CPU B: val = readl(my_status); | ||
43 | CPU B: ... | ||
44 | CPU B: writel(newval2, ring_ptr); | ||
45 | CPU B: spin_unlock_irqrestore(&dev_lock, flags) | ||
46 | ... | ||
47 | |||
48 | 上述例子中,设备可能会先接收到newval2的值,然后接收到newval的值,问题就 | ||
49 | 发生了。不过很容易通过下面方法来修复: | ||
50 | |||
51 | ... | ||
52 | CPU A: spin_lock_irqsave(&dev_lock, flags) | ||
53 | CPU A: val = readl(my_status); | ||
54 | CPU A: ... | ||
55 | CPU A: writel(newval, ring_ptr); | ||
56 | CPU A: (void)readl(safe_register); /* 配置寄存器?*/ | ||
57 | CPU A: spin_unlock_irqrestore(&dev_lock, flags) | ||
58 | ... | ||
59 | CPU B: spin_lock_irqsave(&dev_lock, flags) | ||
60 | CPU B: val = readl(my_status); | ||
61 | CPU B: ... | ||
62 | CPU B: writel(newval2, ring_ptr); | ||
63 | CPU B: (void)readl(safe_register); /* 配置寄存器?*/ | ||
64 | CPU B: spin_unlock_irqrestore(&dev_lock, flags) | ||
65 | |||
66 | 在解决方案中,读取safe_register寄存器,触发IO芯片清刷未处理的写操作, | ||
67 | 再处理后面的读操作,防止引发数据不一致问题。 | ||
diff --git a/Documentation/zh_CN/magic-number.txt b/Documentation/zh_CN/magic-number.txt index 2ebe539f5450..dfb72a5c63e9 100644 --- a/Documentation/zh_CN/magic-number.txt +++ b/Documentation/zh_CN/magic-number.txt | |||
@@ -63,8 +63,6 @@ struct tty_ldisc { | |||
63 | PG_MAGIC 'P' pg_{read,write}_hdr include/linux/pg.h | 63 | PG_MAGIC 'P' pg_{read,write}_hdr include/linux/pg.h |
64 | CMAGIC 0x0111 user include/linux/a.out.h | 64 | CMAGIC 0x0111 user include/linux/a.out.h |
65 | MKISS_DRIVER_MAGIC 0x04bf mkiss_channel drivers/net/mkiss.h | 65 | MKISS_DRIVER_MAGIC 0x04bf mkiss_channel drivers/net/mkiss.h |
66 | RISCOM8_MAGIC 0x0907 riscom_port drivers/char/riscom8.h | ||
67 | SPECIALIX_MAGIC 0x0907 specialix_port drivers/char/specialix_io8.h | ||
68 | HDLC_MAGIC 0x239e n_hdlc drivers/char/n_hdlc.c | 66 | HDLC_MAGIC 0x239e n_hdlc drivers/char/n_hdlc.c |
69 | APM_BIOS_MAGIC 0x4101 apm_user arch/x86/kernel/apm_32.c | 67 | APM_BIOS_MAGIC 0x4101 apm_user arch/x86/kernel/apm_32.c |
70 | CYCLADES_MAGIC 0x4359 cyclades_port include/linux/cyclades.h | 68 | CYCLADES_MAGIC 0x4359 cyclades_port include/linux/cyclades.h |
@@ -82,7 +80,6 @@ STRIP_MAGIC 0x5303 strip drivers/net/strip.c | |||
82 | X25_ASY_MAGIC 0x5303 x25_asy drivers/net/x25_asy.h | 80 | X25_ASY_MAGIC 0x5303 x25_asy drivers/net/x25_asy.h |
83 | SIXPACK_MAGIC 0x5304 sixpack drivers/net/hamradio/6pack.h | 81 | SIXPACK_MAGIC 0x5304 sixpack drivers/net/hamradio/6pack.h |
84 | AX25_MAGIC 0x5316 ax_disp drivers/net/mkiss.h | 82 | AX25_MAGIC 0x5316 ax_disp drivers/net/mkiss.h |
85 | ESP_MAGIC 0x53ee esp_struct drivers/char/esp.h | ||
86 | TTY_MAGIC 0x5401 tty_struct include/linux/tty.h | 83 | TTY_MAGIC 0x5401 tty_struct include/linux/tty.h |
87 | MGSL_MAGIC 0x5401 mgsl_info drivers/char/synclink.c | 84 | MGSL_MAGIC 0x5401 mgsl_info drivers/char/synclink.c |
88 | TTY_DRIVER_MAGIC 0x5402 tty_driver include/linux/tty_driver.h | 85 | TTY_DRIVER_MAGIC 0x5402 tty_driver include/linux/tty_driver.h |
@@ -94,13 +91,10 @@ USB_BLUETOOTH_MAGIC 0x6d02 usb_bluetooth drivers/usb/class/bluetty.c | |||
94 | RFCOMM_TTY_MAGIC 0x6d02 net/bluetooth/rfcomm/tty.c | 91 | RFCOMM_TTY_MAGIC 0x6d02 net/bluetooth/rfcomm/tty.c |
95 | USB_SERIAL_PORT_MAGIC 0x7301 usb_serial_port drivers/usb/serial/usb-serial.h | 92 | USB_SERIAL_PORT_MAGIC 0x7301 usb_serial_port drivers/usb/serial/usb-serial.h |
96 | CG_MAGIC 0x00090255 ufs_cylinder_group include/linux/ufs_fs.h | 93 | CG_MAGIC 0x00090255 ufs_cylinder_group include/linux/ufs_fs.h |
97 | A2232_MAGIC 0x000a2232 gs_port drivers/char/ser_a2232.h | ||
98 | RPORT_MAGIC 0x00525001 r_port drivers/char/rocket_int.h | 94 | RPORT_MAGIC 0x00525001 r_port drivers/char/rocket_int.h |
99 | LSEMAGIC 0x05091998 lse drivers/fc4/fc.c | 95 | LSEMAGIC 0x05091998 lse drivers/fc4/fc.c |
100 | GDTIOCTL_MAGIC 0x06030f07 gdth_iowr_str drivers/scsi/gdth_ioctl.h | 96 | GDTIOCTL_MAGIC 0x06030f07 gdth_iowr_str drivers/scsi/gdth_ioctl.h |
101 | RIEBL_MAGIC 0x09051990 drivers/net/atarilance.c | 97 | RIEBL_MAGIC 0x09051990 drivers/net/atarilance.c |
102 | RIO_MAGIC 0x12345678 gs_port drivers/char/rio/rio_linux.c | ||
103 | SX_MAGIC 0x12345678 gs_port drivers/char/sx.h | ||
104 | NBD_REQUEST_MAGIC 0x12560953 nbd_request include/linux/nbd.h | 98 | NBD_REQUEST_MAGIC 0x12560953 nbd_request include/linux/nbd.h |
105 | RED_MAGIC2 0x170fc2a5 (any) mm/slab.c | 99 | RED_MAGIC2 0x170fc2a5 (any) mm/slab.c |
106 | BAYCOM_MAGIC 0x19730510 baycom_state drivers/net/baycom_epp.c | 100 | BAYCOM_MAGIC 0x19730510 baycom_state drivers/net/baycom_epp.c |
@@ -116,7 +110,6 @@ ISDN_ASYNC_MAGIC 0x49344C01 modem_info include/linux/isdn.h | |||
116 | CTC_ASYNC_MAGIC 0x49344C01 ctc_tty_info drivers/s390/net/ctctty.c | 110 | CTC_ASYNC_MAGIC 0x49344C01 ctc_tty_info drivers/s390/net/ctctty.c |
117 | ISDN_NET_MAGIC 0x49344C02 isdn_net_local_s drivers/isdn/i4l/isdn_net_lib.h | 111 | ISDN_NET_MAGIC 0x49344C02 isdn_net_local_s drivers/isdn/i4l/isdn_net_lib.h |
118 | SAVEKMSG_MAGIC2 0x4B4D5347 savekmsg arch/*/amiga/config.c | 112 | SAVEKMSG_MAGIC2 0x4B4D5347 savekmsg arch/*/amiga/config.c |
119 | STLI_BOARDMAGIC 0x4bc6c825 stlibrd include/linux/istallion.h | ||
120 | CS_STATE_MAGIC 0x4c4f4749 cs_state sound/oss/cs46xx.c | 113 | CS_STATE_MAGIC 0x4c4f4749 cs_state sound/oss/cs46xx.c |
121 | SLAB_C_MAGIC 0x4f17a36d kmem_cache mm/slab.c | 114 | SLAB_C_MAGIC 0x4f17a36d kmem_cache mm/slab.c |
122 | COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c | 115 | COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c |
@@ -127,10 +120,8 @@ SCC_MAGIC 0x52696368 gs_port drivers/char/scc.h | |||
127 | SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c | 120 | SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c |
128 | GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h | 121 | GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h |
129 | RED_MAGIC1 0x5a2cf071 (any) mm/slab.c | 122 | RED_MAGIC1 0x5a2cf071 (any) mm/slab.c |
130 | STL_PORTMAGIC 0x5a7182c9 stlport include/linux/stallion.h | ||
131 | EEPROM_MAGIC_VALUE 0x5ab478d2 lanai_dev drivers/atm/lanai.c | 123 | EEPROM_MAGIC_VALUE 0x5ab478d2 lanai_dev drivers/atm/lanai.c |
132 | HDLCDRV_MAGIC 0x5ac6e778 hdlcdrv_state include/linux/hdlcdrv.h | 124 | HDLCDRV_MAGIC 0x5ac6e778 hdlcdrv_state include/linux/hdlcdrv.h |
133 | EPCA_MAGIC 0x5c6df104 channel include/linux/epca.h | ||
134 | PCXX_MAGIC 0x5c6df104 channel drivers/char/pcxx.h | 125 | PCXX_MAGIC 0x5c6df104 channel drivers/char/pcxx.h |
135 | KV_MAGIC 0x5f4b565f kernel_vars_s arch/mips/include/asm/sn/klkernvars.h | 126 | KV_MAGIC 0x5f4b565f kernel_vars_s arch/mips/include/asm/sn/klkernvars.h |
136 | I810_STATE_MAGIC 0x63657373 i810_state sound/oss/i810_audio.c | 127 | I810_STATE_MAGIC 0x63657373 i810_state sound/oss/i810_audio.c |
@@ -142,17 +133,14 @@ SLOT_MAGIC 0x67267322 slot drivers/hotplug/acpiphp.h | |||
142 | LO_MAGIC 0x68797548 nbd_device include/linux/nbd.h | 133 | LO_MAGIC 0x68797548 nbd_device include/linux/nbd.h |
143 | OPROFILE_MAGIC 0x6f70726f super_block drivers/oprofile/oprofilefs.h | 134 | OPROFILE_MAGIC 0x6f70726f super_block drivers/oprofile/oprofilefs.h |
144 | M3_STATE_MAGIC 0x734d724d m3_state sound/oss/maestro3.c | 135 | M3_STATE_MAGIC 0x734d724d m3_state sound/oss/maestro3.c |
145 | STL_PANELMAGIC 0x7ef621a1 stlpanel include/linux/stallion.h | ||
146 | VMALLOC_MAGIC 0x87654320 snd_alloc_track sound/core/memory.c | 136 | VMALLOC_MAGIC 0x87654320 snd_alloc_track sound/core/memory.c |
147 | KMALLOC_MAGIC 0x87654321 snd_alloc_track sound/core/memory.c | 137 | KMALLOC_MAGIC 0x87654321 snd_alloc_track sound/core/memory.c |
148 | PWC_MAGIC 0x89DC10AB pwc_device drivers/usb/media/pwc.h | 138 | PWC_MAGIC 0x89DC10AB pwc_device drivers/usb/media/pwc.h |
149 | NBD_REPLY_MAGIC 0x96744668 nbd_reply include/linux/nbd.h | 139 | NBD_REPLY_MAGIC 0x96744668 nbd_reply include/linux/nbd.h |
150 | STL_BOARDMAGIC 0xa2267f52 stlbrd include/linux/stallion.h | ||
151 | ENI155_MAGIC 0xa54b872d midway_eprom drivers/atm/eni.h | 140 | ENI155_MAGIC 0xa54b872d midway_eprom drivers/atm/eni.h |
152 | SCI_MAGIC 0xbabeface gs_port drivers/char/sh-sci.h | 141 | SCI_MAGIC 0xbabeface gs_port drivers/char/sh-sci.h |
153 | CODA_MAGIC 0xC0DAC0DA coda_file_info include/linux/coda_fs_i.h | 142 | CODA_MAGIC 0xC0DAC0DA coda_file_info include/linux/coda_fs_i.h |
154 | DPMEM_MAGIC 0xc0ffee11 gdt_pci_sram drivers/scsi/gdth.h | 143 | DPMEM_MAGIC 0xc0ffee11 gdt_pci_sram drivers/scsi/gdth.h |
155 | STLI_PORTMAGIC 0xe671c7a1 stliport include/linux/istallion.h | ||
156 | YAM_MAGIC 0xF10A7654 yam_port drivers/net/hamradio/yam.c | 144 | YAM_MAGIC 0xF10A7654 yam_port drivers/net/hamradio/yam.c |
157 | CCB_MAGIC 0xf2691ad2 ccb drivers/scsi/ncr53c8xx.c | 145 | CCB_MAGIC 0xf2691ad2 ccb drivers/scsi/ncr53c8xx.c |
158 | QUEUE_MAGIC_FREE 0xf7e1c9a3 queue_entry drivers/scsi/arm/queue.c | 146 | QUEUE_MAGIC_FREE 0xf7e1c9a3 queue_entry drivers/scsi/arm/queue.c |
diff --git a/Documentation/zh_CN/stable_kernel_rules.txt b/Documentation/zh_CN/stable_kernel_rules.txt index b5b9b0ab02fd..26ea5ed7cd9c 100644 --- a/Documentation/zh_CN/stable_kernel_rules.txt +++ b/Documentation/zh_CN/stable_kernel_rules.txt | |||
@@ -42,7 +42,7 @@ Documentation/stable_kernel_rules.txt 的中文翻译 | |||
42 | 42 | ||
43 | 向稳定版代码树提交补丁的过程: | 43 | 向稳定版代码树提交补丁的过程: |
44 | 44 | ||
45 | - 在确认了补丁符合以上的规则后,将补丁发送到stable@kernel.org。 | 45 | - 在确认了补丁符合以上的规则后,将补丁发送到stable@vger.kernel.org。 |
46 | - 如果补丁被接受到队列里,发送者会收到一个ACK回复,如果没有被接受,收 | 46 | - 如果补丁被接受到队列里,发送者会收到一个ACK回复,如果没有被接受,收 |
47 | 到的是NAK回复。回复需要几天的时间,这取决于开发者的时间安排。 | 47 | 到的是NAK回复。回复需要几天的时间,这取决于开发者的时间安排。 |
48 | - 被接受的补丁会被加到稳定版本队列里,等待其他开发者的审查。 | 48 | - 被接受的补丁会被加到稳定版本队列里,等待其他开发者的审查。 |