linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
To: Linux Doc Mailing List <linux-doc@vger.kernel.org>
Cc: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>,
	Mauro Carvalho Chehab <mchehab@infradead.org>,
	linux-kernel@vger.kernel.org, Jonathan Corbet <corbet@lwn.net>,
	Palmer Dabbelt <palmer@sifive.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	linux-riscv@lists.infradead.org
Subject: [PATCH v2 29/79] docs: riscv: convert docs to ReST and rename to *.rst
Date: Mon, 22 Apr 2019 10:27:18 -0300	[thread overview]
Message-ID: <68ae2e7f109c0b164f724d5fd59535b2cdbfbe9e.1555938376.git.mchehab+samsung@kernel.org> (raw)
In-Reply-To: <cover.1555938375.git.mchehab+samsung@kernel.org>

The conversion here is trivial:
 - Adjust the document title's markup
 - Do some whitespace alignment;
 - mark literal blocks;
 - Use ReST way to markup indented lists.

At its new index.rst, let's add a :orphan: while this is not linked to
the main index.rst file, in order to avoid build warnings.

Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
---
 Documentation/riscv/index.rst            | 17 ++++
 Documentation/riscv/{pmu.txt => pmu.rst} | 98 +++++++++++++-----------
 2 files changed, 69 insertions(+), 46 deletions(-)
 create mode 100644 Documentation/riscv/index.rst
 rename Documentation/riscv/{pmu.txt => pmu.rst} (77%)

diff --git a/Documentation/riscv/index.rst b/Documentation/riscv/index.rst
new file mode 100644
index 000000000000..c4b906d9b5a7
--- /dev/null
+++ b/Documentation/riscv/index.rst
@@ -0,0 +1,17 @@
+:orphan:
+
+===================
+RISC-V architecture
+===================
+
+.. toctree::
+    :maxdepth: 1
+
+    pmu
+
+.. only::  subproject and html
+
+   Indices
+   =======
+
+   * :ref:`genindex`
diff --git a/Documentation/riscv/pmu.txt b/Documentation/riscv/pmu.rst
similarity index 77%
rename from Documentation/riscv/pmu.txt
rename to Documentation/riscv/pmu.rst
index b29f03a6d82f..acb216b99c26 100644
--- a/Documentation/riscv/pmu.txt
+++ b/Documentation/riscv/pmu.rst
@@ -1,5 +1,7 @@
+===================================
 Supporting PMUs on RISC-V platforms
-==========================================
+===================================
+
 Alan Kao <alankao@andestech.com>, Mar 2018
 
 Introduction
@@ -77,13 +79,13 @@ Note that some features can be done in this stage as well:
 (2) privilege level setting (user space only, kernel space only, both);
 (3) destructor setting.  Normally it is sufficient to apply *riscv_destroy_event*;
 (4) tweaks for non-sampling events, which will be utilized by functions such as
-*perf_adjust_period*, usually something like the follows:
+    *perf_adjust_period*, usually something like the follows::
 
-if (!is_sampling_event(event)) {
-        hwc->sample_period = x86_pmu.max_period;
-        hwc->last_period = hwc->sample_period;
-        local64_set(&hwc->period_left, hwc->sample_period);
-}
+      if (!is_sampling_event(event)) {
+              hwc->sample_period = x86_pmu.max_period;
+              hwc->last_period = hwc->sample_period;
+              local64_set(&hwc->period_left, hwc->sample_period);
+      }
 
 In the case of *riscv_base_pmu*, only (3) is provided for now.
 
@@ -94,10 +96,10 @@ In the case of *riscv_base_pmu*, only (3) is provided for now.
 3.1. Interrupt Initialization
 
 This often occurs at the beginning of the *event_init* method. In common
-practice, this should be a code segment like
+practice, this should be a code segment like::
 
-int x86_reserve_hardware(void)
-{
+  int x86_reserve_hardware(void)
+  {
         int err = 0;
 
         if (!atomic_inc_not_zero(&pmc_refcount)) {
@@ -114,7 +116,7 @@ int x86_reserve_hardware(void)
         }
 
         return err;
-}
+  }
 
 And the magic is in *reserve_pmc_hardware*, which usually does atomic
 operations to make implemented IRQ accessible from some global function pointer.
@@ -128,28 +130,28 @@ which will be introduced in the next section.)
 
 3.2. IRQ Structure
 
-Basically, a IRQ runs the following pseudo code:
+Basically, a IRQ runs the following pseudo code::
 
-for each hardware counter that triggered this overflow
+  for each hardware counter that triggered this overflow
 
-    get the event of this counter
+      get the event of this counter
 
-    // following two steps are defined as *read()*,
-    // check the section Reading/Writing Counters for details.
-    count the delta value since previous interrupt
-    update the event->count (# event occurs) by adding delta, and
-               event->hw.period_left by subtracting delta
+      // following two steps are defined as *read()*,
+      // check the section Reading/Writing Counters for details.
+      count the delta value since previous interrupt
+      update the event->count (# event occurs) by adding delta, and
+                 event->hw.period_left by subtracting delta
 
-    if the event overflows
-        sample data
-        set the counter appropriately for the next overflow
+      if the event overflows
+          sample data
+          set the counter appropriately for the next overflow
 
-        if the event overflows again
-            too frequently, throttle this event
-        fi
-    fi
+          if the event overflows again
+              too frequently, throttle this event
+          fi
+      fi
 
-end for
+  end for
 
 However as of this writing, none of the RISC-V implementations have designed an
 interrupt for perf, so the details are to be completed in the future.
@@ -195,23 +197,26 @@ A normal flow of these state transitions are as follows:
   At this stage, a general event is bound to a physical counter, if any.
   The state changes to PERF_HES_STOPPED and PERF_HES_UPTODATE, because it is now
   stopped, and the (software) event count does not need updating.
-** *start* is then called, and the counter is enabled.
-   With flag PERF_EF_RELOAD, it writes an appropriate value to the counter (check
-   previous section for detail).
-   Nothing is written if the flag does not contain PERF_EF_RELOAD.
-   The state now is reset to none, because it is neither stopped nor updated
-   (the counting already started)
+
+  - *start* is then called, and the counter is enabled.
+    With flag PERF_EF_RELOAD, it writes an appropriate value to the counter (check
+    previous section for detail).
+    Nothing is written if the flag does not contain PERF_EF_RELOAD.
+    The state now is reset to none, because it is neither stopped nor updated
+    (the counting already started)
+
 * When being context-switched out, *del* is called.  It then checks out all the
   events in the PMU and calls *stop* to update their counts.
-** *stop* is called by *del*
-   and the perf core with flag PERF_EF_UPDATE, and it often shares the same
-   subroutine as *read* with the same logic.
-   The state changes to PERF_HES_STOPPED and PERF_HES_UPTODATE, again.
 
-** Life cycle of these two pairs: *add* and *del* are called repeatedly as
-  tasks switch in-and-out; *start* and *stop* is also called when the perf core
-  needs a quick stop-and-start, for instance, when the interrupt period is being
-  adjusted.
+  - *stop* is called by *del*
+    and the perf core with flag PERF_EF_UPDATE, and it often shares the same
+    subroutine as *read* with the same logic.
+    The state changes to PERF_HES_STOPPED and PERF_HES_UPTODATE, again.
+
+  - Life cycle of these two pairs: *add* and *del* are called repeatedly as
+    tasks switch in-and-out; *start* and *stop* is also called when the perf core
+    needs a quick stop-and-start, for instance, when the interrupt period is being
+    adjusted.
 
 Current implementation is sufficient for now and can be easily extended to
 features in the future.
@@ -225,25 +230,26 @@ A. Related Structures
   Both structures are designed to be read-only.
 
   *struct pmu* defines some function pointer interfaces, and most of them take
-*struct perf_event* as a main argument, dealing with perf events according to
-perf's internal state machine (check kernel/events/core.c for details).
+  *struct perf_event* as a main argument, dealing with perf events according to
+  perf's internal state machine (check kernel/events/core.c for details).
 
   *struct riscv_pmu* defines PMU-specific parameters.  The naming follows the
-convention of all other architectures.
+  convention of all other architectures.
 
 * struct perf_event: include/linux/perf_event.h
 * struct hw_perf_event
 
   The generic structure that represents perf events, and the hardware-related
-details.
+  details.
 
 * struct riscv_hw_events: arch/riscv/include/asm/perf_event.h
 
   The structure that holds the status of events, has two fixed members:
-the number of events and the array of the events.
+  the number of events and the array of the events.
 
 References
 ----------
 
 [1] https://github.com/riscv/riscv-linux/pull/124
+
 [2] https://groups.google.com/a/groups.riscv.org/forum/#!topic/sw-dev/f19TmCNP6yA
-- 
2.20.1


  parent reply	other threads:[~2019-04-22 13:28 UTC|newest]

Thread overview: 124+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20190423132100.GB7132@redhat.com>
2019-04-22 13:26 ` [PATCH v2 00/79] Convert files to ReST Mauro Carvalho Chehab
2019-04-22 13:26   ` [PATCH v2 01/79] docs: core-api: fix broken references for div64.c and gcd.c Mauro Carvalho Chehab
2019-04-22 13:26   ` [PATCH v2 02/79] docs: trace: fix some Sphinx warnings Mauro Carvalho Chehab
2019-04-24 15:10     ` Steven Rostedt
2019-04-22 13:26   ` [PATCH v2 03/79] scripts/documentation-file-ref-check: don't parse Next/ dir Mauro Carvalho Chehab
2019-04-22 13:26   ` [PATCH v2 04/79] docs: aoe: convert docs to ReST and rename to *.rst Mauro Carvalho Chehab
2019-04-22 13:26   ` [PATCH v2 05/79] docs: arm64: convert docs to ReST and rename to .rst Mauro Carvalho Chehab
2019-04-22 13:26   ` [PATCH v2 06/79] docs: cdrom-standard.tex: convert from LaTeX to ReST Mauro Carvalho Chehab
2019-04-22 13:26   ` [PATCH v2 07/79] docs: cdrom: convert docs to ReST and rename to *.rst Mauro Carvalho Chehab
2019-04-22 13:26   ` [PATCH v2 08/79] docs: cgroup-v1: " Mauro Carvalho Chehab
2019-05-06 15:47     ` Tejun Heo
2019-04-22 13:26   ` [PATCH v2 09/79] docs: cgroup-v1/blkio-controller.rst: add a note about CFQ scheduler Mauro Carvalho Chehab
2019-04-22 13:26   ` [PATCH v2 10/79] docs: cpu-freq: convert docs to ReST and rename to *.rst Mauro Carvalho Chehab
2019-04-23  8:21     ` Rafael J. Wysocki
2019-04-22 13:27   ` [PATCH v2 11/79] docs: " Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 12/79] docs: fault-injection: " Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 13/79] docs: fb: " Mauro Carvalho Chehab
2019-05-06 13:40     ` Bartlomiej Zolnierkiewicz
2019-04-22 13:27   ` [PATCH v2 14/79] docs: fpga: " Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 15/79] docs: gpio: " Mauro Carvalho Chehab
2019-04-23 11:23     ` Linus Walleij
2019-04-23 12:36       ` Mauro Carvalho Chehab
2019-04-23 21:30     ` Linus Walleij
2019-04-22 13:27   ` [PATCH v2 16/79] docs: ide: " Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 17/79] docs: infiniband: " Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 19/79] docs: kdump: " Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 20/79] docs: livepatch: " Mauro Carvalho Chehab
2019-04-26  8:10     ` Petr Mladek
2019-04-26  9:04       ` Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 21/79] docs: locking: " Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 22/79] docs: mic: " Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 23/79] docs: netlabel: " Mauro Carvalho Chehab
2019-04-22 18:10     ` Paul Moore
2019-04-22 13:27   ` [PATCH v2 24/79] docs: pcmcia: " Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 25/79] docs: " Mauro Carvalho Chehab
2019-04-22 13:48     ` Bjorn Helgaas
2019-04-22 14:07       ` Mauro Carvalho Chehab
2019-04-25 18:07     ` Mark Brown
2019-04-26  9:46       ` Mauro Carvalho Chehab
2019-04-27 17:25         ` Mark Brown
2019-04-27 18:13           ` Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 26/79] docs: powerpc: " Mauro Carvalho Chehab
2019-04-24  1:15     ` Andrew Donnellan
2019-04-22 13:27   ` [PATCH v2 27/79] docs: pps.txt: convert to ReST and rename to pps.rst Mauro Carvalho Chehab
2019-04-22 16:19     ` Rodolfo Giometti
2019-04-22 13:27   ` [PATCH v2 28/79] docs: ptp.txt: convert to ReST and move to driver-api Mauro Carvalho Chehab
2019-04-22 15:40     ` Richard Cochran
2019-04-22 13:27   ` Mauro Carvalho Chehab [this message]
2019-04-22 13:27   ` [PATCH v2 30/79] docs: Debugging390.txt: convert table to ascii artwork Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 31/79] docs: s390: convert docs to ReST and rename to *.rst Mauro Carvalho Chehab
2019-04-23 16:12     ` Farhan Ali
2019-04-23 19:46       ` Mauro Carvalho Chehab
2019-04-24 11:41     ` Cornelia Huck
2019-04-24 12:30       ` Heiko Carstens
2019-04-24 12:44       ` Mauro Carvalho Chehab
2019-04-24 12:52         ` Cornelia Huck
2019-04-22 13:27   ` [PATCH v2 32/79] s390: include/asm/debug.h add kerneldoc markups Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 33/79] docs: serial: convert docs to ReST and rename to *.rst Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 34/79] docs: target: " Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 35/79] docs: timers: " Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 36/79] docs: watchdog: " Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 37/79] docs: xilinx: convert eemi.txt to eemi.rst Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 38/79] docs: scheduler: convert docs to ReST and rename to *.rst Mauro Carvalho Chehab
2019-04-23  8:29     ` Peter Zijlstra
2019-04-23 10:32       ` Ingo Molnar
2019-04-23 11:19         ` Peter Zijlstra
2019-04-23 12:30           ` Ingo Molnar
2019-04-22 13:27   ` [PATCH v2 39/79] docs: EDID/HOWTO.txt: convert it and rename to howto.rst Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 40/79] convert docs to ReST and rename to *.rst Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 41/79] docs: lcd-panel-cgram.txt: " Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 42/79] docs: lp855x-driver.txt: convert to ReST and move to kernel-api Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 43/79] docs: m68k: convert docs to ReST and rename to *.rst Mauro Carvalho Chehab
2019-05-03 11:55     ` Geert Uytterhoeven
2019-04-22 13:27   ` [PATCH v2 44/79] docs: cma/debugfs.txt: " Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 45/79] docs: console.txt: " Mauro Carvalho Chehab
2019-05-06 13:41     ` Bartlomiej Zolnierkiewicz
2019-04-22 13:27   ` [PATCH v2 46/79] docs: pti_intel_mid.txt: convert it to pti_intel_mid.rst Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 47/79] docs: early-userspace: convert docs to ReST and rename to *.rst Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 48/79] docs: driver-model: " Mauro Carvalho Chehab
2019-04-22 14:47     ` Julia Lawall
2019-04-22 22:30     ` Guenter Roeck
2019-04-22 13:27   ` [PATCH v2 50/79] docs: memory-devices: convert ti-emif.txt to ReST Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 51/79] docs: xen-tpmfront.txt: convert it to .rst Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 52/79] docs: bus-devices: ti-gpmc.rst: convert it to ReST Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 53/79] docs: nvmem: convert docs to ReST and rename to *.rst Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 54/79] docs: phy: convert samsung-usb2.txt to ReST format Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 55/79] docs: rbtree.txt: fix Sphinx build warnings Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 57/79] docs: accounting: convert to ReST Mauro Carvalho Chehab
2019-05-06 15:46     ` Tejun Heo
2019-04-22 13:27   ` [PATCH v2 58/79] docs: fmc: " Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 59/79] docs: hid: " Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 60/79] docs: ia64: " Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 61/79] docs: leds: " Mauro Carvalho Chehab
2019-04-23 19:00     ` Jacek Anaszewski
2019-04-22 13:27   ` [PATCH v2 62/79] docs: laptops: " Mauro Carvalho Chehab
2019-05-06  8:59     ` Andy Shevchenko
2019-04-22 13:27   ` [PATCH v2 63/79] docs: iio: " Mauro Carvalho Chehab
2019-04-22 14:25     ` Jonathan Cameron
2019-04-22 13:27   ` [PATCH v2 64/79] docs: ioctl-number.txt: convert it to ReST format Mauro Carvalho Chehab
2019-04-22 14:05     ` Doug Ledford
2019-04-22 14:17       ` Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 65/79] docs: ioctl: convert to ReST Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 66/79] docs: namespaces: " Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 67/79] docs: nfc: " Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 68/79] docs: md: " Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 69/79] docs: mtd: " Mauro Carvalho Chehab
2019-04-22 13:27   ` [PATCH v2 70/79] docs: nvdimm: " Mauro Carvalho Chehab
2019-04-22 13:28   ` [PATCH v2 71/79] docs: xtensa: " Mauro Carvalho Chehab
2019-04-22 13:28   ` [PATCH v2 72/79] docs: mmc: " Mauro Carvalho Chehab
2019-04-22 13:28   ` [PATCH v2 73/79] docs: sparc: " Mauro Carvalho Chehab
2019-04-22 13:28   ` [PATCH v2 74/79] docs: thermal: " Mauro Carvalho Chehab
2019-04-22 13:28   ` [PATCH v2 75/79] docs: rapidio: " Mauro Carvalho Chehab
2019-04-22 13:28   ` [PATCH v2 76/79] docs: blockdev: " Mauro Carvalho Chehab
2019-04-22 13:28   ` [PATCH v2 77/79] docs: perf: " Mauro Carvalho Chehab
2019-04-22 13:28   ` [PATCH v2 78/79] docs: sysctl: " Mauro Carvalho Chehab
2019-04-22 13:28   ` [PATCH v2 79/79] docs: block: " Mauro Carvalho Chehab
2019-04-22 14:51   ` [PATCH v2 00/79] Convert files " Mauro Carvalho Chehab
     [not found]   ` <cda57849a6462ccc72dcd360b30068ab6a1021c4.1555938376.git.mchehab+samsung@kernel.org>
     [not found]     ` <20190423083135.GA11158@hirez.programming.kicks-ass.net>
     [not found]       ` <20190423125519.GA7104@redhat.com>
     [not found]         ` <20190423130132.GT4038@hirez.programming.kicks-ass.net>
2019-04-23 14:52           ` [PATCH v2 56/79] docs: Documentation/*.txt: rename all ReST files to *.rst David Howells
2019-04-23 16:54             ` Jonathan Corbet
2019-04-23 17:12               ` Peter Zijlstra
2019-04-23 20:26               ` Mauro Carvalho Chehab
2019-04-24 11:51                 ` Mike Rapoport
2019-04-24 12:57                   ` Mauro Carvalho Chehab
2019-04-23 19:37             ` Mauro Carvalho Chehab

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=68ae2e7f109c0b164f724d5fd59535b2cdbfbe9e.1555938376.git.mchehab+samsung@kernel.org \
    --to=mchehab+samsung@kernel.org \
    --cc=aou@eecs.berkeley.edu \
    --cc=corbet@lwn.net \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=mchehab@infradead.org \
    --cc=palmer@sifive.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).