Received: by 2002:ac0:aed5:0:0:0:0:0 with SMTP id t21csp3053746imb; Mon, 4 Mar 2019 23:01:57 -0800 (PST) X-Google-Smtp-Source: APXvYqz5I+snKdrgIBVuXifCw/jCVPrZMYBZdrd6NM6TrDw9X0LihKhq3BdtkiWwyRjdYwuE+TVF X-Received: by 2002:a17:902:2e01:: with SMTP id q1mr24656723plb.240.1551769317895; Mon, 04 Mar 2019 23:01:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551769317; cv=none; d=google.com; s=arc-20160816; b=sr7E3/SajKMYJCbL2Neh/yh5pptMgn+41Yn/BYL/ojj400B/CPjW6NAtv2EfhwZCNb 1Cz6kP1nmiKdZHd1/RD2jPTyO45HE8VcJ++yZHUgvOCXaQRAqdKTsbCaznPFfHwc5kpD QcyQEihblb6JFya53R30bbaUfJQV8I7WjG28NTTnRiWm5xG/b7Ke8KLi2z6j2gASNdCk Jdez9FdeTHgvvUGDf5AN2Gsi7e7FscPVF8Q4ypKLLC3k+e8icyvRDOk6jDsyONkF9Ux/ V0BhUDCpUVs7b6GuVHOuVtWtOtdJqcnb9J+T3Wiz2Gui3oFcdDFwUaBz2N3CVn8MfUqe vSHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=xTZnyyi/lfJbE+sjeyKKS08JjzGToqc/hu6zXOTwzfI=; b=fJ0amSTstF6cJjrEAgNsnobAv6owsJ+3X8i0cKzff9+IQeyEms9gX5b9sllLA8I4zK 9qTR6oXs1Jr0vXMUdopNylOaynuD+WXcoceBBW2qwUtPP1O5UCd3GDNU5iGoYa6APH/w d9EJJR97IHiL5zmoJBeGimKwMlrcMfw8bTNhU3k0uovMTyi4uFVersIqgj19nMcZQBzO 4xDBVWTk7MoGWNQmF7BsnMh923M/XED4hKQhiTMX+zqhM5TXfoI1WJWEgum063xEsb/Q WwHWOq57cuz1Fx3wjwadE8GryeusV0Gh3xIRoyemN+JNN1rEEHsU3eJTFm4RhfZq4iRE UrNQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f7si6995943pgo.569.2019.03.04.23.01.42; Mon, 04 Mar 2019 23:01:57 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727576AbfCEHAe (ORCPT + 99 others); Tue, 5 Mar 2019 02:00:34 -0500 Received: from out30-44.freemail.mail.aliyun.com ([115.124.30.44]:40675 "EHLO out30-44.freemail.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727159AbfCEG6r (ORCPT ); Tue, 5 Mar 2019 01:58:47 -0500 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R181e4;CH=green;DM=||false|;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01f04452;MF=alex.shi@linux.alibaba.com;NM=1;PH=DS;RN=11;SR=0;TI=SMTPD_---0TM.nNoB_1551769118; Received: from localhost(mailfrom:alex.shi@linux.alibaba.com fp:SMTPD_---0TM.nNoB_1551769118) by smtp.aliyun-inc.com(127.0.0.1); Tue, 05 Mar 2019 14:58:38 +0800 From: Alex Shi To: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, harryxiyou@gmail.com, corbet@lwn.net, leoyang.li@nxp.com Cc: colyli@suse.de, fengguang.wu@intel.com, shawn.guo@linaro.org, lizefan@huawei.com, Alex Shi , Bryan Wu Subject: [PATCH v2 14/27] docs/zh_CN: volatile doc format changes Date: Tue, 5 Mar 2019 14:58:01 +0800 Message-Id: <20190305065815.157964-15-alex.shi@linux.alibaba.com> X-Mailer: git-send-email 2.19.1.856.g8858448bb In-Reply-To: <20190305065815.157964-1-alex.shi@linux.alibaba.com> References: <20190305065815.157964-1-alex.shi@linux.alibaba.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org make it readble as rst format for html etc doc making. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Bryan Wu Cc: Li Zefan Cc: Shawn Guo Cc: Fengguang Wu Cc: Coly Li --- .../process/volatile-considered-harmful.rst | 35 ++++++++----------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/Documentation/translations/zh_CN/process/volatile-considered-harmful.rst b/Documentation/translations/zh_CN/process/volatile-considered-harmful.rst index 475125967197..48b32ce58ef1 100644 --- a/Documentation/translations/zh_CN/process/volatile-considered-harmful.rst +++ b/Documentation/translations/zh_CN/process/volatile-considered-harmful.rst @@ -1,30 +1,23 @@ -Chinese translated version of Documentation/process/volatile-considered-harmful.rst +.. _cn_volatile_considered_harmful: -If you have any comment or update to the content, please contact the -original document maintainer directly. However, if you have a problem -communicating in English you can also ask the Chinese maintainer for -help. Contact the Chinese maintainer if this translation is outdated -or if there is a problem with the translation. +.. include:: ../disclaimer-zh_CN.rst -Maintainer: Jonathan Corbet -Chinese maintainer: Bryan Wu ---------------------------------------------------------------------- -Documentation/process/volatile-considered-harmful.rst 的中文翻译 +:Original: :ref:`Documentation/process/volatile-considered-harmful.rst + ` 如果想评论或更新本文的内容,请直接联系原文档的维护者。如果你使用英文 交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻 -译存在问题,请联系中文版维护者。 +译存在问题,请联系中文版维护者:: -英文版维护者: Jonathan Corbet -中文版维护者: 伍鹏 Bryan Wu -中文版翻译者: 伍鹏 Bryan Wu -中文版校译者: 张汉辉 Eugene Teo - 杨瑞 Dave Young -以下为正文 ---------------------------------------------------------------------- + 英文版维护者: Jonathan Corbet + 中文版维护者: 伍鹏 Bryan Wu + 中文版翻译者: 伍鹏 Bryan Wu + 中文版校译者: 张汉辉 Eugene Teo + 杨瑞 Dave Young + 时奎亮 Alex Shi 为什么不应该使用“volatile”类型 ------------------------------- +============================== C程序员通常认为volatile表示某个变量可以在当前执行的线程之外被改变;因此,在内核 中用到共享数据结构时,常常会有C程序员喜欢使用volatile这类变量。换句话说,他们经 @@ -41,7 +34,7 @@ C程序员通常认为volatile表示某个变量可以在当前执行的线程 必要再使用volatile。如果仍然必须使用volatile,那么几乎可以肯定在代码的某处有一 个bug。在正确设计的内核代码中,volatile能带来的仅仅是使事情变慢。 -思考一下这段典型的内核代码: +思考一下这段典型的内核代码:: spin_lock(&the_lock); do_something_on(&shared_data); @@ -66,7 +59,7 @@ volatile的存储类型最初是为那些内存映射的I/O寄存器而定义。 是必需的。 另一种引起用户可能使用volatile的情况是当处理器正忙着等待一个变量的值。正确执行一 -个忙等待的方法是: +个忙等待的方法是:: while (my_variable != what_i_want) cpu_relax(); -- 2.19.1.856.g8858448bb