1Chinese translated version of Documentation/io_orderings.txt
2
3If you have any comment or update to the content, please contact the
4original document maintainer directly.  However, if you have a problem
5communicating in English you can also ask the Chinese maintainer for
6help.  Contact the Chinese maintainer if this translation is outdated
7or if there is a problem with the translation.
8
9Chinese maintainer: Lin Yongting <linyongting@gmail.com>
10---------------------------------------------------------------------
11Documentation/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        ...
35CPU A:  spin_lock_irqsave(&dev_lock, flags)
36CPU A:  val = readl(my_status);
37CPU A:  ...
38CPU A:  writel(newval, ring_ptr);
39CPU A:  spin_unlock_irqrestore(&dev_lock, flags)
40        ...
41CPU B:  spin_lock_irqsave(&dev_lock, flags)
42CPU B:  val = readl(my_status);
43CPU B:  ...
44CPU B:  writel(newval2, ring_ptr);
45CPU B:  spin_unlock_irqrestore(&dev_lock, flags)
46        ...
47
48���������������������������������������������newval2������������������������newval������������������
49���������������������������������������������������������
50
51        ...
52CPU A:  spin_lock_irqsave(&dev_lock, flags)
53CPU A:  val = readl(my_status);
54CPU A:  ...
55CPU A:  writel(newval, ring_ptr);
56CPU A:  (void)readl(safe_register); /* ������������������*/
57CPU A:  spin_unlock_irqrestore(&dev_lock, flags)
58        ...
59CPU B:  spin_lock_irqsave(&dev_lock, flags)
60CPU B:  val = readl(my_status);
61CPU B:  ...
62CPU B:  writel(newval2, ring_ptr);
63CPU B:  (void)readl(safe_register); /* ������������������*/
64CPU B:  spin_unlock_irqrestore(&dev_lock, flags)
65
66���������������������������safe_register������������������IO������������������������������������
67������������������������������������������������������������������
68