From: Linus Torvalds Date: Mon, 2 Dec 2019 19:51:02 +0000 (-0800) Subject: Merge tag 'docs-5.5a' of git://git.lwn.net/linux X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=937d6eefc716a9071f0e3bada19200de1bb9d048;p=linux.git Merge tag 'docs-5.5a' of git://git.lwn.net/linux Pull Documentation updates from Jonathan Corbet: "Here are the main documentation changes for 5.5: - Various kerneldoc script enhancements. - More RST conversions; those are slowing down as we run out of things to convert, but we're a ways from done still. - Dan's "maintainer profile entry" work landed at last. Now we just need to get maintainers to fill in the profiles... - A reworking of the parallel build setup to work better with a variety of systems (and to not take over huge systems entirely in particular). - The MAINTAINERS file is now converted to RST during the build. Hopefully nobody ever tries to print this thing, or they will need to load a lot of paper. - A script and documentation making it easy for maintainers to add Link: tags at commit time. Also included is the removal of a bunch of spurious CR characters" * tag 'docs-5.5a' of git://git.lwn.net/linux: (91 commits) docs: remove a bunch of stray CRs docs: fix up the maintainer profile document libnvdimm, MAINTAINERS: Maintainer Entry Profile Maintainer Handbook: Maintainer Entry Profile MAINTAINERS: Reclaim the P: tag for Maintainer Entry Profile docs, parallelism: Rearrange how jobserver reservations are made docs, parallelism: Do not leak blocking mode to other readers docs, parallelism: Fix failure path and add comment Documentation: Remove bootmem_debug from kernel-parameters.txt Documentation: security: core.rst: fix warnings Documentation/process/howto/kokr: Update for 4.x -> 5.x versioning Documentation/translation: Use Korean for Korean translation title docs/memory-barriers.txt: Remove remaining references to mmiowb() docs/memory-barriers.txt/kokr: Update I/O section to be clearer about CPU vs thread docs/memory-barriers.txt/kokr: Fix style, spacing and grammar in I/O section Documentation/kokr: Kill all references to mmiowb() docs/memory-barriers.txt/kokr: Rewrite "KERNEL I/O BARRIER EFFECTS" section docs: Add initial documentation for devfreq Documentation: Document how to get links with git am docs: Add request_irq() documentation ... --- 937d6eefc716a9071f0e3bada19200de1bb9d048 diff --cc Documentation/admin-guide/perf/imx-ddr.rst index 90056e4e8859e,92900b851f5da..3726a10a03bae --- a/Documentation/admin-guide/perf/imx-ddr.rst +++ b/Documentation/admin-guide/perf/imx-ddr.rst @@@ -17,9 -17,10 +17,11 @@@ The "format" directory describes forma (AXI filtering) fields of the perf_event_attr structure, see /sys/bus/event_source/ devices/imx8_ddr0/format/. The "events" directory describes the events types hardware supported that can be used with perf tool, see /sys/bus/event_source/ -devices/imx8_ddr0/events/. +devices/imx8_ddr0/events/. The "caps" directory describes filter features implemented +in DDR PMU, see /sys/bus/events_source/devices/imx8_ddr0/caps/. - e.g.:: + + .. code-block:: bash + perf stat -a -e imx8_ddr0/cycles/ cmd perf stat -a -e imx8_ddr0/read/,imx8_ddr0/write/ cmd @@@ -45,17 -44,18 +48,23 @@@ value 1 for supported This filter doesn't support filter different AXI ID for axid-read and axid-write event at the same time as this filter is shared between counters. - e.g.:: - perf stat -a -e imx8_ddr0/axid-read,axi_mask=0xMMMM,axi_id=0xDDDD/ cmd - perf stat -a -e imx8_ddr0/axid-write,axi_mask=0xMMMM,axi_id=0xDDDD/ cmd - - NOTE: axi_mask is inverted in userspace(i.e. set bits are bits to mask), and - it will be reverted in driver automatically. so that the user can just specify - axi_id to monitor a specific id, rather than having to specify axi_mask. - e.g.:: + + .. code-block:: bash + + perf stat -a -e imx8_ddr0/axid-read,axi_mask=0xMMMM,axi_id=0xDDDD/ cmd + perf stat -a -e imx8_ddr0/axid-write,axi_mask=0xMMMM,axi_id=0xDDDD/ cmd + + .. note:: + + axi_mask is inverted in userspace(i.e. set bits are bits to mask), and + it will be reverted in driver automatically. so that the user can just specify + axi_id to monitor a specific id, rather than having to specify axi_mask. + + .. code-block:: bash + - perf stat -a -e imx8_ddr0/axid-read,axi_id=0x12/ cmd, which will monitor ARID=0x12 + perf stat -a -e imx8_ddr0/axid-read,axi_id=0x12/ cmd, which will monitor ARID=0x12 + +* With DDR_CAP_AXI_ID_FILTER_ENHANCED quirk(filter: 1, enhanced_filter: 1). + This is an extension to the DDR_CAP_AXI_ID_FILTER quirk which permits + counting the number of bytes (as opposed to the number of bursts) from DDR + read and write transactions concurrently with another set of data counters. diff --cc Documentation/userspace-api/ioctl/ioctl-number.rst index 0000000000000,bef79cd4c6b4d..4ef86433bd677 mode 000000,100644..100644 --- a/Documentation/userspace-api/ioctl/ioctl-number.rst +++ b/Documentation/userspace-api/ioctl/ioctl-number.rst @@@ -1,0 -1,362 +1,363 @@@ + ============= + Ioctl Numbers + ============= + + 19 October 1999 + + Michael Elizabeth Chastain + + + If you are adding new ioctl's to the kernel, you should use the _IO + macros defined in : + + ====== == ============================================ + _IO an ioctl with no parameters + _IOW an ioctl with write parameters (copy_from_user) + _IOR an ioctl with read parameters (copy_to_user) + _IOWR an ioctl with both write and read parameters. + ====== == ============================================ + + 'Write' and 'read' are from the user's point of view, just like the + system calls 'write' and 'read'. For example, a SET_FOO ioctl would + be _IOW, although the kernel would actually read data from user space; + a GET_FOO ioctl would be _IOR, although the kernel would actually write + data to user space. + + The first argument to _IO, _IOW, _IOR, or _IOWR is an identifying letter + or number from the table below. Because of the large number of drivers, + many drivers share a partial letter with other drivers. + + If you are writing a driver for a new device and need a letter, pick an + unused block with enough room for expansion: 32 to 256 ioctl commands. + You can register the block by patching this file and submitting the + patch to Linus Torvalds. Or you can e-mail me at and + I'll register one for you. + + The second argument to _IO, _IOW, _IOR, or _IOWR is a sequence number + to distinguish ioctls from each other. The third argument to _IOW, + _IOR, or _IOWR is the type of the data going into the kernel or coming + out of the kernel (e.g. 'int' or 'struct foo'). NOTE! Do NOT use + sizeof(arg) as the third argument as this results in your ioctl thinking + it passes an argument of type size_t. + + Some devices use their major number as the identifier; this is OK, as + long as it is unique. Some devices are irregular and don't follow any + convention at all. + + Following this convention is good because: + + (1) Keeping the ioctl's globally unique helps error checking: + if a program calls an ioctl on the wrong device, it will get an + error rather than some unexpected behaviour. + + (2) The 'strace' build procedure automatically finds ioctl numbers + defined with _IO, _IOW, _IOR, or _IOWR. + + (3) 'strace' can decode numbers back into useful names when the + numbers are unique. + + (4) People looking for ioctls can grep for them more easily when + this convention is used to define the ioctl numbers. + + (5) When following the convention, the driver code can use generic + code to copy the parameters between user and kernel space. + + This table lists ioctls visible from user land for Linux/x86. It contains + most drivers up to 2.6.31, but I know I am missing some. There has been + no attempt to list non-X86 architectures or ioctls from drivers/staging/. + + ==== ===== ======================================================= ================================================================ + Code Seq# Include File Comments + (hex) + ==== ===== ======================================================= ================================================================ + 0x00 00-1F linux/fs.h conflict! + 0x00 00-1F scsi/scsi_ioctl.h conflict! + 0x00 00-1F linux/fb.h conflict! + 0x00 00-1F linux/wavefront.h conflict! + 0x02 all linux/fd.h + 0x03 all linux/hdreg.h + 0x04 D2-DC linux/umsdos_fs.h Dead since 2.6.11, but don't reuse these. + 0x06 all linux/lp.h + 0x09 all linux/raid/md_u.h + 0x10 00-0F drivers/char/s390/vmcp.h + 0x10 10-1F arch/s390/include/uapi/sclp_ctl.h + 0x10 20-2F arch/s390/include/uapi/asm/hypfs.h + 0x12 all linux/fs.h + linux/blkpg.h + 0x1b all InfiniBand Subsystem + + 0x20 all drivers/cdrom/cm206.h + 0x22 all scsi/sg.h + '!' 00-1F uapi/linux/seccomp.h + '#' 00-3F IEEE 1394 Subsystem + Block for the entire subsystem + '$' 00-0F linux/perf_counter.h, linux/perf_event.h + '%' 00-0F include/uapi/linux/stm.h System Trace Module subsystem + + '&' 00-07 drivers/firewire/nosy-user.h + '1' 00-1F linux/timepps.h PPS kit from Ulrich Windl + + '2' 01-04 linux/i2o.h + '3' 00-0F drivers/s390/char/raw3270.h conflict! + '3' 00-1F linux/suspend_ioctls.h, conflict! + kernel/power/user.c + '8' all SNP8023 advanced NIC card + + ';' 64-7F linux/vfio.h + '@' 00-0F linux/radeonfb.h conflict! + '@' 00-0F drivers/video/aty/aty128fb.c conflict! + 'A' 00-1F linux/apm_bios.h conflict! + 'A' 00-0F linux/agpgart.h, conflict! + drivers/char/agp/compat_ioctl.h + 'A' 00-7F sound/asound.h conflict! + 'B' 00-1F linux/cciss_ioctl.h conflict! + 'B' 00-0F include/linux/pmu.h conflict! + 'B' C0-FF advanced bbus + 'C' all linux/soundcard.h conflict! + 'C' 01-2F linux/capi.h conflict! + 'C' F0-FF drivers/net/wan/cosa.h conflict! + 'D' all arch/s390/include/asm/dasd.h + 'D' 40-5F drivers/scsi/dpt/dtpi_ioctl.h + 'D' 05 drivers/scsi/pmcraid.h + 'E' all linux/input.h conflict! + 'E' 00-0F xen/evtchn.h conflict! + 'F' all linux/fb.h conflict! + 'F' 01-02 drivers/scsi/pmcraid.h conflict! + 'F' 20 drivers/video/fsl-diu-fb.h conflict! + 'F' 20 drivers/video/intelfb/intelfb.h conflict! + 'F' 20 linux/ivtvfb.h conflict! + 'F' 20 linux/matroxfb.h conflict! + 'F' 20 drivers/video/aty/atyfb_base.c conflict! + 'F' 00-0F video/da8xx-fb.h conflict! + 'F' 80-8F linux/arcfb.h conflict! + 'F' DD video/sstfb.h conflict! + 'G' 00-3F drivers/misc/sgi-gru/grulib.h conflict! + 'G' 00-0F linux/gigaset_dev.h conflict! + 'H' 00-7F linux/hiddev.h conflict! + 'H' 00-0F linux/hidraw.h conflict! + 'H' 01 linux/mei.h conflict! + 'H' 02 linux/mei.h conflict! + 'H' 03 linux/mei.h conflict! + 'H' 00-0F sound/asound.h conflict! + 'H' 20-40 sound/asound_fm.h conflict! + 'H' 80-8F sound/sfnt_info.h conflict! + 'H' 10-8F sound/emu10k1.h conflict! + 'H' 10-1F sound/sb16_csp.h conflict! + 'H' 10-1F sound/hda_hwdep.h conflict! + 'H' 40-4F sound/hdspm.h conflict! + 'H' 40-4F sound/hdsp.h conflict! + 'H' 90 sound/usb/usx2y/usb_stream.h + 'H' A0 uapi/linux/usb/cdc-wdm.h + 'H' C0-F0 net/bluetooth/hci.h conflict! + 'H' C0-DF net/bluetooth/hidp/hidp.h conflict! + 'H' C0-DF net/bluetooth/cmtp/cmtp.h conflict! + 'H' C0-DF net/bluetooth/bnep/bnep.h conflict! + 'H' F1 linux/hid-roccat.h + 'H' F8-FA sound/firewire.h + 'I' all linux/isdn.h conflict! + 'I' 00-0F drivers/isdn/divert/isdn_divert.h conflict! + 'I' 40-4F linux/mISDNif.h conflict! + 'J' 00-1F drivers/scsi/gdth_ioctl.h + 'K' all linux/kd.h + 'L' 00-1F linux/loop.h conflict! + 'L' 10-1F drivers/scsi/mpt3sas/mpt3sas_ctl.h conflict! + 'L' 20-2F linux/lightnvm.h + 'L' E0-FF linux/ppdd.h encrypted disk device driver + + 'M' all linux/soundcard.h conflict! + 'M' 01-16 mtd/mtd-abi.h conflict! + and drivers/mtd/mtdchar.c + 'M' 01-03 drivers/scsi/megaraid/megaraid_sas.h + 'M' 00-0F drivers/video/fsl-diu-fb.h conflict! + 'N' 00-1F drivers/usb/scanner.h + 'N' 40-7F drivers/block/nvme.c + 'O' 00-06 mtd/ubi-user.h UBI + 'P' all linux/soundcard.h conflict! + 'P' 60-6F sound/sscape_ioctl.h conflict! + 'P' 00-0F drivers/usb/class/usblp.c conflict! + 'P' 01-09 drivers/misc/pci_endpoint_test.c conflict! + 'Q' all linux/soundcard.h + 'R' 00-1F linux/random.h conflict! + 'R' 01 linux/rfkill.h conflict! + 'R' C0-DF net/bluetooth/rfcomm.h + 'S' all linux/cdrom.h conflict! + 'S' 80-81 scsi/scsi_ioctl.h conflict! + 'S' 82-FF scsi/scsi.h conflict! + 'S' 00-7F sound/asequencer.h conflict! + 'T' all linux/soundcard.h conflict! + 'T' 00-AF sound/asound.h conflict! + 'T' all arch/x86/include/asm/ioctls.h conflict! + 'T' C0-DF linux/if_tun.h conflict! + 'U' all sound/asound.h conflict! + 'U' 00-CF linux/uinput.h conflict! + 'U' 00-EF linux/usbdevice_fs.h + 'U' C0-CF drivers/bluetooth/hci_uart.h + 'V' all linux/vt.h conflict! + 'V' all linux/videodev2.h conflict! + 'V' C0 linux/ivtvfb.h conflict! + 'V' C0 linux/ivtv.h conflict! + 'V' C0 media/davinci/vpfe_capture.h conflict! + 'V' C0 media/si4713.h conflict! + 'W' 00-1F linux/watchdog.h conflict! + 'W' 00-1F linux/wanrouter.h conflict! (pre 3.9) + 'W' 00-3F sound/asound.h conflict! + 'W' 40-5F drivers/pci/switch/switchtec.c + 'X' all fs/xfs/xfs_fs.h, conflict! + fs/xfs/linux-2.6/xfs_ioctl32.h, + include/linux/falloc.h, + linux/fs.h, + 'X' all fs/ocfs2/ocfs_fs.h conflict! + 'X' 01 linux/pktcdvd.h conflict! + 'Y' all linux/cyclades.h + 'Z' 14-15 drivers/message/fusion/mptctl.h + '[' 00-3F linux/usb/tmc.h USB Test and Measurement Devices + + 'a' all linux/atm*.h, linux/sonet.h ATM on linux + + 'a' 00-0F drivers/crypto/qat/qat_common/adf_cfg_common.h conflict! qat driver + 'b' 00-FF conflict! bit3 vme host bridge + + 'c' all linux/cm4000_cs.h conflict! + 'c' 00-7F linux/comstats.h conflict! + 'c' 00-7F linux/coda.h conflict! + 'c' 00-1F linux/chio.h conflict! + 'c' 80-9F arch/s390/include/asm/chsc.h conflict! + 'c' A0-AF arch/x86/include/asm/msr.h conflict! + 'd' 00-FF linux/char/drm/drm.h conflict! + 'd' 02-40 pcmcia/ds.h conflict! + 'd' F0-FF linux/digi1.h + 'e' all linux/digi1.h conflict! + 'f' 00-1F linux/ext2_fs.h conflict! + 'f' 00-1F linux/ext3_fs.h conflict! + 'f' 00-0F fs/jfs/jfs_dinode.h conflict! + 'f' 00-0F fs/ext4/ext4.h conflict! + 'f' 00-0F linux/fs.h conflict! + 'f' 00-0F fs/ocfs2/ocfs2_fs.h conflict! ++'f' 13-27 linux/fscrypt.h + 'f' 81-8F linux/fsverity.h + 'g' 00-0F linux/usb/gadgetfs.h + 'g' 20-2F linux/usb/g_printer.h + 'h' 00-7F conflict! Charon filesystem + + 'h' 00-1F linux/hpet.h conflict! + 'h' 80-8F fs/hfsplus/ioctl.c + 'i' 00-3F linux/i2o-dev.h conflict! + 'i' 0B-1F linux/ipmi.h conflict! + 'i' 80-8F linux/i8k.h + 'j' 00-3F linux/joystick.h + 'k' 00-0F linux/spi/spidev.h conflict! + 'k' 00-05 video/kyro.h conflict! + 'k' 10-17 linux/hsi/hsi_char.h HSI character device + 'l' 00-3F linux/tcfs_fs.h transparent cryptographic file system + + 'l' 40-7F linux/udf_fs_i.h in development: + + 'm' 00-09 linux/mmtimer.h conflict! + 'm' all linux/mtio.h conflict! + 'm' all linux/soundcard.h conflict! + 'm' all linux/synclink.h conflict! + 'm' 00-19 drivers/message/fusion/mptctl.h conflict! + 'm' 00 drivers/scsi/megaraid/megaraid_ioctl.h conflict! + 'n' 00-7F linux/ncp_fs.h and fs/ncpfs/ioctl.c + 'n' 80-8F uapi/linux/nilfs2_api.h NILFS2 + 'n' E0-FF linux/matroxfb.h matroxfb + 'o' 00-1F fs/ocfs2/ocfs2_fs.h OCFS2 + 'o' 00-03 mtd/ubi-user.h conflict! (OCFS2 and UBI overlaps) + 'o' 40-41 mtd/ubi-user.h UBI + 'o' 01-A1 `linux/dvb/*.h` DVB + 'p' 00-0F linux/phantom.h conflict! (OpenHaptics needs this) + 'p' 00-1F linux/rtc.h conflict! + 'p' 00-3F linux/mc146818rtc.h conflict! + 'p' 40-7F linux/nvram.h + 'p' 80-9F linux/ppdev.h user-space parport + + 'p' A1-A5 linux/pps.h LinuxPPS + + 'q' 00-1F linux/serio.h + 'q' 80-FF linux/telephony.h Internet PhoneJACK, Internet LineJACK + linux/ixjuser.h + 'r' 00-1F linux/msdos_fs.h and fs/fat/dir.c + 's' all linux/cdk.h + 't' 00-7F linux/ppp-ioctl.h + 't' 80-8F linux/isdn_ppp.h + 't' 90-91 linux/toshiba.h toshiba and toshiba_acpi SMM + 'u' 00-1F linux/smb_fs.h gone + 'u' 20-3F linux/uvcvideo.h USB video class host driver + 'u' 40-4f linux/udmabuf.h userspace dma-buf misc device + 'v' 00-1F linux/ext2_fs.h conflict! + 'v' 00-1F linux/fs.h conflict! + 'v' 00-0F linux/sonypi.h conflict! + 'v' 00-0F media/v4l2-subdev.h conflict! + 'v' C0-FF linux/meye.h conflict! + 'w' all CERN SCI driver + 'y' 00-1F packet based user level communications + + 'z' 00-3F CAN bus card conflict! + + 'z' 40-7F CAN bus card conflict! + + 'z' 10-4F drivers/s390/crypto/zcrypt_api.h conflict! + '|' 00-7F linux/media.h + 0x80 00-1F linux/fb.h + 0x89 00-06 arch/x86/include/asm/sockios.h + 0x89 0B-DF linux/sockios.h + 0x89 E0-EF linux/sockios.h SIOCPROTOPRIVATE range + 0x89 E0-EF linux/dn.h PROTOPRIVATE range + 0x89 F0-FF linux/sockios.h SIOCDEVPRIVATE range + 0x8B all linux/wireless.h + 0x8C 00-3F WiNRADiO driver + + 0x90 00 drivers/cdrom/sbpcd.h + 0x92 00-0F drivers/usb/mon/mon_bin.c + 0x93 60-7F linux/auto_fs.h + 0x94 all fs/btrfs/ioctl.h Btrfs filesystem + and linux/fs.h some lifted to vfs/generic + 0x97 00-7F fs/ceph/ioctl.h Ceph file system + 0x99 00-0F 537-Addinboard driver + + 0xA0 all linux/sdp/sdp.h Industrial Device Project + + 0xA1 0 linux/vtpm_proxy.h TPM Emulator Proxy Driver + 0xA3 80-8F Port ACL in development: + + 0xA3 90-9F linux/dtlk.h + 0xA4 00-1F uapi/linux/tee.h Generic TEE subsystem + 0xAA 00-3F linux/uapi/linux/userfaultfd.h + 0xAB 00-1F linux/nbd.h + 0xAC 00-1F linux/raw.h + 0xAD 00 Netfilter device in development: + + 0xAE all linux/kvm.h Kernel-based Virtual Machine + + 0xAF 00-1F linux/fsl_hypervisor.h Freescale hypervisor + 0xB0 all RATIO devices in development: + + 0xB1 00-1F PPPoX + + 0xB3 00 linux/mmc/ioctl.h + 0xB4 00-0F linux/gpio.h + 0xB5 00-0F uapi/linux/rpmsg.h + 0xB6 all linux/fpga-dfl.h + 0xC0 00-0F linux/usb/iowarrior.h + 0xCA 00-0F uapi/misc/cxl.h + 0xCA 10-2F uapi/misc/ocxl.h + 0xCA 80-BF uapi/scsi/cxlflash_ioctl.h + 0xCB 00-1F CBM serial IEC bus in development: + + 0xCC 00-0F drivers/misc/ibmvmc.h pseries VMC driver + 0xCD 01 linux/reiserfs_fs.h + 0xCF 02 fs/cifs/ioctl.c + 0xDB 00-0F drivers/char/mwave/mwavepub.h + 0xDD 00-3F ZFCP device driver see drivers/s390/scsi/ + + 0xE5 00-3F linux/fuse.h + 0xEC 00-01 drivers/platform/chrome/cros_ec_dev.h ChromeOS EC driver + 0xF3 00-3F drivers/usb/misc/sisusbvga/sisusb.h sisfb (in development) + + 0xF4 00-1F video/mbxfb.h mbxfb + + 0xF6 all LTTng Linux Trace Toolkit Next Generation + + 0xFD all linux/dm-ioctl.h + 0xFE all linux/isst_if.h + ==== ===== ======================================================= ================================================================ diff --cc MAINTAINERS index 775c48057301f,0093d236a63fa..f76e1dbab2496 --- a/MAINTAINERS +++ b/MAINTAINERS @@@ -9436,8 -9343,10 +9444,9 @@@ LIBNVDIMM: NON-VOLATILE MEMORY DEVICE S M: Dan Williams M: Vishal Verma M: Dave Jiang -M: Keith Busch M: Ira Weiny L: linux-nvdimm@lists.01.org + P: Documentation/nvdimm/maintainer-entry-profile.rst Q: https://patchwork.kernel.org/project/linux-nvdimm/list/ T: git git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git S: Supported