* [PATCH 00/57] Convert files to ReST
@ 2019-04-16 2:55 Mauro Carvalho Chehab
2019-04-16 2:55 ` [PATCH 34/57] docs: target: convert it to ReST format Mauro Carvalho Chehab
2019-04-18 12:42 ` Avoiding merge conflicts while adding new docs - Was: Re: [PATCH 00/57] Convert files to ReST Mauro Carvalho Chehab
0 siblings, 2 replies; 4+ messages in thread
From: Mauro Carvalho Chehab @ 2019-04-16 2:55 UTC (permalink / raw)
To: Linux Doc Mailing List
Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, linux-kernel,
Jonathan Corbet, linux-riscv, linux-fbdev, linux-s390,
Greg Kroah-Hartman, linux-watchdog, xdp-newbies,
linux-samsung-soc, linux-acpi, linux-stm32, bpf, linux-ide,
linux-pm, dri-devel, linux-scsi, linux-gpio, linuxppc-dev, x86,
dm-devel, target-devel, netdev, kexec, linux-fpga, linux-rdma,
linux-kbuild, Thomas Gleixner, linux-security-module, linux-usb,
linux-arm-kernel
This series convert lots of files to be properly parsed by Sphinx
as ReST files.
As it touches on lot of stuff, the series is based on linux-next.
I have a separate patch series with do the actual rename and
adjustment of references. I opted to submit this first, as it
sounds easier to merge this way, as each subsystem maintainer
can apply the conversion directly on their trees (or at docs
tree), avoiding merge conflects.
Both this series and the next steps are on my devel git tree,
at:
https://git.linuxtv.org/mchehab/experimental.git/log/?h=all_with_indexes-v3
The final output in html can be seen at:
https://www.infradead.org/~mchehab/rst_conversion/
Mauro Carvalho Chehab (57):
docs: trace: fix some Sphinx warnings
docs: acpi: convert text files to ReST
docs: aoe: convert text files to ReST
docs: arm64: convert documentation to ReST format
docs: cdrom/cdrom-standard.tex: convert from LaTeX to ReST
docs: cdrom: convert remaining files to ReST
docs: cgroup-v1: convert to ReST file format
docs: cgroup-v1/blkio-controller.rst: add a note about CFQ scheduler
docs: cpu-freq: convert files to ReST
docs: device-mapper: convert it to ReST format
docs: extcon: move it to acpi dir and convert it to ReST
docs: fault-injection: convert it to ReST format
docs: fb: convert documentation to ReST format
docs: fpga: convert it to ReST
docs: gpio: convert it to ReST
docs: ide: convert it to ReST format
docs: infiniband: convert it to ReST format
docs: kbuild: convert it to ReST output
docs: kdump: convert it to ReST
docs: livepatch: convert it to ReST format
docs: locking: convert docs to ReST format
docs: mic: convert it to ReST format
docs: netlabel: convert it to ReST
docs: pcmcia: convert it to ReST format
docs: power: convert docs to ReST
docs: powerpc: convert docs to ReST
docs: pps/pps.txt convert it to ReST and move to API book
docs: ptp.txt: convert to ReST and move to driver-api
docs: riscv: convert it to ReST format
docs: s390: Debugging390.txt: convert table to ascii artwork
docs: s390: convert text files to ReST format
s390: include/asm/debug.h add kerneldoc markups
docs: serial: convert it to ReST format
docs: target: convert it to ReST format
docs: timers: convert documentation to ReST
docs: usb: convert documents to ReST
docs: watchdog: convert documents to ReST format
docs: x86: convert text files to ReST
docs: xilinx: convert eemi.txt to ReST
docs: scheduler: convert files to ReST
docs: EDID/HOWTO.txt: convert to ReST and move to kernel-API
docs: connector.txt: convert to ReST
docs: lcd-panel-cgram.txt convert it to ReST and move to admin-guide
docs: lp855x-driver.txt: convert to ReST and move to kernel-api
docs: m68k: convert it to ReST file format and add to arch bookset
docs: cma/debugfs.txt: convert to ReST and move to admin-guide/mm
docs: console.txt: convert to ReST format
docs: pti_intel_mid.txt: convert to ReST
docs: early-userspace: convert docs to ReST
docs: driver-model: convert it to ReST format
docs: arm: convert text files to ReST format
docs: memory-devices: convert ti-emif.txt to ReST format
docs: xen-tpmfront.txt: convert the file to ReST format
docs: bus-devices: ti-gpmc.txt: convert it to ReST
docs: nvmem: convert file to ReST format
docs: phy: convert samsung-usb2.txt to ReST format
docs: Prepare files to be renamed to *.rst
Documentation/EDID/HOWTO.txt | 29 +-
Documentation/acpi/DSD-properties-rules.txt | 4 +-
Documentation/acpi/acpi-lid.txt | 37 +-
Documentation/acpi/aml-debugger.txt | 31 +-
Documentation/acpi/apei/einj.txt | 59 +-
Documentation/acpi/apei/output_format.txt | 247 +-
Documentation/acpi/cppc_sysfs.txt | 52 +-
Documentation/acpi/debug.txt | 20 +-
.../drivers/extcon-intel-int3496.txt} | 14 +-
.../acpi/dsd/data-node-references.txt | 11 +-
Documentation/acpi/dsd/graph.txt | 24 +-
Documentation/acpi/dsd/leds.txt | 18 +-
Documentation/acpi/dsdt-override.txt | 4 +-
Documentation/acpi/enumeration.txt | 42 +-
Documentation/acpi/gpio-properties.txt | 42 +-
Documentation/acpi/i2c-muxes.txt | 21 +-
Documentation/acpi/initrd_table_override.txt | 90 +-
Documentation/acpi/linuxized-acpica.txt | 58 +-
Documentation/acpi/lpit.txt | 8 +-
Documentation/acpi/method-customizing.txt | 48 +-
Documentation/acpi/method-tracing.txt | 132 +-
Documentation/acpi/namespace.txt | 323 +-
Documentation/acpi/osi.txt | 3 +-
Documentation/acpi/scan_handlers.txt | 9 +-
Documentation/acpi/ssdt-overlays.txt | 128 +-
Documentation/acpi/video_extension.txt | 16 +-
Documentation/aoe/aoe.txt | 63 +-
Documentation/aoe/todo.txt | 3 +
Documentation/aoe/udev.txt | 2 +-
Documentation/arm/Booting | 71 +-
Documentation/arm/IXP4xx | 61 +-
Documentation/arm/Interrupts | 86 +-
Documentation/arm/Marvell/README | 537 ++--
Documentation/arm/Microchip/README | 63 +-
Documentation/arm/Netwinder | 59 +-
Documentation/arm/OMAP/DSS | 112 +-
Documentation/arm/OMAP/README | 7 +
Documentation/arm/OMAP/omap_pm | 55 +-
Documentation/arm/Porting | 14 +-
Documentation/arm/README | 50 +-
Documentation/arm/SA1100/ADSBitsy | 14 +-
Documentation/arm/SA1100/Assabet | 185 +-
Documentation/arm/SA1100/Brutus | 45 +-
Documentation/arm/SA1100/CERF | 10 +-
Documentation/arm/SA1100/FreeBird | 26 +-
Documentation/arm/SA1100/GraphicsClient | 46 +-
Documentation/arm/SA1100/GraphicsMaster | 13 +-
Documentation/arm/SA1100/HUW_WEBPANEL | 8 +-
Documentation/arm/SA1100/Itsy | 14 +-
Documentation/arm/SA1100/LART | 3 +-
Documentation/arm/SA1100/PLEB | 6 +-
Documentation/arm/SA1100/Pangolin | 10 +-
Documentation/arm/SA1100/Tifon | 4 +-
Documentation/arm/SA1100/Yopy | 5 +-
Documentation/arm/SA1100/empeg | 2 -
Documentation/arm/SA1100/nanoEngine | 6 +-
Documentation/arm/SA1100/serial_UART | 60 +-
Documentation/arm/SPEAr/overview.txt | 20 +-
Documentation/arm/Samsung-S3C24XX/CPUfreq.txt | 5 +-
.../arm/Samsung-S3C24XX/EB2410ITX.txt | 5 +-
Documentation/arm/Samsung-S3C24XX/GPIO.txt | 21 +-
Documentation/arm/Samsung-S3C24XX/H1940.txt | 5 +-
Documentation/arm/Samsung-S3C24XX/NAND.txt | 6 +-
.../arm/Samsung-S3C24XX/Overview.txt | 15 +-
Documentation/arm/Samsung-S3C24XX/S3C2412.txt | 5 +-
Documentation/arm/Samsung-S3C24XX/S3C2413.txt | 7 +-
.../arm/Samsung-S3C24XX/SMDK2440.txt | 5 +-
Documentation/arm/Samsung-S3C24XX/Suspend.txt | 20 +-
.../arm/Samsung-S3C24XX/USB-Host.txt | 16 +-
.../arm/Samsung/Bootloader-interface.txt | 27 +-
Documentation/arm/Samsung/GPIO.txt | 5 +-
Documentation/arm/Samsung/Overview.txt | 11 +-
Documentation/arm/Setup | 49 +-
Documentation/arm/VFP/release-notes.txt | 4 +-
.../arm/cluster-pm-race-avoidance.txt | 177 +-
Documentation/arm/firmware.txt | 14 +-
Documentation/arm/kernel_mode_neon.txt | 3 +
Documentation/arm/kernel_user_helpers.txt | 79 +-
Documentation/arm/keystone/Overview.txt | 47 +-
Documentation/arm/keystone/knav-qmss.txt | 6 +-
Documentation/arm/mem_alignment | 11 +-
Documentation/arm/memory.txt | 9 +-
Documentation/arm/nwfpe/NOTES | 3 +
Documentation/arm/nwfpe/README | 10 +-
Documentation/arm/nwfpe/README.FPE | 24 +-
Documentation/arm/nwfpe/TODO | 47 +-
Documentation/arm/pxa/mfp.txt | 106 +-
Documentation/arm/sti/overview.txt | 21 +-
Documentation/arm/sti/stih407-overview.txt | 9 +-
Documentation/arm/sti/stih415-overview.txt | 8 +-
Documentation/arm/sti/stih416-overview.txt | 5 +-
Documentation/arm/sti/stih418-overview.txt | 9 +-
.../arm/stm32/stm32f429-overview.rst | 5 +-
.../arm/stm32/stm32f746-overview.rst | 5 +-
.../arm/stm32/stm32f769-overview.rst | 5 +-
.../arm/stm32/stm32h743-overview.rst | 5 +-
.../arm/stm32/stm32mp157-overview.rst | 1 +
Documentation/arm/sunxi/README | 98 +-
Documentation/arm/sunxi/clocks.txt | 7 +-
Documentation/arm/swp_emulation | 24 +-
Documentation/arm/tcm.txt | 54 +-
Documentation/arm/uefi.txt | 39 +-
Documentation/arm/vlocks.txt | 9 +-
Documentation/arm64/acpi_object_usage.txt | 288 +-
Documentation/arm64/arm-acpi.txt | 153 +-
Documentation/arm64/booting.txt | 91 +-
Documentation/arm64/cpu-feature-registers.txt | 190 +-
Documentation/arm64/elf_hwcaps.txt | 50 +-
Documentation/arm64/hugetlbpage.txt | 7 +-
Documentation/arm64/legacy_instructions.txt | 43 +-
Documentation/arm64/memory.txt | 91 +-
.../arm64/pointer-authentication.txt | 2 +
Documentation/arm64/silicon-errata.txt | 63 +-
Documentation/arm64/sve.txt | 10 +-
Documentation/arm64/tagged-pointers.txt | 6 +-
Documentation/auxdisplay/lcd-panel-cgram.txt | 7 +-
Documentation/backlight/lp855x-driver.txt | 65 +-
Documentation/bt8xxgpio.txt | 1 -
Documentation/bus-devices/ti-gpmc.txt | 157 +-
Documentation/bus-virt-phys-mapping.txt | 50 +-
Documentation/cdrom/Makefile | 21 -
Documentation/cdrom/cdrom-standard.tex | 1026 -------
Documentation/cdrom/cdrom-standard.txt | 1063 +++++++
Documentation/cdrom/ide-cd | 178 +-
Documentation/cdrom/packet-writing.txt | 27 +-
Documentation/cgroup-v1/blkio-controller.txt | 103 +-
Documentation/cgroup-v1/cgroups.txt | 180 +-
Documentation/cgroup-v1/cpuacct.txt | 15 +-
Documentation/cgroup-v1/cpusets.txt | 203 +-
Documentation/cgroup-v1/devices.txt | 40 +-
Documentation/cgroup-v1/freezer-subsystem.txt | 14 +-
Documentation/cgroup-v1/hugetlb.txt | 31 +-
Documentation/cgroup-v1/memcg_test.txt | 259 +-
Documentation/cgroup-v1/memory.txt | 449 +--
Documentation/cgroup-v1/net_cls.txt | 37 +-
Documentation/cgroup-v1/net_prio.txt | 24 +-
Documentation/cgroup-v1/pids.txt | 78 +-
Documentation/cgroup-v1/rdma.txt | 66 +-
Documentation/cma/debugfs.txt | 6 +-
Documentation/connector/connector.txt | 128 +-
Documentation/console/console.txt | 61 +-
Documentation/cpu-freq/amd-powernow.txt | 11 +-
Documentation/cpu-freq/core.txt | 66 +-
Documentation/cpu-freq/cpu-drivers.txt | 217 +-
Documentation/cpu-freq/cpufreq-nforce2.txt | 12 +-
Documentation/cpu-freq/cpufreq-stats.txt | 141 +-
Documentation/cpu-freq/pcc-cpufreq.txt | 102 +-
.../device-mapper/cache-policies.txt | 24 +-
Documentation/device-mapper/cache.txt | 206 +-
Documentation/device-mapper/delay.txt | 29 +-
Documentation/device-mapper/dm-crypt.txt | 57 +-
Documentation/device-mapper/dm-flakey.txt | 45 +-
Documentation/device-mapper/dm-init.txt | 75 +-
Documentation/device-mapper/dm-integrity.txt | 55 +-
Documentation/device-mapper/dm-io.txt | 14 +-
Documentation/device-mapper/dm-log.txt | 5 +-
.../device-mapper/dm-queue-length.txt | 25 +-
Documentation/device-mapper/dm-raid.txt | 225 +-
.../device-mapper/dm-service-time.txt | 68 +-
Documentation/device-mapper/dm-uevent.txt | 143 +-
Documentation/device-mapper/dm-zoned.txt | 10 +-
Documentation/device-mapper/era.txt | 36 +-
Documentation/device-mapper/kcopyd.txt | 10 +-
Documentation/device-mapper/linear.txt | 100 +-
Documentation/device-mapper/log-writes.txt | 91 +-
.../device-mapper/persistent-data.txt | 4 +
Documentation/device-mapper/snapshot.txt | 116 +-
Documentation/device-mapper/statistics.txt | 62 +-
Documentation/device-mapper/striped.txt | 68 +-
Documentation/device-mapper/switch.txt | 47 +-
.../device-mapper/thin-provisioning.txt | 68 +-
Documentation/device-mapper/unstriped.txt | 111 +-
Documentation/device-mapper/verity.txt | 20 +-
Documentation/device-mapper/writecache.txt | 13 +-
Documentation/device-mapper/zero.txt | 14 +-
Documentation/driver-model/binding.txt | 20 +-
Documentation/driver-model/bus.txt | 69 +-
Documentation/driver-model/class.txt | 74 +-
.../driver-model/design-patterns.txt | 106 +-
Documentation/driver-model/device.txt | 57 +-
Documentation/driver-model/devres.txt | 50 +-
Documentation/driver-model/driver.txt | 112 +-
Documentation/driver-model/overview.txt | 37 +-
Documentation/driver-model/platform.txt | 30 +-
Documentation/driver-model/porting.txt | 333 +--
Documentation/early-userspace/README | 3 +
.../early-userspace/buffer-format.txt | 19 +-
.../fault-injection/fault-injection.txt | 265 +-
.../fault-injection/notifier-error-inject.txt | 18 +-
.../fault-injection/nvme-fault-injection.txt | 174 +-
.../fault-injection/provoke-crashes.txt | 40 +-
Documentation/fb/api.txt | 29 +-
Documentation/fb/arkfb.txt | 8 +-
Documentation/fb/aty128fb.txt | 31 +-
Documentation/fb/cirrusfb.txt | 47 +-
Documentation/fb/cmap_xfbdev.txt | 57 +-
Documentation/fb/deferred_io.txt | 28 +-
Documentation/fb/efifb.txt | 18 +-
Documentation/fb/ep93xx-fb.txt | 25 +-
Documentation/fb/fbcon.txt | 177 +-
Documentation/fb/framebuffer.txt | 79 +-
Documentation/fb/gxfb.txt | 22 +-
Documentation/fb/intel810.txt | 77 +-
Documentation/fb/intelfb.txt | 62 +-
Documentation/fb/internals.txt | 24 +-
Documentation/fb/lxfb.txt | 23 +-
Documentation/fb/matroxfb.txt | 526 ++--
Documentation/fb/metronomefb.txt | 8 +-
Documentation/fb/modedb.txt | 44 +-
Documentation/fb/pvr2fb.txt | 55 +-
Documentation/fb/pxafb.txt | 81 +-
Documentation/fb/s3fb.txt | 8 +-
Documentation/fb/sa1100fb.txt | 23 +-
Documentation/fb/sh7760fb.txt | 153 +-
Documentation/fb/sisfb.txt | 40 +-
Documentation/fb/sm501.txt | 7 +-
Documentation/fb/sm712fb.txt | 18 +-
Documentation/fb/sstfb.txt | 231 +-
Documentation/fb/tgafb.txt | 30 +-
Documentation/fb/tridentfb.txt | 34 +-
Documentation/fb/udlfb.txt | 55 +-
Documentation/fb/uvesafb.txt | 128 +-
Documentation/fb/vesafb.txt | 121 +-
Documentation/fb/viafb.txt | 393 +--
Documentation/fb/vt8623fb.txt | 10 +-
Documentation/fpga/dfl.txt | 58 +-
Documentation/gpio/sysfs.txt | 39 +-
Documentation/highuid.txt | 2 +-
Documentation/ide/ide-tape.txt | 23 +-
Documentation/ide/ide.txt | 147 +-
Documentation/ide/warm-plug-howto.txt | 10 +-
Documentation/index.rst | 1 +
Documentation/infiniband/core_locking.txt | 64 +-
Documentation/infiniband/ipoib.txt | 24 +-
Documentation/infiniband/opa_vnic.txt | 108 +-
Documentation/infiniband/sysfs.txt | 4 +-
Documentation/infiniband/tag_matching.txt | 5 +
Documentation/infiniband/user_mad.txt | 33 +-
Documentation/infiniband/user_verbs.txt | 12 +-
Documentation/kbuild/headers_install.txt | 5 +-
Documentation/kbuild/kbuild.txt | 119 +-
Documentation/kbuild/kconfig-language.txt | 232 +-
.../kbuild/kconfig-macro-language.txt | 37 +-
Documentation/kbuild/kconfig.txt | 136 +-
Documentation/kbuild/makefiles.txt | 518 ++--
Documentation/kbuild/modules.txt | 166 +-
Documentation/kdump/kdump.txt | 131 +-
Documentation/kdump/vmcoreinfo.txt | 59 +-
Documentation/kobject.txt | 2 +-
Documentation/ldm.txt | 3 +-
Documentation/livepatch/callbacks.txt | 12 +-
.../livepatch/cumulative-patches.txt | 14 +-
Documentation/livepatch/livepatch.txt | 56 +-
Documentation/livepatch/module-elf-format.txt | 211 +-
Documentation/livepatch/shadow-vars.txt | 65 +-
Documentation/locking/lockdep-design.txt | 41 +-
Documentation/locking/lockstat.txt | 219 +-
Documentation/locking/locktorture.txt | 105 +-
Documentation/locking/mutex-design.txt | 26 +-
Documentation/locking/rt-mutex-design.txt | 135 +-
Documentation/locking/rt-mutex.txt | 30 +-
Documentation/locking/spinlocks.txt | 32 +-
Documentation/locking/ww-mutex-design.txt | 82 +-
Documentation/m68k/kernel-options.txt | 319 +-
Documentation/memory-barriers.txt | 2 +-
Documentation/memory-devices/ti-emif.txt | 25 +-
Documentation/mic/mic_overview.txt | 6 +-
Documentation/mic/scif_overview.txt | 58 +-
Documentation/netlabel/cipso_ipv4.txt | 19 +-
Documentation/netlabel/introduction.txt | 16 +-
Documentation/netlabel/lsm_interface.txt | 16 +-
Documentation/numastat.txt | 1 -
Documentation/nvmem/nvmem.txt | 110 +-
Documentation/pcmcia/devicetable.txt | 4 +
Documentation/pcmcia/driver-changes.txt | 35 +-
Documentation/pcmcia/driver.txt | 18 +-
Documentation/pcmcia/locking.txt | 39 +-
Documentation/phy/samsung-usb2.txt | 60 +-
Documentation/pnp.txt | 11 +-
Documentation/power/apm-acpi.txt | 10 +-
Documentation/power/basic-pm-debugging.txt | 77 +-
Documentation/power/charger-manager.txt | 101 +-
Documentation/power/drivers-testing.txt | 5 +
Documentation/power/energy-model.txt | 101 +-
Documentation/power/freezing-of-tasks.txt | 91 +-
Documentation/power/interface.txt | 20 +-
Documentation/power/opp.txt | 175 +-
Documentation/power/pci.txt | 77 +-
Documentation/power/pm_qos_interface.txt | 127 +-
Documentation/power/power_supply_class.txt | 269 +-
Documentation/power/powercap/powercap.txt | 297 +-
Documentation/power/regulator/consumer.txt | 141 +-
Documentation/power/regulator/design.txt | 9 +-
Documentation/power/regulator/machine.txt | 47 +-
Documentation/power/regulator/overview.txt | 51 +-
Documentation/power/regulator/regulator.txt | 18 +-
Documentation/power/runtime_pm.txt | 234 +-
Documentation/power/s2ram.txt | 20 +-
.../power/suspend-and-cpuhotplug.txt | 42 +-
.../power/suspend-and-interrupts.txt | 2 +
Documentation/power/swsusp-and-swap-files.txt | 15 +-
Documentation/power/swsusp-dmcrypt.txt | 118 +-
Documentation/power/swsusp.txt | 639 ++--
Documentation/power/tricks.txt | 6 +-
Documentation/power/userland-swsusp.txt | 53 +-
Documentation/power/video.txt | 156 +-
Documentation/powerpc/DAWR-POWER9.txt | 10 +-
Documentation/powerpc/bootwrapper.txt | 28 +-
Documentation/powerpc/cpu_families.txt | 23 +-
Documentation/powerpc/cpu_features.txt | 6 +-
Documentation/powerpc/cxl.txt | 46 +-
Documentation/powerpc/cxlflash.txt | 8 +-
Documentation/powerpc/dscr.txt | 18 +-
.../powerpc/eeh-pci-error-recovery.txt | 108 +-
.../powerpc/firmware-assisted-dump.txt | 117 +-
Documentation/powerpc/hvcs.txt | 108 +-
Documentation/powerpc/isa-versions.rst | 13 +-
Documentation/powerpc/mpc52xx.txt | 12 +-
.../powerpc/pci_iov_resource_on_powernv.txt | 15 +-
Documentation/powerpc/pmu-ebb.txt | 1 +
Documentation/powerpc/ptrace.txt | 169 +-
Documentation/powerpc/qe_firmware.txt | 37 +-
Documentation/powerpc/syscall64-abi.txt | 29 +-
.../powerpc/transactional_memory.txt | 45 +-
Documentation/pps/pps.txt | 67 +-
Documentation/preempt-locking.txt | 2 +-
Documentation/pti/pti_intel_mid.txt | 135 +-
Documentation/ptp/ptp.txt | 26 +-
Documentation/rbtree.txt | 52 +-
Documentation/riscv/pmu.txt | 98 +-
Documentation/rtc.txt | 6 +-
Documentation/s390/3270.txt | 85 +-
Documentation/s390/CommonIO | 47 +-
Documentation/s390/DASD | 33 +-
Documentation/s390/Debugging390.txt | 2599 ++++++++++-------
Documentation/s390/cds.txt | 354 ++-
Documentation/s390/driver-model.txt | 179 +-
Documentation/s390/monreader.txt | 85 +-
Documentation/s390/qeth.txt | 36 +-
Documentation/s390/s390dbf.txt | 639 ++--
Documentation/s390/vfio-ap.txt | 487 +--
Documentation/s390/vfio-ccw.txt | 88 +-
Documentation/s390/zfcpdump.txt | 2 +
Documentation/scheduler/completion.txt | 38 +-
Documentation/scheduler/sched-arch.txt | 18 +-
Documentation/scheduler/sched-bwc.txt | 28 +-
Documentation/scheduler/sched-deadline.txt | 293 +-
Documentation/scheduler/sched-design-CFS.txt | 15 +-
Documentation/scheduler/sched-domains.txt | 8 +-
Documentation/scheduler/sched-energy.txt | 47 +-
Documentation/scheduler/sched-nice-design.txt | 6 +-
Documentation/scheduler/sched-rt-group.txt | 28 +-
Documentation/scheduler/sched-stats.txt | 35 +-
Documentation/security/tpm/xen-tpmfront.txt | 101 +-
Documentation/serial/README.cycladesZ | 5 +-
Documentation/serial/driver | 113 +-
Documentation/serial/moxa-smartio | 750 ++---
Documentation/serial/n_gsm.txt | 81 +-
Documentation/serial/rocket.txt | 144 +-
Documentation/serial/serial-iso7816.txt | 21 +-
Documentation/serial/serial-rs485.txt | 22 +-
Documentation/serial/tty.txt | 111 +-
Documentation/target/tcm_mod_builder.txt | 200 +-
Documentation/target/tcmu-design.txt | 268 +-
Documentation/timers/NO_HZ.txt | 40 +-
Documentation/timers/highres.txt | 11 +-
Documentation/timers/hpet.txt | 4 +-
Documentation/timers/hrtimers.txt | 6 +-
Documentation/timers/timekeeping.txt | 3 +-
Documentation/timers/timers-howto.txt | 15 +-
Documentation/trace/ftrace.rst | 1 +
Documentation/trace/histogram.rst | 86 +-
Documentation/usb/WUSB-Design-overview.txt | 56 +-
Documentation/usb/acm.txt | 156 +-
Documentation/usb/authorization.txt | 75 +-
Documentation/usb/chipidea.txt | 101 +-
Documentation/usb/dwc3.txt | 12 +-
Documentation/usb/ehci.txt | 42 +-
Documentation/usb/functionfs.txt | 17 +-
Documentation/usb/gadget-testing.txt | 609 ++--
Documentation/usb/gadget_configfs.txt | 302 +-
Documentation/usb/gadget_hid.txt | 175 +-
Documentation/usb/gadget_multi.txt | 43 +-
Documentation/usb/gadget_printer.txt | 155 +-
Documentation/usb/gadget_serial.txt | 73 +-
Documentation/usb/iuu_phoenix.txt | 34 +-
Documentation/usb/mass-storage.txt | 19 +-
Documentation/usb/misc_usbsevseg.txt | 9 +-
Documentation/usb/mtouchusb.txt | 42 +-
Documentation/usb/ohci.txt | 5 +-
Documentation/usb/rio.txt | 83 +-
Documentation/usb/usb-help.txt | 21 +-
Documentation/usb/usb-serial.txt | 203 +-
Documentation/usb/usbip_protocol.txt | 552 ++--
Documentation/usb/usbmon.txt | 100 +-
.../convert_drivers_to_kernel_api.txt | 109 +-
Documentation/watchdog/hpwdt.txt | 23 +-
Documentation/watchdog/mlx-wdt.txt | 24 +-
Documentation/watchdog/pcwd-watchdog.txt | 13 +-
Documentation/watchdog/watchdog-api.txt | 76 +-
.../watchdog/watchdog-kernel-api.txt | 89 +-
.../watchdog/watchdog-parameters.txt | 672 +++--
Documentation/watchdog/watchdog-pm.txt | 3 +
Documentation/watchdog/wdt.txt | 31 +-
Documentation/x86/amd-memory-encryption.txt | 10 +-
Documentation/x86/boot.txt | 578 ++--
Documentation/x86/earlyprintk.txt | 69 +-
Documentation/x86/entry_64.txt | 11 +-
Documentation/x86/exception-tables.txt | 245 +-
Documentation/x86/i386/IO-APIC.txt | 23 +-
Documentation/x86/intel_mpx.txt | 55 +-
Documentation/x86/microcode.txt | 51 +-
Documentation/x86/mtrr.txt | 442 +--
Documentation/x86/orc-unwinder.txt | 1 +
Documentation/x86/pat.txt | 217 +-
Documentation/x86/protection-keys.txt | 33 +-
Documentation/x86/pti.txt | 8 +-
Documentation/x86/resctrl_ui.txt | 621 ++--
Documentation/x86/tlb.txt | 12 +-
Documentation/x86/topology.txt | 26 +-
Documentation/x86/usb-legacy-support.txt | 33 +-
Documentation/x86/x86_64/5level-paging.txt | 14 +-
Documentation/x86/x86_64/boot-options.txt | 98 +-
Documentation/x86/x86_64/mm.txt | 212 +-
Documentation/x86/x86_64/uefi.txt | 21 +-
Documentation/x86/zero-page.txt | 67 +-
Documentation/xilinx/eemi.txt | 8 +-
Documentation/zorro.txt | 5 +-
MAINTAINERS | 2 +-
arch/arm64/kernel/kexec_image.c | 2 +-
arch/s390/include/asm/debug.h | 231 ++
drivers/cdrom/cdrom.c | 2 +-
include/linux/connector.h | 63 +-
433 files changed, 21459 insertions(+), 16370 deletions(-)
rename Documentation/{extcon/intel-int3496.txt => acpi/drivers/extcon-intel-int3496.txt} (66%)
delete mode 100644 Documentation/arm/SA1100/empeg
delete mode 100644 Documentation/cdrom/Makefile
delete mode 100644 Documentation/cdrom/cdrom-standard.tex
create mode 100644 Documentation/cdrom/cdrom-standard.txt
--
2.20.1
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH 34/57] docs: target: convert it to ReST format 2019-04-16 2:55 [PATCH 00/57] Convert files to ReST Mauro Carvalho Chehab @ 2019-04-16 2:55 ` Mauro Carvalho Chehab 2019-04-18 12:42 ` Avoiding merge conflicts while adding new docs - Was: Re: [PATCH 00/57] Convert files to ReST Mauro Carvalho Chehab 1 sibling, 0 replies; 4+ messages in thread From: Mauro Carvalho Chehab @ 2019-04-16 2:55 UTC (permalink / raw) To: Linux Doc Mailing List Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, linux-kernel, Jonathan Corbet, Martin K. Petersen, linux-scsi, target-devel Convert the TCM docs to ReST format and add them to the bookset. This has a mix of userspace-faced and Kernelspace faced docs. Still, it sounds a better candidate to be added at the kernel API set of docs. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> --- Documentation/target/tcm_mod_builder.txt | 200 ++++++++--------- Documentation/target/tcmu-design.txt | 268 ++++++++++++----------- 2 files changed, 248 insertions(+), 220 deletions(-) diff --git a/Documentation/target/tcm_mod_builder.txt b/Documentation/target/tcm_mod_builder.txt index ae22f7005540..9bfc9822e2bd 100644 --- a/Documentation/target/tcm_mod_builder.txt +++ b/Documentation/target/tcm_mod_builder.txt @@ -1,145 +1,149 @@ ->>>>>>>>>> The TCM v4 fabric module script generator <<<<<<<<<< +====================+The TCM v4 fabric module script generator +==================== Greetings all, This document is intended to be a mini-HOWTO for using the tcm_mod_builder.py script to generate a brand new functional TCM v4 fabric .ko module of your very own, that once built can be immediately be loaded to start access the new TCM/ConfigFS -fabric skeleton, by simply using: +fabric skeleton, by simply using:: modprobe $TCM_NEW_MOD mkdir -p /sys/kernel/config/target/$TCM_NEW_MOD This script will create a new drivers/target/$TCM_NEW_MOD/, and will do the following - *) Generate new API callers for drivers/target/target_core_fabric_configs.c logic + 1) Generate new API callers for drivers/target/target_core_fabric_configs.c logic ->make_tpg(), ->drop_tpg(), ->make_wwn(), ->drop_wwn(). These are created into $TCM_NEW_MOD/$TCM_NEW_MOD_configfs.c - *) Generate basic infrastructure for loading/unloading LKMs and TCM/ConfigFS fabric module + 2) Generate basic infrastructure for loading/unloading LKMs and TCM/ConfigFS fabric module using a skeleton struct target_core_fabric_ops API template. - *) Based on user defined T10 Proto_Ident for the new fabric module being built, + 3) Based on user defined T10 Proto_Ident for the new fabric module being built, the TransportID / Initiator and Target WWPN related handlers for SPC-3 persistent reservation are automatically generated in $TCM_NEW_MOD/$TCM_NEW_MOD_fabric.c using drivers/target/target_core_fabric_lib.c logic. - *) NOP API calls for all other Data I/O path and fabric dependent attribute logic + 4) NOP API calls for all other Data I/O path and fabric dependent attribute logic in $TCM_NEW_MOD/$TCM_NEW_MOD_fabric.c tcm_mod_builder.py depends upon the mandatory '-p $PROTO_IDENT' and '-m -$FABRIC_MOD_name' parameters, and actually running the script looks like: +$FABRIC_MOD_name' parameters, and actually running the script looks like:: -target:/mnt/sdb/lio-core-2.6.git/Documentation/target# python tcm_mod_builder.py -p iSCSI -m tcm_nab5000 -tcm_dir: /mnt/sdb/lio-core-2.6.git/Documentation/target/../../ -Set fabric_mod_name: tcm_nab5000 -Set fabric_mod_dir: -/mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000 -Using proto_ident: iSCSI -Creating fabric_mod_dir: -/mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000 -Writing file: -/mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/tcm_nab5000_base.h -Using tcm_mod_scan_fabric_ops: -/mnt/sdb/lio-core-2.6.git/Documentation/target/../../include/target/target_core_fabric_ops.h -Writing file: -/mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/tcm_nab5000_fabric.c -Writing file: -/mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/tcm_nab5000_fabric.h -Writing file: -/mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/tcm_nab5000_configfs.c -Writing file: -/mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/Kbuild -Writing file: -/mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/Kconfig -Would you like to add tcm_nab5000to drivers/target/Kbuild..? [yes,no]: yes -Would you like to add tcm_nab5000to drivers/target/Kconfig..? [yes,no]: yes + target:/mnt/sdb/lio-core-2.6.git/Documentation/target# python tcm_mod_builder.py -p iSCSI -m tcm_nab5000 + tcm_dir: /mnt/sdb/lio-core-2.6.git/Documentation/target/../../ + Set fabric_mod_name: tcm_nab5000 + Set fabric_mod_dir: + /mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000 + Using proto_ident: iSCSI + Creating fabric_mod_dir: + /mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000 + Writing file: + /mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/tcm_nab5000_base.h + Using tcm_mod_scan_fabric_ops: + /mnt/sdb/lio-core-2.6.git/Documentation/target/../../include/target/target_core_fabric_ops.h + Writing file: + /mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/tcm_nab5000_fabric.c + Writing file: + /mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/tcm_nab5000_fabric.h + Writing file: + /mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/tcm_nab5000_configfs.c + Writing file: + /mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/Kbuild + Writing file: + /mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/Kconfig + Would you like to add tcm_nab5000to drivers/target/Kbuild..? [yes,no]: yes + Would you like to add tcm_nab5000to drivers/target/Kconfig..? [yes,no]: yes At the end of tcm_mod_builder.py. the script will ask to add the following -line to drivers/target/Kbuild: +line to drivers/target/Kbuild:: obj-$(CONFIG_TCM_NAB5000) += tcm_nab5000/ -and the same for drivers/target/Kconfig: +and the same for drivers/target/Kconfig:: source "drivers/target/tcm_nab5000/Kconfig" -*) Run 'make menuconfig' and select the new CONFIG_TCM_NAB5000 item: +#) Run 'make menuconfig' and select the new CONFIG_TCM_NAB5000 item:: <M> TCM_NAB5000 fabric module -*) Build using 'make modules', once completed you will have: +#) Build using 'make modules', once completed you will have:: -target:/mnt/sdb/lio-core-2.6.git# ls -la drivers/target/tcm_nab5000/ -total 1348 -drwxr-xr-x 2 root root 4096 2010-10-05 03:23 . -drwxr-xr-x 9 root root 4096 2010-10-05 03:22 .. --rw-r--r-- 1 root root 282 2010-10-05 03:22 Kbuild --rw-r--r-- 1 root root 171 2010-10-05 03:22 Kconfig --rw-r--r-- 1 root root 49 2010-10-05 03:23 modules.order --rw-r--r-- 1 root root 738 2010-10-05 03:22 tcm_nab5000_base.h --rw-r--r-- 1 root root 9096 2010-10-05 03:22 tcm_nab5000_configfs.c --rw-r--r-- 1 root root 191200 2010-10-05 03:23 tcm_nab5000_configfs.o --rw-r--r-- 1 root root 40504 2010-10-05 03:23 .tcm_nab5000_configfs.o.cmd --rw-r--r-- 1 root root 5414 2010-10-05 03:22 tcm_nab5000_fabric.c --rw-r--r-- 1 root root 2016 2010-10-05 03:22 tcm_nab5000_fabric.h --rw-r--r-- 1 root root 190932 2010-10-05 03:23 tcm_nab5000_fabric.o --rw-r--r-- 1 root root 40713 2010-10-05 03:23 .tcm_nab5000_fabric.o.cmd --rw-r--r-- 1 root root 401861 2010-10-05 03:23 tcm_nab5000.ko --rw-r--r-- 1 root root 265 2010-10-05 03:23 .tcm_nab5000.ko.cmd --rw-r--r-- 1 root root 459 2010-10-05 03:23 tcm_nab5000.mod.c --rw-r--r-- 1 root root 23896 2010-10-05 03:23 tcm_nab5000.mod.o --rw-r--r-- 1 root root 22655 2010-10-05 03:23 .tcm_nab5000.mod.o.cmd --rw-r--r-- 1 root root 379022 2010-10-05 03:23 tcm_nab5000.o --rw-r--r-- 1 root root 211 2010-10-05 03:23 .tcm_nab5000.o.cmd + target:/mnt/sdb/lio-core-2.6.git# ls -la drivers/target/tcm_nab5000/ + total 1348 + drwxr-xr-x 2 root root 4096 2010-10-05 03:23 . + drwxr-xr-x 9 root root 4096 2010-10-05 03:22 .. + -rw-r--r-- 1 root root 282 2010-10-05 03:22 Kbuild + -rw-r--r-- 1 root root 171 2010-10-05 03:22 Kconfig + -rw-r--r-- 1 root root 49 2010-10-05 03:23 modules.order + -rw-r--r-- 1 root root 738 2010-10-05 03:22 tcm_nab5000_base.h + -rw-r--r-- 1 root root 9096 2010-10-05 03:22 tcm_nab5000_configfs.c + -rw-r--r-- 1 root root 191200 2010-10-05 03:23 tcm_nab5000_configfs.o + -rw-r--r-- 1 root root 40504 2010-10-05 03:23 .tcm_nab5000_configfs.o.cmd + -rw-r--r-- 1 root root 5414 2010-10-05 03:22 tcm_nab5000_fabric.c + -rw-r--r-- 1 root root 2016 2010-10-05 03:22 tcm_nab5000_fabric.h + -rw-r--r-- 1 root root 190932 2010-10-05 03:23 tcm_nab5000_fabric.o + -rw-r--r-- 1 root root 40713 2010-10-05 03:23 .tcm_nab5000_fabric.o.cmd + -rw-r--r-- 1 root root 401861 2010-10-05 03:23 tcm_nab5000.ko + -rw-r--r-- 1 root root 265 2010-10-05 03:23 .tcm_nab5000.ko.cmd + -rw-r--r-- 1 root root 459 2010-10-05 03:23 tcm_nab5000.mod.c + -rw-r--r-- 1 root root 23896 2010-10-05 03:23 tcm_nab5000.mod.o + -rw-r--r-- 1 root root 22655 2010-10-05 03:23 .tcm_nab5000.mod.o.cmd + -rw-r--r-- 1 root root 379022 2010-10-05 03:23 tcm_nab5000.o + -rw-r--r-- 1 root root 211 2010-10-05 03:23 .tcm_nab5000.o.cmd -*) Load the new module, create a lun_0 configfs group, and add new TCM Core - IBLOCK backstore symlink to port: +#) Load the new module, create a lun_0 configfs group, and add new TCM Core + IBLOCK backstore symlink to port:: -target:/mnt/sdb/lio-core-2.6.git# insmod drivers/target/tcm_nab5000.ko -target:/mnt/sdb/lio-core-2.6.git# mkdir -p /sys/kernel/config/target/nab5000/iqn.foo/tpgt_1/lun/lun_0 -target:/mnt/sdb/lio-core-2.6.git# cd /sys/kernel/config/target/nab5000/iqn.foo/tpgt_1/lun/lun_0/ -target:/sys/kernel/config/target/nab5000/iqn.foo/tpgt_1/lun/lun_0# ln -s /sys/kernel/config/target/core/iblock_0/lvm_test0 nab5000_port + target:/mnt/sdb/lio-core-2.6.git# insmod drivers/target/tcm_nab5000.ko + target:/mnt/sdb/lio-core-2.6.git# mkdir -p /sys/kernel/config/target/nab5000/iqn.foo/tpgt_1/lun/lun_0 + target:/mnt/sdb/lio-core-2.6.git# cd /sys/kernel/config/target/nab5000/iqn.foo/tpgt_1/lun/lun_0/ + target:/sys/kernel/config/target/nab5000/iqn.foo/tpgt_1/lun/lun_0# ln -s /sys/kernel/config/target/core/iblock_0/lvm_test0 nab5000_port -target:/sys/kernel/config/target/nab5000/iqn.foo/tpgt_1/lun/lun_0# cd - -target:/mnt/sdb/lio-core-2.6.git# tree /sys/kernel/config/target/nab5000/ -/sys/kernel/config/target/nab5000/ -|-- discovery_auth -|-- iqn.foo -| `-- tpgt_1 -| |-- acls -| |-- attrib -| |-- lun -| | `-- lun_0 -| | |-- alua_tg_pt_gp -| | |-- alua_tg_pt_offline -| | |-- alua_tg_pt_status -| | |-- alua_tg_pt_write_md -| | `-- nab5000_port -> ../../../../../../target/core/iblock_0/lvm_test0 -| |-- np -| `-- param -`-- version + target:/sys/kernel/config/target/nab5000/iqn.foo/tpgt_1/lun/lun_0# cd - + target:/mnt/sdb/lio-core-2.6.git# tree /sys/kernel/config/target/nab5000/ + /sys/kernel/config/target/nab5000/ + |-- discovery_auth + |-- iqn.foo + | `-- tpgt_1 + | |-- acls + | |-- attrib + | |-- lun + | | `-- lun_0 + | | |-- alua_tg_pt_gp + | | |-- alua_tg_pt_offline + | | |-- alua_tg_pt_status + | | |-- alua_tg_pt_write_md + | | `-- nab5000_port -> ../../../../../../target/core/iblock_0/lvm_test0 + | |-- np + | `-- param + `-- version -target:/mnt/sdb/lio-core-2.6.git# lsmod -Module Size Used by -tcm_nab5000 3935 4 -iscsi_target_mod 193211 0 -target_core_stgt 8090 0 -target_core_pscsi 11122 1 -target_core_file 9172 2 -target_core_iblock 9280 1 -target_core_mod 228575 31 -tcm_nab5000,iscsi_target_mod,target_core_stgt,target_core_pscsi,target_core_file,target_core_iblock -libfc 73681 0 -scsi_debug 56265 0 -scsi_tgt 8666 1 target_core_stgt -configfs 20644 2 target_core_mod + target:/mnt/sdb/lio-core-2.6.git# lsmod + Module Size Used by + tcm_nab5000 3935 4 + iscsi_target_mod 193211 0 + target_core_stgt 8090 0 + target_core_pscsi 11122 1 + target_core_file 9172 2 + target_core_iblock 9280 1 + target_core_mod 228575 31 + tcm_nab5000,iscsi_target_mod,target_core_stgt,target_core_pscsi,target_core_file,target_core_iblock + libfc 73681 0 + scsi_debug 56265 0 + scsi_tgt 8666 1 target_core_stgt + configfs 20644 2 target_core_mod ---------------------------------------------------------------------- -Future TODO items: +Future TODO items +======== - *) Add more T10 proto_idents - *) Make tcm_mod_dump_fabric_ops() smarter and generate function pointer + 1) Add more T10 proto_idents + 2) Make tcm_mod_dump_fabric_ops() smarter and generate function pointer defs directly from include/target/target_core_fabric_ops.h:struct target_core_fabric_ops structure members. October 5th, 2010 + Nicholas A. Bellinger <nab@linux-iscsi.org> diff --git a/Documentation/target/tcmu-design.txt b/Documentation/target/tcmu-design.txt index 4cebc1ebf99a..a7b426707bf6 100644 --- a/Documentation/target/tcmu-design.txt +++ b/Documentation/target/tcmu-design.txt @@ -1,25 +1,30 @@ -Contents: +========== +TCM Userspace Design +========== + + +.. Contents: -1) TCM Userspace Design - a) Background - b) Benefits - c) Design constraints - d) Implementation overview - i. Mailbox - ii. Command ring - iii. Data Area - e) Device discovery - f) Device events - g) Other contingencies -2) Writing a user pass-through handler - a) Discovering and configuring TCMU uio devices - b) Waiting for events on the device(s) - c) Managing the command ring -3) A final note + 1) TCM Userspace Design + a) Background + b) Benefits + c) Design constraints + d) Implementation overview + i. Mailbox + ii. Command ring + iii. Data Area + e) Device discovery + f) Device events + g) Other contingencies + 2) Writing a user pass-through handler + a) Discovering and configuring TCMU uio devices + b) Waiting for events on the device(s) + c) Managing the command ring + 3) A final note TCM Userspace Design --------------------- +========== TCM is another name for LIO, an in-kernel iSCSI target (server). Existing TCM targets run in the kernel. TCMU (TCM in Userspace) @@ -32,7 +37,8 @@ modules for file, block device, RAM or using another SCSI device as storage. These are called "backstores" or "storage engines". These built-in modules are implemented entirely as kernel code. -Background: +Background +---------- In addition to modularizing the transport protocol used for carrying SCSI commands ("fabrics"), the Linux kernel target, LIO, also modularizes @@ -60,7 +66,8 @@ kernel, another approach is to create a userspace pass-through backstore for LIO, "TCMU". -Benefits: +Benefits +-------- In addition to allowing relatively easy support for RBD and GLFS, TCMU will also allow easier development of new backstores. TCMU combines @@ -72,21 +79,25 @@ The disadvantage is there are more distinct components to configure, and potentially to malfunction. This is unavoidable, but hopefully not fatal if we're careful to keep things as simple as possible. -Design constraints: +Design constraints +------------------ - Good performance: high throughput, low latency - Cleanly handle if userspace: + 1) never attaches 2) hangs 3) dies 4) misbehaves + - Allow future flexibility in user & kernel implementations - Be reasonably memory-efficient - Simple to configure & run - Simple to write a userspace backend -Implementation overview: +Implementation overview +----------------------- The core of the TCMU interface is a memory region that is shared between kernel and userspace. Within this region is: a control area @@ -108,7 +119,8 @@ the region mapped at a different virtual address. See target_core_user.h for the struct definitions. -The Mailbox: +The Mailbox +----------- The mailbox is always at the start of the shared memory region, and contains a version, details about the starting offset and size of the @@ -117,19 +129,27 @@ userspace (respectively) to put commands on the ring, and indicate when the commands are completed. version - 1 (userspace should abort if otherwise) + flags: -- TCMU_MAILBOX_FLAG_CAP_OOOC: indicates out-of-order completion is - supported. See "The Command Ring" for details. -cmdr_off - The offset of the start of the command ring from the start -of the memory region, to account for the mailbox size. -cmdr_size - The size of the command ring. This does *not* need to be a -power of two. -cmd_head - Modified by the kernel to indicate when a command has been -placed on the ring. -cmd_tail - Modified by userspace to indicate when it has completed -processing of a command. + - TCMU_MAILBOX_FLAG_CAP_OOOC: + indicates out-of-order completion is supported. + See "The Command Ring" for details. -The Command Ring: +cmdr_off + The offset of the start of the command ring from the start + of the memory region, to account for the mailbox size. +cmdr_size + The size of the command ring. This does *not* need to be a + power of two. +cmd_head + Modified by the kernel to indicate when a command has been + placed on the ring. +cmd_tail + Modified by userspace to indicate when it has completed + processing of a command. + +The Command Ring +---------------- Commands are placed on the ring by the kernel incrementing mailbox.cmd_head by the size of the command, modulo cmdr_size, and @@ -180,29 +200,31 @@ opcode it does not handle, it must set UNKNOWN_OP bit (bit 0) in hdr.uflags, update cmd_tail, and proceed with processing additional commands, if any. -The Data Area: +The Data Area +------------- This is shared-memory space after the command ring. The organization of this area is not defined in the TCMU interface, and userspace should access only the parts referenced by pending iovs. -Device Discovery: +Device Discovery +---------------- Other devices may be using UIO besides TCMU. Unrelated user processes may also be handling different sets of TCMU devices. TCMU userspace processes must find their devices by scanning sysfs class/uio/uio*/name. For TCMU devices, these names will be of the -format: +format:: -tcm-user/<hba_num>/<device_name>/<subtype>/<path> + tcm-user/<hba_num>/<device_name>/<subtype>/<path> where "tcm-user" is common for all TCMU-backed UIO devices. <hba_num> and <device_name> allow userspace to find the device's path in the kernel target's configfs tree. Assuming the usual mount point, it is -found at: +found at:: -/sys/kernel/config/target/core/user_<hba_num>/<device_name> + /sys/kernel/config/target/core/user_<hba_num>/<device_name> This location contains attributes such as "hw_block_size", that userspace needs to know for correct operation. @@ -214,15 +236,16 @@ configure the device, if needed. The name cannot contain ':', due to LIO limitations. For all devices so discovered, the user handler opens /dev/uioX and -calls mmap(): +calls mmap():: -mmap(NULL, size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0) + mmap(NULL, size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0) where size must be equal to the value read from /sys/class/uio/uioX/maps/map0/size. -Device Events: +Device Events +------------- If a new device is added or removed, a notification will be broadcast over netlink, using a generic netlink family name of "TCM-USER" and a @@ -233,7 +256,8 @@ the LIO device, so that after determining the device is supported (based on subtype) it can take the appropriate action. -Other contingencies: +Other contingencies +------------------- Userspace handler process never attaches: @@ -258,7 +282,7 @@ Userspace handler process is malicious: Writing a user pass-through handler (with example code) -------------------------------------------------------- +=========================== A user process handing a TCMU device must support the following: @@ -277,103 +301,103 @@ TCMU is designed so that multiple unrelated processes can manage TCMU devices separately. All handlers should make sure to only open their devices, based opon a known subtype string. -a) Discovering and configuring TCMU UIO devices: +a) Discovering and configuring TCMU UIO devices:: -(error checking omitted for brevity) + /* error checking omitted for brevity */ -int fd, dev_fd; -char buf[256]; -unsigned long long map_len; -void *map; + int fd, dev_fd; + char buf[256]; + unsigned long long map_len; + void *map; -fd = open("/sys/class/uio/uio0/name", O_RDONLY); -ret = read(fd, buf, sizeof(buf)); -close(fd); -buf[ret-1] = '\0'; /* null-terminate and chop off the \n */ + fd = open("/sys/class/uio/uio0/name", O_RDONLY); + ret = read(fd, buf, sizeof(buf)); + close(fd); + buf[ret-1] = '\0'; /* null-terminate and chop off the \n */ -/* we only want uio devices whose name is a format we expect */ -if (strncmp(buf, "tcm-user", 8)) + /* we only want uio devices whose name is a format we expect */ + if (strncmp(buf, "tcm-user", 8)) exit(-1); -/* Further checking for subtype also needed here */ + /* Further checking for subtype also needed here */ -fd = open(/sys/class/uio/%s/maps/map0/size, O_RDONLY); -ret = read(fd, buf, sizeof(buf)); -close(fd); -str_buf[ret-1] = '\0'; /* null-terminate and chop off the \n */ + fd = open(/sys/class/uio/%s/maps/map0/size, O_RDONLY); + ret = read(fd, buf, sizeof(buf)); + close(fd); + str_buf[ret-1] = '\0'; /* null-terminate and chop off the \n */ -map_len = strtoull(buf, NULL, 0); + map_len = strtoull(buf, NULL, 0); -dev_fd = open("/dev/uio0", O_RDWR); -map = mmap(NULL, map_len, PROT_READ|PROT_WRITE, MAP_SHARED, dev_fd, 0); + dev_fd = open("/dev/uio0", O_RDWR); + map = mmap(NULL, map_len, PROT_READ|PROT_WRITE, MAP_SHARED, dev_fd, 0); -b) Waiting for events on the device(s) + b) Waiting for events on the device(s) -while (1) { - char buf[4]; + while (1) { + char buf[4]; - int ret = read(dev_fd, buf, 4); /* will block */ + int ret = read(dev_fd, buf, 4); /* will block */ - handle_device_events(dev_fd, map); -} - - -c) Managing the command ring - -#include <linux/target_core_user.h> - -int handle_device_events(int fd, void *map) -{ - struct tcmu_mailbox *mb = map; - struct tcmu_cmd_entry *ent = (void *) mb + mb->cmdr_off + mb->cmd_tail; - int did_some_work = 0; - - /* Process events from cmd ring until we catch up with cmd_head */ - while (ent != (void *)mb + mb->cmdr_off + mb->cmd_head) { - - if (tcmu_hdr_get_op(ent->hdr.len_op) = TCMU_OP_CMD) { - uint8_t *cdb = (void *)mb + ent->req.cdb_off; - bool success = true; + handle_device_events(dev_fd, map); + } - /* Handle command here. */ - printf("SCSI opcode: 0x%x\n", cdb[0]); - /* Set response fields */ - if (success) - ent->rsp.scsi_status = SCSI_NO_SENSE; - else { - /* Also fill in rsp->sense_buffer here */ - ent->rsp.scsi_status = SCSI_CHECK_CONDITION; +c) Managing the command ring:: + + #include <linux/target_core_user.h> + + int handle_device_events(int fd, void *map) + { + struct tcmu_mailbox *mb = map; + struct tcmu_cmd_entry *ent = (void *) mb + mb->cmdr_off + mb->cmd_tail; + int did_some_work = 0; + + /* Process events from cmd ring until we catch up with cmd_head */ + while (ent != (void *)mb + mb->cmdr_off + mb->cmd_head) { + + if (tcmu_hdr_get_op(ent->hdr.len_op) = TCMU_OP_CMD) { + uint8_t *cdb = (void *)mb + ent->req.cdb_off; + bool success = true; + + /* Handle command here. */ + printf("SCSI opcode: 0x%x\n", cdb[0]); + + /* Set response fields */ + if (success) + ent->rsp.scsi_status = SCSI_NO_SENSE; + else { + /* Also fill in rsp->sense_buffer here */ + ent->rsp.scsi_status = SCSI_CHECK_CONDITION; + } + } + else if (tcmu_hdr_get_op(ent->hdr.len_op) != TCMU_OP_PAD) { + /* Tell the kernel we didn't handle unknown opcodes */ + ent->hdr.uflags |= TCMU_UFLAG_UNKNOWN_OP; + } + else { + /* Do nothing for PAD entries except update cmd_tail */ + } + + /* update cmd_tail */ + mb->cmd_tail = (mb->cmd_tail + tcmu_hdr_get_len(&ent->hdr)) % mb->cmdr_size; + ent = (void *) mb + mb->cmdr_off + mb->cmd_tail; + did_some_work = 1; + } + + /* Notify the kernel that work has been finished */ + if (did_some_work) { + uint32_t buf = 0; + + write(fd, &buf, 4); + } + + return 0; } - } - else if (tcmu_hdr_get_op(ent->hdr.len_op) != TCMU_OP_PAD) { - /* Tell the kernel we didn't handle unknown opcodes */ - ent->hdr.uflags |= TCMU_UFLAG_UNKNOWN_OP; - } - else { - /* Do nothing for PAD entries except update cmd_tail */ - } - - /* update cmd_tail */ - mb->cmd_tail = (mb->cmd_tail + tcmu_hdr_get_len(&ent->hdr)) % mb->cmdr_size; - ent = (void *) mb + mb->cmdr_off + mb->cmd_tail; - did_some_work = 1; - } - - /* Notify the kernel that work has been finished */ - if (did_some_work) { - uint32_t buf = 0; - - write(fd, &buf, 4); - } - - return 0; -} A final note ------------- +====== Please be careful to return codes as defined by the SCSI specifications. These are different than some values defined in the -- 2.20.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Avoiding merge conflicts while adding new docs - Was: Re: [PATCH 00/57] Convert files to ReST 2019-04-16 2:55 [PATCH 00/57] Convert files to ReST Mauro Carvalho Chehab 2019-04-16 2:55 ` [PATCH 34/57] docs: target: convert it to ReST format Mauro Carvalho Chehab @ 2019-04-18 12:42 ` Mauro Carvalho Chehab 2019-04-19 22:10 ` Jonathan Corbet 1 sibling, 1 reply; 4+ messages in thread From: Mauro Carvalho Chehab @ 2019-04-18 12:42 UTC (permalink / raw) To: Jonathan Corbet Cc: Linux Doc Mailing List, Mauro Carvalho Chehab, linux-kernel, linux-riscv, linux-fbdev, linux-s390, Greg Kroah-Hartman, linux-watchdog, xdp-newbies, linux-samsung-soc, linux-acpi, linux-stm32, bpf, linux-ide, linux-pm, dri-devel, linux-scsi, linux-gpio, linuxppc-dev, x86, dm-devel, target-devel, netdev, kexec, linux-fpga, linux-rdma, linux-kbuild, Thomas Gleixner, linux-security-module, linux-usb, linux-arm-kernel Jon, Em Mon, 15 Apr 2019 23:55:25 -0300 Mauro Carvalho Chehab <mchehab+samsung@kernel.org> escreveu: > I have a separate patch series with do the actual rename and > adjustment of references. I opted to submit this first, as it > sounds easier to merge this way, as each subsystem maintainer > can apply the conversion directly on their trees (or at docs > tree), avoiding merge conflects. Based on the number of feedbacks we have about this, I'm considering to submit a second version of my conversion patch series that would be doing the rename together with each patch, adding the rst files to an index file. However, doing that would produce lots of warnings. We have already lots of those at linux-next: checking consistency... docs/Documentation/accelerators/ocxl.rst: WARNING: document isn't included in any toctree docs/Documentation/admin-guide/mm/numaperf.rst: WARNING: document isn't included in any toctree docs/Documentation/filesystems/ext4/allocators.rst: WARNING: document isn't included in any toctree docs/Documentation/filesystems/ext4/attributes.rst: WARNING: document isn't included in any toctree docs/Documentation/filesystems/ext4/bigalloc.rst: WARNING: document isn't included in any toctree docs/Documentation/filesystems/ext4/bitmaps.rst: WARNING: document isn't included in any toctree docs/Documentation/filesystems/ext4/blockgroup.rst: WARNING: document isn't included in any toctree docs/Documentation/filesystems/ext4/blocks.rst: WARNING: document isn't included in any toctree docs/Documentation/filesystems/ext4/checksums.rst: WARNING: document isn't included in any toctree docs/Documentation/filesystems/ext4/directory.rst: WARNING: document isn't included in any toctree docs/Documentation/filesystems/ext4/eainode.rst: WARNING: document isn't included in any toctree docs/Documentation/filesystems/ext4/group_descr.rst: WARNING: document isn't included in any toctree docs/Documentation/filesystems/ext4/ifork.rst: WARNING: document isn't included in any toctree docs/Documentation/filesystems/ext4/inlinedata.rst: WARNING: document isn't included in any toctree docs/Documentation/filesystems/ext4/inodes.rst: WARNING: document isn't included in any toctree docs/Documentation/filesystems/ext4/journal.rst: WARNING: document isn't included in any toctree docs/Documentation/filesystems/ext4/mmp.rst: WARNING: document isn't included in any toctree docs/Documentation/filesystems/ext4/special_inodes.rst: WARNING: document isn't included in any toctree docs/Documentation/filesystems/ext4/super.rst: WARNING: document isn't included in any toctree docs/Documentation/fmc/index.rst: WARNING: document isn't included in any toctree docs/Documentation/gpu/msm-crash-dump.rst: WARNING: document isn't included in any toctree docs/Documentation/interconnect/interconnect.rst: WARNING: document isn't included in any toctree docs/Documentation/laptops/lg-laptop.rst: WARNING: document isn't included in any toctree docs/Documentation/virtual/kvm/amd-memory-encryption.rst: WARNING: document isn't included in any toctree docs/Documentation/virtual/kvm/vcpu-requests.rst: WARNING: document isn't included in any toctree After thinking a little bit and doing some tests, I think a good solution would be to add ":orphan:" markup to the new .rst files that were not added yet into the main body (e. g. something like the enclosed example). That will make Sphinx suppress the: "WARNING: document isn't included in any toctree" warning for the new files, while they're not included at the main indexes. This way, maintainers can do all the hard work of doing/applying the ReST file conversion/addition patch series on their own trees, and, once everything gets merged, submit a patch against the latest docs-next tree, removing the :orphan: tag and add them to the common index.rst files. That should largely avoid merging conflicts. For example, assuming that someone converts the stuff at Documentation/accounting and rename the text files there to RST (I'm actually doing that), he could add the enclosed change on the top of its index file: diff --git a/Documentation/accounting/index.rst b/Documentation/accounting/index.rst index e7dda5afa73f..e1f6284b5ff3 100644 --- a/Documentation/accounting/index.rst +++ b/Documentation/accounting/index.rst @@ -1,3 +1,5 @@ +:orphan: + ===== Accounting ===== With would make Sphinx to ignore the subdir index file while reporting errors. It will still build the documentation, allowing the developer to test the changes. One of the advantages is that checking the orphaned docs is as easy as running: $ git grep -l ":orphan:" Documentation/ ... Documentation/accounting/index.rst ... Making easy for people to check the orphaned files and send a fixup patch if something got orphaned after the merge window and send a fixes patches to be applied upstream. What do you think? Regards, Mauro ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Avoiding merge conflicts while adding new docs - Was: Re: [PATCH 00/57] Convert files to ReST 2019-04-18 12:42 ` Avoiding merge conflicts while adding new docs - Was: Re: [PATCH 00/57] Convert files to ReST Mauro Carvalho Chehab @ 2019-04-19 22:10 ` Jonathan Corbet 0 siblings, 0 replies; 4+ messages in thread From: Jonathan Corbet @ 2019-04-19 22:10 UTC (permalink / raw) To: Mauro Carvalho Chehab Cc: Linux Doc Mailing List, Mauro Carvalho Chehab, linux-kernel, linux-riscv, linux-fbdev, linux-s390, Greg Kroah-Hartman, linux-watchdog, xdp-newbies, linux-samsung-soc, linux-acpi, linux-stm32, bpf, linux-ide, linux-pm, dri-devel, linux-scsi, linux-gpio, linuxppc-dev, x86, dm-devel, target-devel, netdev, kexec, linux-fpga, linux-rdma, linux-kbuild, Thomas Gleixner, linux-security-module, linux-usb, linux-arm-kernel On Thu, 18 Apr 2019 09:42:23 -0300 Mauro Carvalho Chehab <mchehab+samsung@kernel.org> wrote: > After thinking a little bit and doing some tests, I think a good solution > would be to add ":orphan:" markup to the new .rst files that were not > added yet into the main body (e. g. something like the enclosed example). Interesting...I didn't know about that. Yes, I think it makes sense to put that in... jon ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-04-19 22:10 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-04-16 2:55 [PATCH 00/57] Convert files to ReST Mauro Carvalho Chehab 2019-04-16 2:55 ` [PATCH 34/57] docs: target: convert it to ReST format Mauro Carvalho Chehab 2019-04-18 12:42 ` Avoiding merge conflicts while adding new docs - Was: Re: [PATCH 00/57] Convert files to ReST Mauro Carvalho Chehab 2019-04-19 22:10 ` Jonathan Corbet
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox